summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-03-25 17:26:22 +0000
committerDana Jansens <danakj@orodu.net>2007-03-25 17:26:22 +0000
commitcbbda7a363e0be925072c77b521af5546b9d5da1 (patch)
tree1ea436d2bd64cfce4da2cb7a3685355707916a36
parentee58f96a8403b8058e3165e32b391cd136a5108f (diff)
proper logic for using the menu overlap with middle centered submenus.
always center top level menus horizontally under the cursor. why is this not normal behavior..?
-rw-r--r--openbox/menuframe.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index 7b86f4d7..0fba250a 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -193,7 +193,7 @@ void menu_frame_place_topmenu(ObMenuFrame *self, gint x, gint y)
x = self->client->frame->area.x + self->client->frame->size.left;
y = self->client->frame->area.y + self->client->frame->size.top;
} else {
- x -= ob_rr_theme->mbwidth;
+ x -= self->area.width / 2;
y -= ob_rr_theme->mbwidth + self->title_h;
}
menu_frame_move(self, x, y);
@@ -205,19 +205,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 - (bwidth * 2) - self->item_h) / 2;
+ y -= (self->area.height - (bwidth * 2) - self->item_h) / 2;
+ else
+ y += overlap;
menu_frame_move(self, x, y);
}