]> Dogcows Code - chaz/openbox/blobdiff - openbox/menuframe.c
grab enter/leave events during mouse grabs and pass events along still during the...
[chaz/openbox] / openbox / menuframe.c
index f8c0b0556505badca1190041aaf2951274233175..a4cb464740aa100719bc14baf17a9146456318ee 100644 (file)
@@ -195,11 +195,8 @@ void menu_frame_place_topmenu(ObMenuFrame *self, gint x, gint y)
     } else {
         if (config_menu_middle) {
             x -= self->area.width / 2;
-            y -= self->title_h*3/4;
-        } else {
-            x -= ob_rr_theme->mbwidth;
-            y -= ob_rr_theme->mbwidth;
         }
+        y -= self->title_h;
     }
     menu_frame_move(self, x, y);
 }
@@ -210,19 +207,20 @@ void menu_frame_place_submenu(ObMenuFrame *self)
     gint overlap;
     gint bwidth;
 
-    overlap = (config_menu_middle ? 0 : ob_rr_theme->menu_overlap);
+    overlap = ob_rr_theme->menu_overlap;
     bwidth = ob_rr_theme->mbwidth;
 
-
     if (self->direction_right)
         x = self->parent->area.x + self->parent->area.width - overlap - bwidth;
     else
         x = self->parent->area.x - self->area.width + overlap + bwidth;
 
     y = self->parent->area.y + self->parent->title_h +
-        self->parent_entry->area.y + overlap;
+        self->parent_entry->area.y;
     if (config_menu_middle)
-        y = y - self->area.height/2 + self->item_h/2;
+        y -= (self->area.height - (bwidth * 2) - self->item_h) / 2;
+    else
+        y += overlap;
 
     menu_frame_move(self, x, y);
 }
@@ -689,8 +687,6 @@ gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
 
     if (menu_frame_is_visible(self))
         return TRUE;
-    if (!menu_frame_show(self))
-        return FALSE;
 
     self->monitor = parent->monitor;
     self->parent = parent;
@@ -701,6 +697,9 @@ gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
         menu_frame_hide(parent->child);
     parent->child = self;
 
+    if (!menu_frame_show(self))
+        return FALSE;
+
     menu_frame_place_submenu(self);
     menu_frame_move_on_screen(self, &dx, &dy);
 
This page took 0.021176 seconds and 4 git commands to generate.