diff --git a/src/xstate/mod.rs b/src/xstate/mod.rs index 1d69b50..c35542c 100644 --- a/src/xstate/mod.rs +++ b/src/xstate/mod.rs @@ -724,6 +724,7 @@ impl XState { self.window_atoms.dropdown_menu, self.window_atoms.tooltip, self.window_atoms.drag_n_drop, + self.window_atoms.utility, ] .contains(&x) => { diff --git a/tests/integration.rs b/tests/integration.rs index 4fe2c43..b966854 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -343,6 +343,7 @@ xcb::atoms_struct! { win_type_popup_menu => b"_NET_WM_WINDOW_TYPE_POPUP_MENU", win_type_dropdown_menu => b"_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", win_type_tooltip => b"_NET_WM_WINDOW_TYPE_TOOLTIP", + win_type_utility => b"_NET_WM_WINDOW_TYPE_UTILITY", win_type_dnd => b"_NET_WM_WINDOW_TYPE_DND", motif_wm_hints => b"_MOTIF_WM_HINTS" only_if_exists = false, mime1 => b"text/plain" only_if_exists = false, @@ -2002,6 +2003,15 @@ fn popup_heuristics() { &[connection.atoms.win_type_dropdown_menu], ); f.map_as_popup(&mut connection, git_gui_dropdown); + + let wechat_popup = connection.new_window(connection.root, 10, 10, 50, 50, true); + connection.set_property( + wechat_popup, + x::ATOM_ATOM, + connection.atoms.win_type, + &[connection.atoms.win_type_utility], + ); + f.map_as_popup(&mut connection, wechat_popup); } #[test]