Make the menu pop up centered below the mouse pointer.
authorMikael Magnusson <mikachu@comhem.se>
Mon, 23 Jul 2007 23:53:59 +0000 (01:53 +0200)
committerMikael Magnusson <mikachu@gmail.com>
Sat, 11 Oct 2014 00:17:20 +0000 (02:17 +0200)
also move the menu one pixel down so you can click and the menu doesn't stick.

openbox/menuframe.c

index a6da628566259475c9fffa864f6e6b9365b537b6..b3ee8774dde6bcb2dd2f4cbd55c05a25f9c9fcb9 100644 (file)
@@ -245,28 +245,14 @@ static void menu_frame_place_topmenu(ObMenuFrame *self, const GravityPoint *pos,
         return;
 
     if (config_menu_middle) {
-        gint myx;
 
-        myx = *x;
-        *y -= self->area.height / 2;
+        *x -= self->area.width / 2;
 
-        /* try to the right of the cursor */
-        menu_frame_move_on_screen(self, myx, *y, &dx, &dy);
+        /* try below the cursor */
+        menu_frame_move_on_screen(self, *x, *y, &dx, &dy);
         self->direction_right = TRUE;
-        if (dx != 0) {
-            /* try to the left of the cursor */
-            myx = *x - self->area.width;
-            menu_frame_move_on_screen(self, myx, *y, &dx, &dy);
-            self->direction_right = FALSE;
-        }
-        if (dx != 0) {
-            /* if didnt fit on either side so just use what it says */
-            myx = *x;
-            menu_frame_move_on_screen(self, myx, *y, &dx, &dy);
-            self->direction_right = TRUE;
-        }
-        *x = myx + dx;
-        *y += dy;
+        *x += dx;
+        *y += dy+1;
     } else {
         gint myx, myy;