aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-07-31 14:36:11 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-07-31 14:36:11 +0200
commit6f6f19847c045271ae2d39f330576d92a88c1667 (patch)
tree4cf043f001c766507962afc1d0302e6d62affee6
parent37abbf405c4a0315591847056eee5608489c66de (diff)
downloadgtk-vlc-player-6f6f19847c045271ae2d39f330576d92a88c1667.tar.gz
prevent recursive quickopen_item_on_activate() invocations (fixes issue #1)
-rw-r--r--src/quick-open.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/quick-open.c b/src/quick-open.c
index d55fe50..ce47a6d 100644
--- a/src/quick-open.c
+++ b/src/quick-open.c
@@ -220,9 +220,17 @@ refresh_quickopen_menu(GtkMenu *menu)
static void
reconfigure_all_check_menu_items_cb(GtkWidget *widget, gpointer user_data)
{
- if (GTK_IS_CHECK_MENU_ITEM(widget))
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget),
- widget == GTK_WIDGET(user_data));
+ if (!GTK_IS_CHECK_MENU_ITEM(widget))
+ return;
+
+ g_signal_handlers_block_matched(widget, G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL,
+ quickopen_item_on_activate, NULL);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget),
+ widget == GTK_WIDGET(user_data));
+ g_signal_handlers_unblock_matched(widget, G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL,
+ quickopen_item_on_activate, NULL);
}
static void