static ObMenuEntryFrame* menu_entry_frame_new(ObMenuEntry *entry,
ObMenuFrame *frame);
static void menu_entry_frame_free(ObMenuEntryFrame *self);
-static void menu_frame_render(ObMenuFrame *self);
static void menu_frame_update(ObMenuFrame *self);
static gboolean menu_entry_frame_submenu_timeout(gpointer data);
return h;
}
-static void menu_frame_render(ObMenuFrame *self)
+void menu_frame_render(ObMenuFrame *self)
{
gint w = 0, h = 0;
gint tw, th; /* temps */
gpointer data = self->frame->menu->data;
GSList *acts = self->entry->data.normal.actions;
ObClient *client = self->frame->client;
+ ObMenuFrame *frame = self->frame;
/* release grabs before executing the shit */
- if (!(state & ControlMask))
+ if (!(state & ControlMask)) {
menu_frame_hide_all();
+ frame = NULL;
+ }
if (func)
- func(entry, state, data, time);
+ func(entry, frame, client, state, data, time);
else
action_run(acts, client, state, time);
}