Alexandre Julliard : winex11: Don't try to unmap systray windows, it confuses some systray docks.

Alexandre Julliard julliard at winehq.org
Fri Nov 5 13:47:17 CDT 2010


Module: wine
Branch: master
Commit: de983c2268b177197fb29629cca551113e16ec9d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=de983c2268b177197fb29629cca551113e16ec9d

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Nov  5 13:41:30 2010 +0100

winex11: Don't try to unmap systray windows, it confuses some systray docks.

---

 dlls/winex11.drv/systray.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/dlls/winex11.drv/systray.c b/dlls/winex11.drv/systray.c
index fbbe8c2..d5adcb9 100644
--- a/dlls/winex11.drv/systray.c
+++ b/dlls/winex11.drv/systray.c
@@ -432,7 +432,7 @@ void change_systray_owner( Display *display, Window systray_window )
 {
     struct tray_icon *icon;
 
-    ERR( "new owner %lx\n", systray_window );
+    TRACE( "new owner %lx\n", systray_window );
     LIST_FOR_EACH_ENTRY( icon, &icon_list, struct tray_icon, entry )
     {
         if (icon->display == -1) continue;
@@ -444,10 +444,15 @@ void change_systray_owner( Display *display, Window systray_window )
 /* hide a tray icon */
 static BOOL hide_icon( struct tray_icon *icon )
 {
+    struct x11drv_win_data *data;
+
     TRACE( "id=0x%x, hwnd=%p\n", icon->id, icon->owner );
 
     if (!icon->window) return TRUE;  /* already hidden */
 
+    /* make sure we don't try to unmap it, it confuses some systray docks */
+    if ((data = X11DRV_get_win_data( icon->window )) && data->embedded) data->mapped = FALSE;
+
     DestroyWindow(icon->window);
     DestroyWindow(icon->tooltip);
     icon->window = 0;




More information about the wine-cvs mailing list