set the window type hint on menus to be "popup menus"
authorDana Jansens <danakj@orodu.net>
Fri, 15 Feb 2008 04:04:54 +0000 (23:04 -0500)
committerDana Jansens <danakj@orodu.net>
Fri, 15 Feb 2008 04:04:54 +0000 (23:04 -0500)
openbox/menuframe.c
openbox/prop.c
openbox/prop.h

index ce77fc0..54f0cdb 100644 (file)
@@ -21,6 +21,7 @@
 #include "client.h"
 #include "menu.h"
 #include "screen.h"
 #include "client.h"
 #include "menu.h"
 #include "screen.h"
+#include "prop.h"
 #include "actions.h"
 #include "grab.h"
 #include "openbox.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);
 
     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));
     XSetWindowBorderWidth(ob_display, self->window, ob_rr_theme->mbwidth);
     XSetWindowBorder(ob_display, self->window,
                      RrColorPixel(ob_rr_theme->menu_border_color));
index c2b0b40..695e441 100644 (file)
@@ -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_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;
 
     prop_atoms.net_wm_moveresize_size_topleft = 0;
     prop_atoms.net_wm_moveresize_size_top = 1;
index 464fe26..ae42327 100644 (file)
@@ -86,6 +86,10 @@ typedef struct Atoms {
     Atom net_wm_bottomright;
     Atom net_wm_bottomleft;
 
     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 */
     /* Everything below here must go in net_supported on the root window */
 
     /* root window properties */