All pastes #1746119 Raw Edit

C

public c v1 · immutable
#1746119 ·published 2010-01-10 22:39 UTC
rendered paste body
#include <gtk/gtk.h>#include <glib.h>voidactivate (GtkAction *a, gpointer data){    g_debug ("%s: ACTIVATE!", gtk_action_get_name (a));}voidtoggled (GtkToggleAction *a, gpointer data){    g_debug ("%s: TOGGLED %d!", gtk_action_get_name (a), gtk_toggle_action_get_active (a));}int main(int argc, char **argv){    gtk_init(&argc, &argv);        GtkAction *a = gtk_action_new ("test-action", NULL, NULL, NULL);        g_signal_connect (a, "activate", activate, NULL);        gtk_action_activate (a);        // Block works as expected on GtkAction:    gtk_action_block_activate (a);    gtk_action_activate (a);        gtk_action_unblock_activate (a);                GtkToggleAction *a2 = gtk_toggle_action_new ("test-toggleaction", NULL, NULL, NULL);    	gulong activate_id,toggled_id;   activate_id =  g_signal_connect (a2, "activate", activate, NULL);       toggled_id =  g_signal_connect (a2, "toggled", toggled, NULL);        gtk_action_activate (a2); // TRUE    gtk_toggle_action_set_active (a2, FALSE);        // Block works as expected when using gtk_action_activate()    gtk_action_block_activate (a2);    gtk_action_activate (a2);    gtk_action_unblock_activate (a2);        // Block does NOT work when using gtk_toggle_action_set_active	g_signal_handler_block(a2,activate_id);	g_signal_handler_block(a2,toggled_id);    gtk_toggle_action_set_active (a2, TRUE);	g_signal_handler_unblock(a2,activate_id);	g_signal_handler_unblock(a2,toggled_id);            gtk_main();        return 0;}