forked from AuroraMiddleware/gtk
Set the entry in the default handler of the ::match-selected signal.
2004-05-10 Matthias Clasen <mclasen@redhat.com> * gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press): Set the entry in the default handler of the ::match-selected signal. (#137226)
This commit is contained in:
parent
8dbc511070
commit
e6a343408e
@ -1,5 +1,9 @@
|
|||||||
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press):
|
||||||
|
Set the entry in the default handler of the ::match-selected signal.
|
||||||
|
(#137226)
|
||||||
|
|
||||||
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
||||||
do the move-selected-item below pointer thingie, do the
|
do the move-selected-item below pointer thingie, do the
|
||||||
place-below-or-above one.
|
place-below-or-above one.
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press):
|
||||||
|
Set the entry in the default handler of the ::match-selected signal.
|
||||||
|
(#137226)
|
||||||
|
|
||||||
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
||||||
do the move-selected-item below pointer thingie, do the
|
do the move-selected-item below pointer thingie, do the
|
||||||
place-below-or-above one.
|
place-below-or-above one.
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press):
|
||||||
|
Set the entry in the default handler of the ::match-selected signal.
|
||||||
|
(#137226)
|
||||||
|
|
||||||
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
||||||
do the move-selected-item below pointer thingie, do the
|
do the move-selected-item below pointer thingie, do the
|
||||||
place-below-or-above one.
|
place-below-or-above one.
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
2004-05-10 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (gtk_entry_completion_list_button_press):
|
||||||
|
Set the entry in the default handler of the ::match-selected signal.
|
||||||
|
(#137226)
|
||||||
|
|
||||||
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
* gtk/gtkcombobox.c (gtk_combo_box_menu_position_below): If we don't
|
||||||
do the move-selected-item below pointer thingie, do the
|
do the move-selected-item below pointer thingie, do the
|
||||||
place-below-or-above one.
|
place-below-or-above one.
|
||||||
|
@ -119,6 +119,9 @@ static void gtk_entry_completion_action_data_func (GtkTreeViewColumn
|
|||||||
GtkTreeIter *iter,
|
GtkTreeIter *iter,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
|
||||||
|
static gboolean gtk_entry_completion_match_selected (GtkEntryCompletion *completion,
|
||||||
|
GtkTreeModel *model,
|
||||||
|
GtkTreeIter *iter);
|
||||||
|
|
||||||
static GObjectClass *parent_class = NULL;
|
static GObjectClass *parent_class = NULL;
|
||||||
static guint entry_completion_signals[LAST_SIGNAL] = { 0 };
|
static guint entry_completion_signals[LAST_SIGNAL] = { 0 };
|
||||||
@ -175,6 +178,8 @@ gtk_entry_completion_class_init (GtkEntryCompletionClass *klass)
|
|||||||
object_class->get_property = gtk_entry_completion_get_property;
|
object_class->get_property = gtk_entry_completion_get_property;
|
||||||
object_class->finalize = gtk_entry_completion_finalize;
|
object_class->finalize = gtk_entry_completion_finalize;
|
||||||
|
|
||||||
|
klass->match_selected = gtk_entry_completion_match_selected;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GtkEntryCompletion::match-selected:
|
* GtkEntryCompletion::match-selected:
|
||||||
* @widget: the object which received the signal
|
* @widget: the object which received the signal
|
||||||
@ -630,8 +635,8 @@ gtk_entry_completion_list_button_press (GtkWidget *widget,
|
|||||||
event->x, event->y,
|
event->x, event->y,
|
||||||
&path, NULL, NULL, NULL))
|
&path, NULL, NULL, NULL))
|
||||||
{
|
{
|
||||||
gboolean entry_set;
|
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
gboolean entry_set;
|
||||||
|
|
||||||
gtk_tree_model_get_iter (GTK_TREE_MODEL (completion->priv->filter_model),
|
gtk_tree_model_get_iter (GTK_TREE_MODEL (completion->priv->filter_model),
|
||||||
&iter, path);
|
&iter, path);
|
||||||
@ -645,29 +650,8 @@ gtk_entry_completion_list_button_press (GtkWidget *widget,
|
|||||||
g_signal_handler_unblock (completion->priv->entry,
|
g_signal_handler_unblock (completion->priv->entry,
|
||||||
completion->priv->changed_id);
|
completion->priv->changed_id);
|
||||||
|
|
||||||
if (!entry_set)
|
|
||||||
{
|
|
||||||
gchar *str = NULL;
|
|
||||||
|
|
||||||
gtk_tree_model_get (GTK_TREE_MODEL (completion->priv->filter_model),
|
|
||||||
&iter,
|
|
||||||
completion->priv->text_column, &str,
|
|
||||||
-1);
|
|
||||||
|
|
||||||
g_signal_handler_block (completion->priv->entry,
|
|
||||||
completion->priv->changed_id);
|
|
||||||
gtk_entry_set_text (GTK_ENTRY (completion->priv->entry), str);
|
|
||||||
g_signal_handler_unblock (completion->priv->entry,
|
|
||||||
completion->priv->changed_id);
|
|
||||||
|
|
||||||
/* move cursor to the end */
|
|
||||||
gtk_editable_set_position (GTK_EDITABLE (completion->priv->entry),
|
|
||||||
-1);
|
|
||||||
|
|
||||||
g_free (str);
|
|
||||||
}
|
|
||||||
|
|
||||||
_gtk_entry_completion_popdown (completion);
|
_gtk_entry_completion_popdown (completion);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1227,3 +1211,21 @@ _gtk_entry_completion_popdown (GtkEntryCompletion *completion)
|
|||||||
|
|
||||||
gtk_widget_hide (completion->priv->popup_window);
|
gtk_widget_hide (completion->priv->popup_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gtk_entry_completion_match_selected (GtkEntryCompletion *completion,
|
||||||
|
GtkTreeModel *model,
|
||||||
|
GtkTreeIter *iter)
|
||||||
|
{
|
||||||
|
gchar *str = NULL;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, iter, completion->priv->text_column, &str, -1);
|
||||||
|
gtk_entry_set_text (GTK_ENTRY (completion->priv->entry), str);
|
||||||
|
|
||||||
|
/* move cursor to the end */
|
||||||
|
gtk_editable_set_position (GTK_EDITABLE (completion->priv->entry), -1);
|
||||||
|
|
||||||
|
g_free (str);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user