Commit 5c64b505 authored by Zhiyi Zhang's avatar Zhiyi Zhang Committed by Alexandre Julliard

winex11.drv: Support _KDE_NET_WM_STATE_SKIP_SWITCHER.

KWin has a switcher that triggered by Alt+Tab that basically acts like a pager. And hiding items in the switcher is controlled by _KDE_NET_WM_STATE_SKIP_SWITCHER.
parent 7eb08bd2
...@@ -80,6 +80,7 @@ WINE_DECLARE_DEBUG_CHANNEL(systray); ...@@ -80,6 +80,7 @@ WINE_DECLARE_DEBUG_CHANNEL(systray);
static const unsigned int net_wm_state_atoms[NB_NET_WM_STATES] = static const unsigned int net_wm_state_atoms[NB_NET_WM_STATES] =
{ {
XATOM__KDE_NET_WM_STATE_SKIP_SWITCHER,
XATOM__NET_WM_STATE_FULLSCREEN, XATOM__NET_WM_STATE_FULLSCREEN,
XATOM__NET_WM_STATE_ABOVE, XATOM__NET_WM_STATE_ABOVE,
XATOM__NET_WM_STATE_MAXIMIZED_VERT, XATOM__NET_WM_STATE_MAXIMIZED_VERT,
...@@ -1040,7 +1041,7 @@ void update_net_wm_states( struct x11drv_win_data *data ) ...@@ -1040,7 +1041,7 @@ void update_net_wm_states( struct x11drv_win_data *data )
{ {
if (data->skip_taskbar || (ex_style & WS_EX_NOACTIVATE) if (data->skip_taskbar || (ex_style & WS_EX_NOACTIVATE)
|| (ex_style & WS_EX_TOOLWINDOW && !(ex_style & WS_EX_APPWINDOW))) || (ex_style & WS_EX_TOOLWINDOW && !(ex_style & WS_EX_APPWINDOW)))
new_state |= (1 << NET_WM_STATE_SKIP_TASKBAR) | (1 << NET_WM_STATE_SKIP_PAGER); new_state |= (1 << NET_WM_STATE_SKIP_TASKBAR) | (1 << NET_WM_STATE_SKIP_PAGER) | (1 << KDE_NET_WM_STATE_SKIP_SWITCHER);
else if (!(ex_style & WS_EX_APPWINDOW) && NtUserGetWindowRelative( data->hwnd, GW_OWNER )) else if (!(ex_style & WS_EX_APPWINDOW) && NtUserGetWindowRelative( data->hwnd, GW_OWNER ))
new_state |= (1 << NET_WM_STATE_SKIP_TASKBAR); new_state |= (1 << NET_WM_STATE_SKIP_TASKBAR);
} }
......
...@@ -482,6 +482,7 @@ enum x11drv_atoms ...@@ -482,6 +482,7 @@ enum x11drv_atoms
XATOM_DndProtocol, XATOM_DndProtocol,
XATOM_DndSelection, XATOM_DndSelection,
XATOM__ICC_PROFILE, XATOM__ICC_PROFILE,
XATOM__KDE_NET_WM_STATE_SKIP_SWITCHER,
XATOM__MOTIF_WM_HINTS, XATOM__MOTIF_WM_HINTS,
XATOM__NET_STARTUP_INFO_BEGIN, XATOM__NET_STARTUP_INFO_BEGIN,
XATOM__NET_STARTUP_INFO, XATOM__NET_STARTUP_INFO,
...@@ -594,6 +595,7 @@ enum x11drv_window_messages ...@@ -594,6 +595,7 @@ enum x11drv_window_messages
/* _NET_WM_STATE properties that we keep track of */ /* _NET_WM_STATE properties that we keep track of */
enum x11drv_net_wm_state enum x11drv_net_wm_state
{ {
KDE_NET_WM_STATE_SKIP_SWITCHER,
NET_WM_STATE_FULLSCREEN, NET_WM_STATE_FULLSCREEN,
NET_WM_STATE_ABOVE, NET_WM_STATE_ABOVE,
NET_WM_STATE_MAXIMIZED, NET_WM_STATE_MAXIMIZED,
......
...@@ -155,6 +155,7 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] = ...@@ -155,6 +155,7 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] =
"DndProtocol", "DndProtocol",
"DndSelection", "DndSelection",
"_ICC_PROFILE", "_ICC_PROFILE",
"_KDE_NET_WM_STATE_SKIP_SWITCHER",
"_MOTIF_WM_HINTS", "_MOTIF_WM_HINTS",
"_NET_STARTUP_INFO_BEGIN", "_NET_STARTUP_INFO_BEGIN",
"_NET_STARTUP_INFO", "_NET_STARTUP_INFO",
......
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