]> Dogcows Code - chaz/openbox/commitdiff
add a menuOverlap property to themes, and use it in the submenu placement
authorDana Jansens <danakj@orodu.net>
Tue, 22 Jul 2003 16:14:42 +0000 (16:14 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 22 Jul 2003 16:14:42 +0000 (16:14 +0000)
openbox/menu.c
render/theme.c
render/theme.h

index 5b78a176a1698baa8c570ead63d29411e1c14579..ccf9df9238b1798b33780511cf32742825d90cf8 100644 (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,
index 29f0663ccb26b53c12fa91723b5557ecdafc507f..a7da009b01488af135a906e5d4c61236f1a27740 100644 (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;
index acf17c3e385bfe1824654a550bfc03201777a732..74f309e704bf38053075b52d839d89bcba682255 100644 (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;
This page took 0.034841 seconds and 4 git commands to generate.