]> Dogcows Code - chaz/openbox/blobdiff - openbox/menuframe.c
Merge branch 'backport' into work
[chaz/openbox] / openbox / menuframe.c
index c25e485f06c6c94d5eab803de7d213fe8f61e1cd..867aa81c2b782d3606fcec4180d8108c817e971b 100644 (file)
@@ -25,6 +25,7 @@
 #include "grab.h"
 #include "openbox.h"
 #include "config.h"
+#include "obt/prop.h"
 #include "render/theme.h"
 
 #define PADDING 2
@@ -88,6 +89,10 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, guint show_from, ObClient *client)
     self->window = createWindow(obt_root(ob_screen),
                                 CWEventMask, &attr);
 
+    /* make it a popup menu type window */
+    OBT_PROP_SET32(self->window, NET_WM_WINDOW_TYPE, ATOM,
+                   OBT_PROP_ATOM(NET_WM_WINDOW_TYPE_POPUP_MENU));
+
     XSetWindowBorderWidth(obt_display, self->window, ob_rr_theme->mbwidth);
     XSetWindowBorder(obt_display, self->window,
                      RrColorPixel(ob_rr_theme->menu_border_color));
@@ -254,23 +259,24 @@ static void menu_frame_place_topmenu(ObMenuFrame *self, gint *x, gint *y)
 
 static void menu_frame_place_submenu(ObMenuFrame *self, gint *x, gint *y)
 {
-    gint overlap;
+    gint overlapx, overlapy;
     gint bwidth;
 
-    overlap = ob_rr_theme->menu_overlap;
+    overlapx = ob_rr_theme->menu_overlap_x;
+    overlapy = ob_rr_theme->menu_overlap_y;
     bwidth = ob_rr_theme->mbwidth;
 
     if (self->direction_right)
         *x = self->parent->area.x + self->parent->area.width -
-            overlap - bwidth;
+            overlapx - bwidth;
     else
-        *x = self->parent->area.x - self->area.width + overlap + bwidth;
+        *x = self->parent->area.x - self->area.width + overlapx + bwidth;
 
     *y = self->parent->area.y + self->parent_entry->area.y;
     if (config_menu_middle)
         *y -= (self->area.height - (bwidth * 2) - ITEM_HEIGHT) / 2;
     else
-        *y += overlap;
+        *y += overlapy;
 }
 
 void menu_frame_move_on_screen(ObMenuFrame *self, gint x, gint y,
This page took 0.021409 seconds and 4 git commands to generate.