static void disconnect_proxy_cb (GtkUIManager *manager, GtkAction *action, GtkWidget *proxy, CajaWindow *window) { GtkWidget *widget; if (GTK_IS_MENU_ITEM (proxy)) { g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (menu_item_select_cb), window); g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (menu_item_deselect_cb), window); } widget = get_event_widget (proxy); if (widget) { g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (proxy_button_press_event_cb), action); g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (proxy_button_release_event_cb), action); } }
static void connect_proxy_cb (GtkUIManager *manager, GtkAction *action, GtkWidget *proxy, CajaWindow *window) { GdkPixbuf *icon; GtkWidget *widget; if (GTK_IS_MENU_ITEM (proxy)) { g_signal_connect (proxy, "select", G_CALLBACK (menu_item_select_cb), window); g_signal_connect (proxy, "deselect", G_CALLBACK (menu_item_deselect_cb), window); /* This is a way to easily get pixbufs into the menu items */ icon = g_object_get_data (G_OBJECT (action), "menu-icon"); if (icon != NULL) { gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (proxy), gtk_image_new_from_pixbuf (icon)); } } if (GTK_IS_TOOL_BUTTON (proxy)) { icon = g_object_get_data (G_OBJECT (action), "toolbar-icon"); if (icon != NULL) { widget = gtk_image_new_from_pixbuf (icon); gtk_widget_show (widget); gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (proxy), widget); } } widget = get_event_widget (proxy); if (widget) { g_signal_connect (widget, "button-press-event", G_CALLBACK (proxy_button_press_event_cb), action); g_signal_connect (widget, "button-release-event", G_CALLBACK (proxy_button_release_event_cb), action); } }
static void ephy_link_action_disconnect_proxy (GtkAction *action, GtkWidget *proxy) { GtkWidget *widget; LOG ("Disconnect link action proxy"); widget = get_event_widget (proxy); if (widget) { g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (proxy_button_press_event_cb), action); } GTK_ACTION_CLASS (ephy_link_action_parent_class)->disconnect_proxy (action, proxy); }
static void ephy_link_action_connect_proxy (GtkAction *action, GtkWidget *proxy) { GtkWidget *widget; LOG ("Connect link action proxy"); widget = get_event_widget (proxy); if (widget) { g_signal_connect (widget, "button-press-event", G_CALLBACK (proxy_button_press_event_cb), action); } GTK_ACTION_CLASS (ephy_link_action_parent_class)->connect_proxy (action, proxy); }