Commit 49a5db38 authored by Alexandre Julliard's avatar Alexandre Julliard

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

parent 0bc93684
...@@ -660,42 +660,43 @@ BOOL WINPOS_RedrawIconTitle( HWND hWnd ) ...@@ -660,42 +660,43 @@ BOOL WINPOS_RedrawIconTitle( HWND hWnd )
/*********************************************************************** /***********************************************************************
* WINPOS_ShowIconTitle * 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; if (!win || win == WND_OTHER_PROCESS || win == WND_DESKTOP) return;
title = win->icon_title; if (win->rectWindow.left == -32000 || win->rectWindow.top == -32000)
WIN_ReleasePtr( win ); {
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)
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))
{ {
SendMessageW( title, WM_SHOWWINDOW, TRUE, 0 ); DestroyWindow( title );
SetWindowPos( title, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | return;
SWP_NOACTIVATE | SWP_NOZORDER | SWP_SHOWWINDOW );
} }
} win->icon_title = title;
else if (title) ShowWindow( title, SW_HIDE ); 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 );
} }
/******************************************************************* /*******************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment