Alexandre Julliard : winex11: Set the SKIP_PAGER and SKIP_TASKBAR styles on tool windows.

Alexandre Julliard julliard at winehq.org
Thu Oct 11 10:47:55 CDT 2007


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

Author: Alexandre Julliard <julliard at 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",




More information about the wine-cvs mailing list