From 9de30c8784509df5ea9e80ed3eb093b3f5e35a95 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 6 Feb 2005 14:32:59 +0000 Subject: Don't set the lock icon as drag source. Actually emit the lock-clicked 2005-02-06 Christian Persch * lib/widgets/ephy-location-entry.c: (ephy_location_entry_class_init), (lock_button_press_event_cb), (ephy_location_entry_construct_contents): Don't set the lock icon as drag source. Actually emit the lock-clicked signal when pressed. * lib/widgets/ephy-location-entry.h: * src/ephy-location-action.c: (lock_clicked_cb), (connect_proxy), (ephy_location_action_class_init): * src/ephy-location-action.h: * src/ephy-toolbar.c: (lock_clicked_cb), (ephy_toolbar_set_window): Actually forward the lock-clicked signal to the toolbar. --- src/ephy-location-action.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/ephy-location-action.c') diff --git a/src/ephy-location-action.c b/src/ephy-location-action.c index 402abb4cd..9043cac94 100644 --- a/src/ephy-location-action.c +++ b/src/ephy-location-action.c @@ -72,6 +72,13 @@ enum PROP_WINDOW }; +enum +{ + LOCK_CLICKED, + LAST_SIGNAL +}; +static guint signals[LAST_SIGNAL] = { 0 }; + static GObjectClass *parent_class = NULL; GType @@ -161,6 +168,13 @@ user_changed_cb (GtkWidget *proxy, EphyLocationAction *action) g_signal_handlers_unblock_by_func (action, G_CALLBACK (sync_address), proxy); } +static void +lock_clicked_cb (GtkWidget *proxy, + EphyLocationAction *action) +{ + g_signal_emit (action, signals[LOCK_CLICKED], 0); +} + static void sync_address (GtkAction *gaction, GParamSpec *pspec, @@ -362,6 +376,8 @@ connect_proxy (GtkAction *action, GtkWidget *proxy) action, 0); g_signal_connect_object (proxy, "user_changed", G_CALLBACK (user_changed_cb), action, 0); + g_signal_connect_object (proxy, "lock-clicked", + G_CALLBACK (lock_clicked_cb), action, 0); g_signal_connect_object (proxy, "get-location", G_CALLBACK (get_location_cb), action, 0); g_signal_connect_object (proxy, "get-title", @@ -479,6 +495,16 @@ ephy_location_action_class_init (EphyLocationActionClass *class) action_class->connect_proxy = connect_proxy; action_class->disconnect_proxy = disconnect_proxy; + signals[LOCK_CLICKED] = g_signal_new ( + "lock-clicked", + EPHY_TYPE_LOCATION_ACTION, + G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EphyLocationActionClass, lock_clicked), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + g_object_class_install_property (object_class, PROP_ADDRESS, g_param_spec_string ("address", -- cgit v1.2.3