From 989bddc76503f8b11cd6712d158516f0cb0836ca Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 21 Oct 2018 15:51:35 +0200 Subject: [PATCH] Parse missing i3 window types fixes the parsing part of #2906 --- include/sway/xwayland.h | 5 +++++ sway/criteria.c | 10 ++++++++++ sway/desktop/xwayland.c | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/include/sway/xwayland.h b/include/sway/xwayland.h index 121edad3..93055c46 100644 --- a/include/sway/xwayland.h +++ b/include/sway/xwayland.h @@ -10,6 +10,11 @@ enum atom_name { NET_WM_WINDOW_TYPE_UTILITY, NET_WM_WINDOW_TYPE_TOOLBAR, NET_WM_WINDOW_TYPE_SPLASH, + NET_WM_WINDOW_TYPE_MENU, + NET_WM_WINDOW_TYPE_DROPDOWN_MENU, + NET_WM_WINDOW_TYPE_POPUP_MENU, + NET_WM_WINDOW_TYPE_TOOLTIP, + NET_WM_WINDOW_TYPE_NOTIFICATION, NET_WM_STATE_MODAL, ATOM_LAST, }; diff --git a/sway/criteria.c b/sway/criteria.c index e00d638c..89630d90 100644 --- a/sway/criteria.c +++ b/sway/criteria.c @@ -286,6 +286,16 @@ static enum atom_name parse_window_type(const char *type) { return NET_WM_WINDOW_TYPE_TOOLBAR; } else if (strcasecmp(type, "splash") == 0) { return NET_WM_WINDOW_TYPE_SPLASH; + } else if (strcasecmp(type, "menu") == 0) { + return NET_WM_WINDOW_TYPE_MENU; + } else if (strcasecmp(type, "dropdown_menu") == 0) { + return NET_WM_WINDOW_TYPE_DROPDOWN_MENU; + } else if (strcasecmp(type, "popup_menu") == 0) { + return NET_WM_WINDOW_TYPE_POPUP_MENU; + } else if (strcasecmp(type, "tooltip") == 0) { + return NET_WM_WINDOW_TYPE_TOOLTIP; + } else if (strcasecmp(type, "notification") == 0) { + return NET_WM_WINDOW_TYPE_NOTIFICATION; } return ATOM_LAST; // ie. invalid } diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 58cb4d07..b8ac8434 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -23,6 +23,11 @@ static const char *atom_map[ATOM_LAST] = { "_NET_WM_WINDOW_TYPE_UTILITY", "_NET_WM_WINDOW_TYPE_TOOLBAR", "_NET_WM_WINDOW_TYPE_SPLASH", + "_NET_WM_WINDOW_TYPE_MENU", + "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", + "_NET_WM_WINDOW_TYPE_POPUP_MENU", + "_NET_WM_WINDOW_TYPE_TOOLTIP", + "_NET_WM_WINDOW_TYPE_NOTIFICATION", "_NET_WM_STATE_MODAL", };