From 0c8aca23eb94efe740acffc6c20ab73794da2218 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 14 Feb 2008 23:04:54 -0500 Subject: [PATCH] set the window type hint on menus to be "popup menus" --- openbox/menuframe.c | 5 +++++ openbox/prop.c | 1 + openbox/prop.h | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/openbox/menuframe.c b/openbox/menuframe.c index ce77fc0f..54f0cdbc 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -21,6 +21,7 @@ #include "client.h" #include "menu.h" #include "screen.h" +#include "prop.h" #include "actions.h" #include "grab.h" #include "openbox.h" @@ -89,6 +90,10 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, guint show_from, ObClient *client) self->window = createWindow(RootWindow(ob_display, ob_screen), CWEventMask, &attr); + /* make it a popup menu type window */ + PROP_SET32(self->window, net_wm_window_type, atom, + prop_atoms.net_wm_window_type_popup_menu); + XSetWindowBorderWidth(ob_display, self->window, ob_rr_theme->mbwidth); XSetWindowBorder(ob_display, self->window, RrColorPixel(ob_rr_theme->menu_border_color)); diff --git a/openbox/prop.c b/openbox/prop.c index c2b0b40f..695e441f 100644 --- a/openbox/prop.c +++ b/openbox/prop.c @@ -112,6 +112,7 @@ void prop_startup(void) CREATE(net_wm_window_type_splash, "_NET_WM_WINDOW_TYPE_SPLASH"); CREATE(net_wm_window_type_dialog, "_NET_WM_WINDOW_TYPE_DIALOG"); CREATE(net_wm_window_type_normal, "_NET_WM_WINDOW_TYPE_NORMAL"); + CREATE(net_wm_window_type_popup_menu, "_NET_WM_WINDOW_TYPE_POPUP_MENU"); prop_atoms.net_wm_moveresize_size_topleft = 0; prop_atoms.net_wm_moveresize_size_top = 1; diff --git a/openbox/prop.h b/openbox/prop.h index 464fe26d..ae423271 100644 --- a/openbox/prop.h +++ b/openbox/prop.h @@ -86,6 +86,10 @@ typedef struct Atoms { Atom net_wm_bottomright; Atom net_wm_bottomleft; + /* types that we use but don't support */ + + Atom net_wm_window_type_popup_menu; + /* Everything below here must go in net_supported on the root window */ /* root window properties */ -- 2.44.0