Skip to content

Commit

Permalink
Allow selecting menu entries during menuHideDelay if you click again,…
Browse files Browse the repository at this point in the history
… bug 5501
  • Loading branch information
Mikachu committed Nov 5, 2014
1 parent 28e85ea commit 8944094
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
10 changes: 8 additions & 2 deletions openbox/event.c
Expand Up @@ -1836,8 +1836,14 @@ static gboolean event_handle_menu_input(XEvent *ev)
if ((e = menu_entry_frame_under(ev->xbutton.x_root,
ev->xbutton.y_root)))
{
if (ev->type == ButtonPress && e->frame->child)
menu_frame_select(e->frame->child, NULL, TRUE);
if (ev->type == ButtonPress) {
/* We know this is a new press, so we don't have to
* block release events anymore */
menu_hide_delay_reset();

if (e->frame->child)
menu_frame_select(e->frame->child, NULL, TRUE);
}
menu_frame_select(e->frame, e, TRUE);
if (ev->type == ButtonRelease)
menu_entry_frame_execute(e, ev->xbutton.state);
Expand Down
7 changes: 7 additions & 0 deletions openbox/menu.c
Expand Up @@ -454,6 +454,7 @@ static gboolean menu_hide_delay_func(gpointer data)
{
menu_can_hide = TRUE;
menu_timeout_id = 0;

return FALSE; /* no repeat */
}

Expand Down Expand Up @@ -518,6 +519,12 @@ gboolean menu_hide_delay_reached(void)
return menu_can_hide;
}

void menu_hide_delay_reset(void)
{
if (menu_timeout_id) g_source_remove(menu_timeout_id);
menu_hide_delay_func(NULL);
}

static ObMenuEntry* menu_entry_new(ObMenu *menu, ObMenuEntryType type, gint id)
{
ObMenuEntry *self;
Expand Down
1 change: 1 addition & 0 deletions openbox/menu.h
Expand Up @@ -185,6 +185,7 @@ void menu_show(gchar *name, const GravityPoint *pos, gint monitor,
gboolean mouse, gboolean user_positioned,
struct _ObClient *client);
gboolean menu_hide_delay_reached(void);
void menu_hide_delay_reset(void);

/*! The show function is called right after a menu is shown */
void menu_set_show_func(ObMenu *menu, ObMenuShowFunc func);
Expand Down

0 comments on commit 8944094

Please sign in to comment.