winex11: Don't put window manager decorations on shaped windows.

This commit is contained in:
Alexandre Julliard 2008-04-29 12:46:16 +02:00
parent 4e761d2613
commit 2bbf00ed08
2 changed files with 4 additions and 0 deletions

View File

@ -163,6 +163,7 @@ static unsigned long get_mwm_decorations( struct x11drv_win_data *data,
if (!decorated_mode) return 0;
if (IsRectEmpty( &data->window_rect )) return 0;
if (data->shaped) return 0;
if (ex_style & WS_EX_TOOLWINDOW) return 0;
@ -321,6 +322,7 @@ static void sync_window_region( Display *display, struct x11drv_win_data *data,
{
#ifdef HAVE_LIBXSHAPE
if (!data->whole_window) return;
data->shaped = FALSE;
if (!hrgn)
{
@ -341,6 +343,7 @@ static void sync_window_region( Display *display, struct x11drv_win_data *data,
pRegionData->rdh.nCount, ShapeSet, YXBanded );
wine_tsx11_unlock();
HeapFree(GetProcessHeap(), 0, pRegionData);
data->shaped = TRUE;
}
}
#endif /* HAVE_LIBXSHAPE */

View File

@ -690,6 +690,7 @@ struct x11drv_win_data
BOOL mapped : 1; /* is window mapped? (in either normal or iconic state) */
BOOL iconic : 1; /* is window in iconic state? */
BOOL embedded : 1; /* is window an XEMBED client? */
BOOL shaped : 1; /* is window using a custom region shape? */
int wm_state; /* current value of the WM_STATE property */
DWORD net_wm_state; /* bit mask of active x11drv_net_wm_state values */
HBITMAP hWMIconBitmap;