summaryrefslogtreecommitdiff
path: root/hw/xwin
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2014-03-13 17:53:44 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2016-06-23 14:15:27 +0100
commit866d8299abc4315d4836292aeac4abe0b686fc10 (patch)
treecc68b49a553c1eaf458477fd3b1949468d915745 /hw/xwin
parent356b9129067dd0e1dc62e893d47a1e9b033885bd (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.c9
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;
+ }
}
}
}