]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/taskbarx11.cpp
Further improvements in composite controls (wxRadioBox) on PalmOS.
[wxWidgets.git] / src / unix / taskbarx11.cpp
index 99ed4fb0306828f1a0202f5d94bcdfbbf2cc7269..b95729d16cac1a4e0a2b3d5cf481898e4d605ad4 100644 (file)
@@ -32,6 +32,7 @@
 #include "wx/sizer.h"
 #include "wx/dcclient.h"
 #include "wx/log.h"
+#include "wx/image.h"
 
 #ifdef __VMS
 #pragma message disable nosimpint
 // ----------------------------------------------------------------------------
 
 #ifdef __WXGTK20__
-    #include "wx/gtk/taskbarpriv.h"
-#else
+    #include <gtk/gtk.h>
+    #if GTK_CHECK_VERSION(2,1,0)
+        #include "wx/gtk/taskbarpriv.h"
+        #define TASKBAR_ICON_AREA_BASE_INCLUDED
+    #endif
+#endif
+
+#ifndef TASKBAR_ICON_AREA_BASE_INCLUDED
     class WXDLLIMPEXP_ADV wxTaskBarIconAreaBase : public wxFrame
     {
     public:
@@ -124,6 +131,10 @@ wxTaskBarIconArea::wxTaskBarIconArea(wxTaskBarIcon *icon, const wxBitmap &bmp)
                    _T("using legacy KDE1,2 and GNOME 1.2 methods"));
         SetLegacyWMProperties();
     }
+
+#if defined(__WXGTK20__) && defined(TASKBAR_ICON_AREA_BASE_INCLUDED)
+    m_invokingWindow = icon;
+#endif
    
     // Set initial size to bitmap size (tray manager may and often will
     // change it):
@@ -139,7 +150,7 @@ void wxTaskBarIconArea::SetTrayIcon(const wxBitmap& bmp)
     // determine suitable bitmap size:
     wxSize winsize(GetSize());
     wxSize bmpsize(m_bmp.GetWidth(), m_bmp.GetHeight());
-    wxSize iconsize(wxMin(winsize.x-2, bmpsize.x), wxMin(winsize.y-2, bmpsize.y));
+    wxSize iconsize(wxMin(winsize.x, bmpsize.x), wxMin(winsize.y, bmpsize.y));
 
     // rescale the bitmap to fit into the tray icon window:
     if (bmpsize != iconsize)
@@ -150,10 +161,7 @@ void wxTaskBarIconArea::SetTrayIcon(const wxBitmap& bmp)
     }
 
     wxRegion region;
-    if (m_bmp.GetMask())
-        region.Union(m_bmp);
-    else
-        region.Union(0,0, iconsize.x, iconsize.y);
+    region.Union(m_bmp);
 
     // if the bitmap is smaller than the window, offset it:
     if (winsize != iconsize)
@@ -313,7 +321,6 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu)
 {
     if (!m_iconWnd)
         return false;
-    wxSize size(m_iconWnd->GetClientSize());
-    m_iconWnd->PopupMenu(menu, size.x/2, size.y/2);
+    m_iconWnd->PopupMenu(menu);
     return true;
 }