add a menuOverlap property to themes, and use it in the submenu placement

This commit is contained in:
Dana Jansens 2003-07-22 16:14:42 +00:00
parent 463c0004a1
commit ea6258ce0f
3 changed files with 7 additions and 3 deletions

View file

@ -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,

View file

@ -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;

View file

@ -20,6 +20,7 @@ struct _RrTheme {
gint title_height;
gint button_size;
gint grip_width;
gint menu_overlap;
/* style settings - colors */
RrColor *b_color;