]> Dogcows Code - chaz/openbox/blobdiff - openbox/menuframe.c
scary commit..but here goes.
[chaz/openbox] / openbox / menuframe.c
index 120f4c385c89e9a75fa2d9e4d16c10e83181c5a2..743f4204ca7ea7fa00cac7d1586b59697b09dfad 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    menuframe.c for the Openbox window manager
-   Copyright (c) 2004        Mikael Magnusson
+   Copyright (c) 2006        Mikael Magnusson
    Copyright (c) 2003        Ben Jansens
 
    This program is free software; you can redistribute it and/or modify
@@ -23,6 +23,7 @@
 #include "screen.h"
 #include "grab.h"
 #include "openbox.h"
+#include "mainloop.h"
 #include "config.h"
 #include "render/theme.h"
 
@@ -66,9 +67,8 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, ObClient *client)
     self->client = client;
 
     attr.event_mask = FRAME_EVENTMASK;
-    attr.save_under = True;
     self->window = createWindow(RootWindow(ob_display, ob_screen),
-                                   CWEventMask | CWSaveUnder, &attr);
+                                CWEventMask, &attr);
     attr.event_mask = TITLE_EVENTMASK;
     self->title = createWindow(self->window, CWEventMask, &attr);
     self->items = createWindow(self->window, 0, NULL);
@@ -189,7 +189,6 @@ void menu_frame_move(ObMenuFrame *self, gint x, gint y)
 void menu_frame_move_on_screen(ObMenuFrame *self)
 {
     Rect *a = NULL;
-    guint i;
     gint dx = 0, dy = 0;
     gint pos, half;
 
@@ -251,6 +250,8 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
     case OB_MENU_ENTRY_TYPE_SEPARATOR:
         th = SEPARATOR_HEIGHT + 2*PADDING;
         break;
+    default:
+        g_assert_not_reached();
     }
     RECT_SET_SIZE(self->area, self->frame->inner_w, th);
     XResizeWindow(ob_display, self->window,
@@ -411,25 +412,25 @@ static void menu_frame_render(ObMenuFrame *self)
     gboolean has_icon = FALSE;
     ObMenu *sub;
 
-    XSetWindowBorderWidth(ob_display, self->window, ob_rr_theme->bwidth);
+    XSetWindowBorderWidth(ob_display, self->window, ob_rr_theme->mbwidth);
     XSetWindowBorder(ob_display, self->window,
-                     RrColorPixel(ob_rr_theme->b_color));
+                     RrColorPixel(ob_rr_theme->menu_b_color));
 
     if (!self->parent && self->show_title) {
         XMoveWindow(ob_display, self->title, 
-                    -ob_rr_theme->bwidth, h - ob_rr_theme->bwidth);
+                    -ob_rr_theme->mbwidth, h - ob_rr_theme->mbwidth);
 
         self->a_title->texture[0].data.text.string = self->menu->title;
         RrMinsize(self->a_title, &tw, &th);
-        tw = MIN(tw, MAX_MENU_WIDTH) + ob_rr_theme->padding * 2;
+        tw = MIN(tw, MAX_MENU_WIDTH) + ob_rr_theme->paddingx * 2;
         w = MAX(w, tw);
 
         th = ob_rr_theme->menu_title_height;
-        h += (self->title_h = th + ob_rr_theme->bwidth);
+        h += (self->title_h = th + ob_rr_theme->mbwidth);
 
-        XSetWindowBorderWidth(ob_display, self->title, ob_rr_theme->bwidth);
+        XSetWindowBorderWidth(ob_display, self->title, ob_rr_theme->mbwidth);
         XSetWindowBorder(ob_display, self->title,
-                         RrColorPixel(ob_rr_theme->b_color));
+                         RrColorPixel(ob_rr_theme->menu_b_color));
     }
 
     XMoveWindow(ob_display, self->items, 0, h);
@@ -537,9 +538,9 @@ static void menu_frame_render(ObMenuFrame *self)
 
     if (!self->parent && self->show_title) {
         XResizeWindow(ob_display, self->title,
-                      w, self->title_h - ob_rr_theme->bwidth);
+                      w, self->title_h - ob_rr_theme->mbwidth);
         RrPaint(self->a_title, self->title,
-                w, self->title_h - ob_rr_theme->bwidth);
+                w, self->title_h - ob_rr_theme->mbwidth);
         XMapWindow(ob_display, self->title);
     } else
         XUnmapWindow(ob_display, self->title);
@@ -549,8 +550,8 @@ static void menu_frame_render(ObMenuFrame *self)
     for (it = self->entries; it; it = g_list_next(it))
         menu_entry_frame_render(it->data);
 
-    w += ob_rr_theme->bwidth * 2;
-    h += ob_rr_theme->bwidth * 2;
+    w += ob_rr_theme->mbwidth * 2;
+    h += ob_rr_theme->mbwidth * 2;
 
     RECT_SET_SIZE(self->area, w, h);
 
@@ -675,13 +676,14 @@ void menu_frame_hide(ObMenuFrame *self)
 
 void menu_frame_hide_all()
 {
+    GList *it;
+
     if (config_submenu_show_delay) {
         /* remove any submenu open requests */
         ob_main_loop_timeout_remove(ob_main_loop,
                                     menu_entry_frame_submenu_timeout);
     }
-    GList *it = g_list_last(menu_frame_visible);
-    if (it) 
+    if ((it = g_list_last(menu_frame_visible)))
         menu_frame_hide(it->data);
 }
 
@@ -719,8 +721,8 @@ ObMenuEntryFrame* menu_entry_frame_under(gint x, gint y)
     GList *it;
 
     if ((frame = menu_frame_under(x, y))) {
-        x -= ob_rr_theme->bwidth + frame->area.x;
-        y -= frame->title_h + ob_rr_theme->bwidth + frame->area.y;
+        x -= ob_rr_theme->mbwidth + frame->area.x;
+        y -= frame->title_h + ob_rr_theme->mbwidth + frame->area.y;
 
         for (it = frame->entries; it; it = g_list_next(it)) {
             ObMenuEntryFrame *e = it->data;
@@ -793,7 +795,7 @@ void menu_entry_frame_show_submenu(ObMenuEntryFrame *self)
                     self->frame->area.x
                   + self->frame->area.width
                   - ob_rr_theme->menu_overlap
-                  - ob_rr_theme->bwidth,
+                  - ob_rr_theme->mbwidth,
                     self->frame->area.y
                   + self->frame->title_h
                   + self->area.y
This page took 0.024428 seconds and 4 git commands to generate.