Alexandre Julliard : user32: Don't show the icon title for off-screen icons .

Alexandre Julliard julliard at winehq.org
Mon Oct 15 14:29:07 CDT 2012


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Oct 15 16:17:46 2012 +0200

user32: Don't show the icon title for off-screen icons.

---

 dlls/user32/winpos.c |   57 +++++++++++++++++++++++++------------------------
 1 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index a04bf2c..5a2f1f2 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -660,42 +660,43 @@ BOOL WINPOS_RedrawIconTitle( HWND hWnd )
 /***********************************************************************
  *           WINPOS_ShowIconTitle
  */
-static BOOL WINPOS_ShowIconTitle( HWND hwnd, BOOL bShow )
+static void WINPOS_ShowIconTitle( HWND hwnd, BOOL bShow )
 {
-    if (!GetPropA( hwnd, "__wine_x11_managed" ))
-    {
-        WND *win = WIN_GetPtr( hwnd );
-        HWND title = 0;
+    WND *win = WIN_GetPtr( hwnd );
+    HWND title = 0;
 
-	TRACE("%p %i\n", hwnd, (bShow != 0) );
+    TRACE("%p %i\n", hwnd, (bShow != 0) );
 
-        if (!win || win == WND_OTHER_PROCESS || win == WND_DESKTOP) return FALSE;
-        title = win->icon_title;
-        WIN_ReleasePtr( win );
+    if (!win || win == WND_OTHER_PROCESS || win == WND_DESKTOP) return;
+    if (win->rectWindow.left == -32000 || win->rectWindow.top == -32000)
+    {
+        TRACE( "not showing title for hidden icon %p\n", hwnd );
+        bShow = FALSE;
+    }
+    else title = win->icon_title;
+    WIN_ReleasePtr( win );
 
-	if( bShow )
+    if (bShow)
+    {
+        if (!title)
         {
-            if (!title)
-            {
-                title = ICONTITLE_Create( hwnd );
-                if (!(win = WIN_GetPtr( hwnd )) || win == WND_OTHER_PROCESS)
-                {
-                    DestroyWindow( title );
-                    return FALSE;
-                }
-                win->icon_title = title;
-                WIN_ReleasePtr( win );
-            }
-            if (!IsWindowVisible(title))
+            title = ICONTITLE_Create( hwnd );
+            if (!(win = WIN_GetPtr( hwnd )) || win == WND_OTHER_PROCESS)
             {
-                SendMessageW( title, WM_SHOWWINDOW, TRUE, 0 );
-                SetWindowPos( title, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE |
-                              SWP_NOACTIVATE | SWP_NOZORDER | SWP_SHOWWINDOW );
+                DestroyWindow( title );
+                return;
             }
-	}
-	else if (title) ShowWindow( title, SW_HIDE );
+            win->icon_title = title;
+            WIN_ReleasePtr( win );
+        }
+        if (!IsWindowVisible(title))
+        {
+            SendMessageW( title, WM_SHOWWINDOW, TRUE, 0 );
+            SetWindowPos( title, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE |
+                          SWP_NOACTIVATE | SWP_NOZORDER | SWP_SHOWWINDOW );
+        }
     }
-    return FALSE;
+    else if (title) ShowWindow( title, SW_HIDE );
 }
 
 /*******************************************************************




More information about the wine-cvs mailing list