From 8da4b1ef9a5c211d07ae6c4522eb78cba207a43e Mon Sep 17 00:00:00 2001 From: "[d.j.a.y] Jerome Blanchi" Date: Mon, 15 Aug 2016 17:50:56 +0200 Subject: [PATCH] Reloaded : Kf Anim toggle button in curve panel - fix duplicate signal * curve_toggleentry_toggled was called twice and so VIMS_SAMPLE_KF_STATUS received twice --- veejay-current/veejay-client/src/callback.c | 24 +++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/veejay-current/veejay-client/src/callback.c b/veejay-current/veejay-client/src/callback.c index d32895cd..457fddf4 100644 --- a/veejay-current/veejay-client/src/callback.c +++ b/veejay-current/veejay-client/src/callback.c @@ -2761,9 +2761,19 @@ void curve_chain_toggleentry_toggled( GtkWidget *widget, gpointer user_data) curve_toggleentry_toggled( widget, user_data); GtkWidget *siamese = glade_xml_get_widget_( info->main_window, "curve_panel_toggleentry"); - if(siamese) { + if(siamese) + { + guint signal_id=g_signal_lookup("toggled", GTK_TYPE_TOGGLE_BUTTON); + gulong handler_id=handler_id=g_signal_handler_find( (gpointer)siamese, G_SIGNAL_MATCH_ID, signal_id, 0, NULL, NULL, NULL ); + + if (handler_id) + g_signal_handler_block((gpointer)siamese, handler_id); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(siamese), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(widget) )) ; + + if (handler_id) + g_signal_handler_unblock((gpointer)siamese, handler_id); } } @@ -2772,9 +2782,19 @@ void curve_panel_toggleentry_toggled( GtkWidget *widget, gpointer user_data) curve_toggleentry_toggled( widget, user_data); GtkWidget *siamese = glade_xml_get_widget_( info->main_window, "curve_chain_toggleentry"); - if(siamese) { + if(siamese) + { + guint signal_id=g_signal_lookup("toggled", GTK_TYPE_TOGGLE_BUTTON); + gulong handler_id=handler_id=g_signal_handler_find( (gpointer)siamese, G_SIGNAL_MATCH_ID, signal_id, 0, NULL, NULL, NULL ); + + if (handler_id) + g_signal_handler_block((gpointer)siamese, handler_id); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(siamese), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(widget) )) ; + + if (handler_id) + g_signal_handler_unblock((gpointer)siamese, handler_id); } }