diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2014-03-13 17:53:44 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2016-06-23 14:15:27 +0100 |
commit | 866d8299abc4315d4836292aeac4abe0b686fc10 (patch) | |
tree | cc68b49a553c1eaf458477fd3b1949468d915745 /hw/xwin | |
parent | 356b9129067dd0e1dc62e893d47a1e9b033885bd (diff) |
hw/xwin: Remove decorations from _NET_WM_WINDOW_TYPE_SPLASH type windows
In multiwindow mode, remove decorations from _NET_WM_WINDOW_TYPE_SPLASH type
windows.
Some programs use _NET_WM_WINDOW_TYPE_SPLASH_SCREEN in error, so also accept
that as equivalent.
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Diffstat (limited to 'hw/xwin')
-rw-r--r-- | hw/xwin/winmultiwindowwm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c index e23913e9c..09ec82692 100644 --- a/hw/xwin/winmultiwindowwm.c +++ b/hw/xwin/winmultiwindowwm.c @@ -1471,6 +1471,7 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg) pWMInfo->ewmh._NET_CLOSE_WINDOW, pWMInfo->ewmh._NET_WM_WINDOW_TYPE, pWMInfo->ewmh._NET_WM_WINDOW_TYPE_DOCK, + pWMInfo->ewmh._NET_WM_WINDOW_TYPE_SPLASH, pWMInfo->ewmh._NET_WM_STATE, pWMInfo->ewmh._NET_WM_STATE_HIDDEN, pWMInfo->ewmh._NET_WM_STATE_ABOVE, @@ -1613,10 +1614,12 @@ winDeinitMultiWindowWM(void) static void winApplyHints(WMInfoPtr pWMInfo, xcb_window_t iWindow, HWND hWnd, HWND * zstyle) { + xcb_connection_t *conn = pWMInfo->conn; static xcb_atom_t windowState, motif_wm_hints; static xcb_atom_t hiddenState, fullscreenState, belowState, aboveState, skiptaskbarState; + static xcb_atom_t splashType; static int generation; unsigned long hint = 0, maxmin = 0; @@ -1636,6 +1639,7 @@ winApplyHints(WMInfoPtr pWMInfo, xcb_window_t iWindow, HWND hWnd, HWND * zstyle) belowState = intern_atom(conn, "_NET_WM_STATE_BELOW"); aboveState = intern_atom(conn, "_NET_WM_STATE_ABOVE"); skiptaskbarState = intern_atom(conn, "_NET_WM_STATE_SKIP_TASKBAR"); + splashType = intern_atom(conn, "_NET_WM_WINDOW_TYPE_SPLASHSCREEN"); } { @@ -1708,6 +1712,11 @@ winApplyHints(WMInfoPtr pWMInfo, xcb_window_t iWindow, HWND hWnd, HWND * zstyle) hint = (hint & ~HINT_NOFRAME) | HINT_SKIPTASKBAR | HINT_SIZEBOX; *zstyle = HWND_TOPMOST; } + else if ((type.atoms[i] == pWMInfo->ewmh._NET_WM_WINDOW_TYPE_SPLASH) + || (type.atoms[i] == splashType)) { + hint |= (HINT_SKIPTASKBAR | HINT_NOSYSMENU | HINT_NOMINIMIZE | HINT_NOMAXIMIZE); + *zstyle = HWND_TOPMOST; + } } } } |