X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenuframe.c;h=108864679e88319a7a949dcadab8d767809f9a7a;hb=a9910e520b1e5a7020ca8df0f2a7d0d0d48e2857;hp=fa0af5300ef12c1da964d84ebfdbe16e481fa72c;hpb=78af5d15e9dd94959786811e9eddfa1e5024067c;p=chaz%2Fopenbox diff --git a/openbox/menuframe.c b/openbox/menuframe.c index fa0af530..10886467 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -67,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); @@ -413,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); @@ -539,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); @@ -551,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); @@ -677,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); } @@ -721,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; @@ -795,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 @@ -803,7 +803,7 @@ void menu_entry_frame_show_submenu(ObMenuEntryFrame *self) menu_frame_show(f, self->frame); } -void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state) +void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state, Time time) { if (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL && self->entry->data.normal.enabled) @@ -821,9 +821,9 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state) menu_frame_hide_all(); if (func) - func(entry, state, data); + func(entry, state, data, time); else - action_run(acts, client, state); + action_run(acts, client, state, time); } }