summaryrefslogtreecommitdiff
path: root/openbox/menuframe.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2014-11-03 11:58:06 +0100
committerMikael Magnusson <mikachu@gmail.com>2014-11-03 12:10:44 +0100
commit031e3c13b4333ae8def24f4ccb2f777779d4a3a5 (patch)
treed4e751787e6d8e9b8c763673bc9ba2038ac6698e /openbox/menuframe.c
parent69dc27ed779173d0475f11001ea5268087b4b306 (diff)
Make sure to reset all the GSource timer ids
Avoids warnings like 'Source ID 8382 was not found when attempting to remove it'. In particular some removals were missing in menuframe.c resulting in a warning being printed every time a submenu was opened.
Diffstat (limited to 'openbox/menuframe.c')
-rw-r--r--openbox/menuframe.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index 7868df39..c37fdcc5 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -1036,7 +1036,6 @@ gboolean menu_frame_show_topmenu(ObMenuFrame *self, const GravityPoint *pos,
static void remove_submenu_hide_timeout(ObMenuFrame *child)
{
if (submenu_hide_timer) g_source_remove(submenu_hide_timer);
- submenu_hide_timer = 0;
}
gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
@@ -1134,11 +1133,9 @@ void menu_frame_hide_all(void)
{
GList *it;
- if (config_submenu_show_delay) {
+ if (config_submenu_show_delay && submenu_show_timer)
/* remove any submenu open requests */
- if (submenu_show_timer) g_source_remove(submenu_show_timer);
- submenu_show_timer = 0;
- }
+ g_source_remove(submenu_show_timer);
if ((it = g_list_last(menu_frame_visible)))
menu_frame_hide(it->data);
}
@@ -1188,6 +1185,11 @@ static gboolean submenu_show_timeout(gpointer data)
return FALSE;
}
+static void submenu_show_dest(gpointer data)
+{
+ submenu_show_timer = 0;
+}
+
static gboolean submenu_hide_timeout(gpointer data)
{
g_assert(menu_frame_visible);
@@ -1195,6 +1197,11 @@ static gboolean submenu_hide_timeout(gpointer data)
return FALSE;
}
+static void submenu_hide_dest(gpointer data)
+{
+ submenu_hide_timer = 0;
+}
+
void menu_frame_select(ObMenuFrame *self, ObMenuEntryFrame *entry,
gboolean immediate)
{
@@ -1216,11 +1223,9 @@ void menu_frame_select(ObMenuFrame *self, ObMenuEntryFrame *entry,
if (!entry && oldchild_entry)
entry = oldchild_entry;
- if (config_submenu_show_delay) {
+ if (config_submenu_show_delay && submenu_show_timer)
/* remove any submenu open requests */
- if (submenu_show_timer) g_source_remove(submenu_show_timer);
- submenu_show_timer = 0;
- }
+ g_source_remove(submenu_show_timer);
self->selected = entry;
@@ -1244,7 +1249,7 @@ void menu_frame_select(ObMenuFrame *self, ObMenuEntryFrame *entry,
submenu_hide_timer =
g_timeout_add_full(G_PRIORITY_DEFAULT,
config_submenu_hide_delay,
- submenu_hide_timeout, oldchild, NULL);
+ submenu_hide_timeout, oldchild, submenu_hide_dest);
}
}
}
@@ -1264,7 +1269,7 @@ void menu_frame_select(ObMenuFrame *self, ObMenuEntryFrame *entry,
g_timeout_add_full(G_PRIORITY_DEFAULT,
config_submenu_show_delay,
submenu_show_timeout,
- self->selected, NULL);
+ self->selected, submenu_show_dest);
}
}
/* hide the grandchildren of this menu. and move the cursor to