Commit a0019801 authored by Alexandre Julliard's avatar Alexandre Julliard

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

parent 8a87429d
...@@ -181,9 +181,11 @@ static void update_wm_states( Display *display, struct x11drv_win_data *data, BO ...@@ -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] = static const unsigned int state_atoms[NB_WM_STATES] =
{ {
XATOM__NET_WM_STATE_FULLSCREEN, 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; XEvent xev;
if (!data->managed) return; if (!data->managed) return;
...@@ -192,6 +194,10 @@ static void update_wm_states( Display *display, struct x11drv_win_data *data, BO ...@@ -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) data->client_rect.top <= 0 && data->client_rect.bottom >= screen_height)
new_state |= (1 << WM_STATE_FULLSCREEN); 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.type = ClientMessage;
xev.xclient.window = data->whole_window; xev.xclient.window = data->whole_window;
xev.xclient.message_type = x11drv_atom(_NET_WM_STATE); xev.xclient.message_type = x11drv_atom(_NET_WM_STATE);
......
...@@ -579,6 +579,8 @@ enum x11drv_atoms ...@@ -579,6 +579,8 @@ enum x11drv_atoms
XATOM__NET_WM_PING, XATOM__NET_WM_PING,
XATOM__NET_WM_STATE, XATOM__NET_WM_STATE,
XATOM__NET_WM_STATE_FULLSCREEN, 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,
XATOM__NET_WM_WINDOW_TYPE_DIALOG, XATOM__NET_WM_WINDOW_TYPE_DIALOG,
XATOM__NET_WM_WINDOW_TYPE_NORMAL, XATOM__NET_WM_WINDOW_TYPE_NORMAL,
...@@ -647,6 +649,8 @@ enum x11drv_window_messages ...@@ -647,6 +649,8 @@ enum x11drv_window_messages
enum x11drv_wm_state enum x11drv_wm_state
{ {
WM_STATE_FULLSCREEN, WM_STATE_FULLSCREEN,
WM_STATE_SKIP_PAGER,
WM_STATE_SKIP_TASKBAR,
NB_WM_STATES NB_WM_STATES
}; };
......
...@@ -136,6 +136,8 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] = ...@@ -136,6 +136,8 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] =
"_NET_WM_PING", "_NET_WM_PING",
"_NET_WM_STATE", "_NET_WM_STATE",
"_NET_WM_STATE_FULLSCREEN", "_NET_WM_STATE_FULLSCREEN",
"_NET_WM_STATE_SKIP_PAGER",
"_NET_WM_STATE_SKIP_TASKBAR",
"_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE",
"_NET_WM_WINDOW_TYPE_DIALOG", "_NET_WM_WINDOW_TYPE_DIALOG",
"_NET_WM_WINDOW_TYPE_NORMAL", "_NET_WM_WINDOW_TYPE_NORMAL",
......
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