Module: wine Branch: master Commit: 49a5db38696d5c768ec5e2a4add25c264844c8c3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=49a5db38696d5c768ec5e2a4ad...
Author: Alexandre Julliard julliard@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 ); }
/*******************************************************************