From 39e915bbbfca574ff8449d75db198285dc34ff03 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Tue, 11 Jan 2011 20:53:56 +0100 Subject: [PATCH] Handle drag on default text like focus in Also only connect the signals once. --- midori/sokoke.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/midori/sokoke.c b/midori/sokoke.c index 055ebddb..4e4aa092 100644 --- a/midori/sokoke.c +++ b/midori/sokoke.c @@ -1102,6 +1102,17 @@ sokoke_on_entry_focus_out_event (GtkEntry* entry, return FALSE; } +static void +sokoke_on_entry_drag_data_received (GtkEntry* entry, + GdkDragContext* drag_context, + gint x, + gint y, + guint timestamp, + gpointer user_data) +{ + sokoke_on_entry_focus_in_event (entry, NULL, NULL); +} + void sokoke_entry_set_default_text (GtkEntry* entry, const gchar* default_text) @@ -1116,6 +1127,12 @@ sokoke_entry_set_default_text (GtkEntry* entry, sokoke_widget_set_pango_font_style (GTK_WIDGET (entry), PANGO_STYLE_ITALIC); gtk_entry_set_text (entry, default_text); + g_signal_connect (entry, "drag-data-received", + G_CALLBACK (sokoke_on_entry_drag_data_received), NULL); + g_signal_connect (entry, "focus-in-event", + G_CALLBACK (sokoke_on_entry_focus_in_event), NULL); + g_signal_connect (entry, "focus-out-event", + G_CALLBACK (sokoke_on_entry_focus_out_event), NULL); } else if (!gtk_widget_has_focus (GTK_WIDGET (entry))) { @@ -1130,10 +1147,6 @@ sokoke_entry_set_default_text (GtkEntry* entry, } g_object_set_data (G_OBJECT (entry), "sokoke_default_text", (gpointer)default_text); - g_signal_connect (entry, "focus-in-event", - G_CALLBACK (sokoke_on_entry_focus_in_event), NULL); - g_signal_connect (entry, "focus-out-event", - G_CALLBACK (sokoke_on_entry_focus_out_event), NULL); } gchar*