From ea6258ce0f8b4e7af8d44f2e540eb25ccfe8955b Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 22 Jul 2003 16:14:42 +0000 Subject: [PATCH] add a menuOverlap property to themes, and use it in the submenu placement --- openbox/menu.c | 6 +++--- render/theme.c | 3 +++ render/theme.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/openbox/menu.c b/openbox/menu.c index 5b78a176..ccf9df92 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -11,7 +11,7 @@ GHashTable *menu_hash = NULL; GList *menu_visible = NULL; -#define FRAME_EVENTMASK (ButtonPressMask |ButtonMotionMask | EnterWindowMask | \ +#define FRAME_EVENTMASK (ButtonPressMask |ButtonMotionMask | EnterWindowMask |\ LeaveWindowMask) #define TITLE_EVENTMASK (ButtonPressMask | ButtonMotionMask) #define ENTRY_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ @@ -473,7 +473,7 @@ void menu_control_mouseover(ObMenuEntry *self, gboolean enter) /* TODO: I don't understand why these bevels should be here. Something must be wrong in the width calculation */ x = self->parent->location.x + self->parent->size.width + - ob_rr_theme->bwidth; + ob_rr_theme->bwidth - ob_rr_theme->menu_overlap; /* need to get the width. is this bad?*/ menu_render(self->submenu); @@ -482,7 +482,7 @@ void menu_control_mouseover(ObMenuEntry *self, gboolean enter) if (self->submenu->size.width + x >= a->x + a->width) x = self->parent->location.x - self->submenu->size.width - - ob_rr_theme->bwidth; + ob_rr_theme->bwidth + ob_rr_theme->menu_overlap; menu_show_full(self->submenu, x, self->parent->location.y + self->y, diff --git a/render/theme.c b/render/theme.c index 29f0663c..a7da009b 100644 --- a/render/theme.c +++ b/render/theme.c @@ -135,6 +135,9 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name) theme->title_layout = g_strdup(font_str); /* load direct dimensions */ + if (!read_int(db, "menuOverlap", &theme->menu_overlap) || + theme->menu_overlap < 0 || theme->menu_overlap > 20) + theme->handle_height = 0; if (!read_int(db, "handleWidth", &theme->handle_height) || theme->handle_height < 0 || theme->handle_height > 100) theme->handle_height = 6; diff --git a/render/theme.h b/render/theme.h index acf17c3e..74f309e7 100644 --- a/render/theme.h +++ b/render/theme.h @@ -20,6 +20,7 @@ struct _RrTheme { gint title_height; gint button_size; gint grip_width; + gint menu_overlap; /* style settings - colors */ RrColor *b_color; -- 2.39.2