Handle drag on default text like focus in
Also only connect the signals once.
This commit is contained in:
parent
8f489ca872
commit
39e915bbbf
1 changed files with 17 additions and 4 deletions
|
@ -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*
|
||||
|
|
Loading…
Reference in a new issue