Module: wine Branch: master Commit: a0019801eb51f77bd2e1e8af499e466cbd84db79 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a0019801eb51f77bd2e1e8af49...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Oct 11 11:40:55 2007 +0200
winex11: Set the SKIP_PAGER and SKIP_TASKBAR styles on tool windows.
---
dlls/winex11.drv/winpos.c | 8 +++++++- dlls/winex11.drv/x11drv.h | 4 ++++ dlls/winex11.drv/x11drv_main.c | 2 ++ 3 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c index e75d8f6..71c05f5 100644 --- a/dlls/winex11.drv/winpos.c +++ b/dlls/winex11.drv/winpos.c @@ -181,9 +181,11 @@ static void update_wm_states( Display *display, struct x11drv_win_data *data, BO static const unsigned int state_atoms[NB_WM_STATES] = { XATOM__NET_WM_STATE_FULLSCREEN, + XATOM__NET_WM_STATE_SKIP_PAGER, + XATOM__NET_WM_STATE_SKIP_TASKBAR };
- DWORD i, new_state = 0; + DWORD i, ex_style, new_state = 0; XEvent xev;
if (!data->managed) return; @@ -192,6 +194,10 @@ static void update_wm_states( Display *display, struct x11drv_win_data *data, BO data->client_rect.top <= 0 && data->client_rect.bottom >= screen_height) new_state |= (1 << WM_STATE_FULLSCREEN);
+ ex_style = GetWindowLongW( data->hwnd, GWL_EXSTYLE ); + if (ex_style & WS_EX_TOOLWINDOW) + new_state |= (1 << WM_STATE_SKIP_TASKBAR) | (1 << WM_STATE_SKIP_PAGER); + xev.xclient.type = ClientMessage; xev.xclient.window = data->whole_window; xev.xclient.message_type = x11drv_atom(_NET_WM_STATE); diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 3e63d2f..cba5c71 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -579,6 +579,8 @@ enum x11drv_atoms XATOM__NET_WM_PING, XATOM__NET_WM_STATE, XATOM__NET_WM_STATE_FULLSCREEN, + XATOM__NET_WM_STATE_SKIP_PAGER, + XATOM__NET_WM_STATE_SKIP_TASKBAR, XATOM__NET_WM_WINDOW_TYPE, XATOM__NET_WM_WINDOW_TYPE_DIALOG, XATOM__NET_WM_WINDOW_TYPE_NORMAL, @@ -647,6 +649,8 @@ enum x11drv_window_messages enum x11drv_wm_state { WM_STATE_FULLSCREEN, + WM_STATE_SKIP_PAGER, + WM_STATE_SKIP_TASKBAR, NB_WM_STATES };
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index f56d4e2..1cfc0b0 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -136,6 +136,8 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] = "_NET_WM_PING", "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN", + "_NET_WM_STATE_SKIP_PAGER", + "_NET_WM_STATE_SKIP_TASKBAR", "_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE_DIALOG", "_NET_WM_WINDOW_TYPE_NORMAL",