commit 429787510e0c5b519d438fbd98582977c8d75e2f
parent a4d6835881a1ce276ae68f33e5dc94776ee28424
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun, 21 Oct 2018 16:40:53 +0200
Merge pull request #2909 from makepanic/issues/2906
Parse missing i3 window types
Diffstat:
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git 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
@@ -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
@@ -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",
};