summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-08-06 03:32:59 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-08-06 03:32:59 +0000
commitc8b214680d1e8ad6295855c079e725030fa5ba71 (patch)
treebab5ed9d2aed0fd910643c658fe24b0d1e861da1 /gtk
parent3495a602a3fbe7c40d4057996a6dc6e0914d84fe (diff)
downloadgtk+-c8b214680d1e8ad6295855c079e725030fa5ba71.tar.gz
Export gtk_entry_reset_im_context privately.
2006-08-05 Matthias Clasen <mclasen@redhat.com> * gtk/gtkentry.c: * gtk/gtkentryprivate.h: Export gtk_entry_reset_im_context privately. * gtk/gtkentrycompletion.c (gtk_entry_completion_action_button_press): * gtk/gtkentry.c (gtk_entry_completion_key_press): Reset the entry's im context here. (#348478, Nguyen Thai Ngoc Duy, Christian Persch)
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkentry.c38
-rw-r--r--gtk/gtkentrycompletion.c2
-rw-r--r--gtk/gtkentryprivate.h9
3 files changed, 25 insertions, 24 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 4063d9ceea..5b0ee549ca 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -295,7 +295,6 @@ static PangoLayout *gtk_entry_ensure_layout (GtkEntry *entry,
gboolean include_preedit);
static void gtk_entry_reset_layout (GtkEntry *entry);
static void gtk_entry_queue_draw (GtkEntry *entry);
-static void gtk_entry_reset_im_context (GtkEntry *entry);
static void gtk_entry_recompute (GtkEntry *entry);
static gint gtk_entry_find_position (GtkEntry *entry,
gint x);
@@ -924,7 +923,7 @@ gtk_entry_set_property (GObject *object,
{
if (!new_value)
{
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
if (GTK_WIDGET_HAS_FOCUS (entry))
gtk_im_context_focus_out (entry->im_context);
@@ -1110,7 +1109,7 @@ gtk_entry_destroy (GtkObject *object)
entry->n_bytes = 0;
entry->current_pos = entry->selection_bound = entry->text_length = 0;
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
gtk_entry_reset_layout (entry);
if (entry->blink_timeout)
@@ -1612,7 +1611,7 @@ gtk_entry_button_press (GtkWidget *widget,
if (event->state & GDK_SHIFT_MASK)
{
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
if (!have_selection) /* select from the current position to the clicked position */
sel_start = sel_end = entry->current_pos;
@@ -1966,7 +1965,7 @@ gtk_entry_key_press (GtkWidget *widget,
completion->priv->completion_timeout = 0;
}
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
}
if (GTK_WIDGET_CLASS (gtk_entry_parent_class)->key_press_event (widget, event))
@@ -2191,7 +2190,7 @@ gtk_entry_set_position_internal (GtkEntry *entry,
position != entry->selection_bound)
{
if (reset_im)
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
gtk_entry_set_positions (entry, position, position);
}
}
@@ -2221,7 +2220,7 @@ gtk_entry_set_selection_bounds (GtkEditable *editable,
if (end < 0)
end = entry->text_length;
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
gtk_entry_set_positions (entry,
MIN (end, entry->text_length),
@@ -2521,7 +2520,7 @@ gtk_entry_move_cursor (GtkEntry *entry,
{
gint new_pos = entry->current_pos;
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
if (entry->current_pos != entry->selection_bound && !extend_selection)
{
@@ -2613,7 +2612,7 @@ gtk_entry_insert_at_cursor (GtkEntry *entry,
if (entry->editable)
{
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
gtk_editable_insert_text (editable, str, -1, &pos);
gtk_editable_set_position (editable, pos);
@@ -2629,7 +2628,7 @@ gtk_entry_delete_from_cursor (GtkEntry *entry,
gint start_pos = entry->current_pos;
gint end_pos = entry->current_pos;
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
if (!entry->editable)
return;
@@ -2699,7 +2698,7 @@ gtk_entry_backspace (GtkEntry *entry)
GtkEditable *editable = GTK_EDITABLE (entry);
gint prev_pos;
- gtk_entry_reset_im_context (entry);
+ _gtk_entry_reset_im_context (entry);
if (!entry->editable || !entry->text)
return;
@@ -3498,8 +3497,8 @@ gtk_entry_queue_draw (GtkEntry *entry)
gdk_window_invalidate_rect (entry->text_area, NULL, FALSE);
}
-static void
-gtk_entry_reset_im_context (GtkEntry *entry)
+void
+_gtk_entry_reset_im_context (GtkEntry *entry)
{
if (entry->need_im_reset)
{
@@ -5400,6 +5399,8 @@ gtk_entry_completion_key_press (GtkWidget *widget,
if (!GTK_WIDGET_MAPPED (completion->priv->popup_window))
return FALSE;
+ _gtk_entry_reset_im_context (GTK_ENTRY (widget));
+
matches = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL);
if (completion->priv->actions)
@@ -5500,15 +5501,12 @@ gtk_entry_completion_key_press (GtkWidget *widget,
event->keyval == GDK_KP_Tab ||
event->keyval == GDK_ISO_Left_Tab)
{
- GtkWidget *entry;
GtkDirectionType dir = event->keyval == GDK_ISO_Left_Tab ?
GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD;
_gtk_entry_completion_popdown (completion);
- entry = gtk_entry_completion_get_entry (completion);
-
- gtk_widget_child_focus (gtk_widget_get_toplevel (entry), dir);
+ gtk_widget_child_focus (gtk_widget_get_toplevel (widget), dir);
return TRUE;
}
@@ -5529,12 +5527,10 @@ gtk_entry_completion_key_press (GtkWidget *widget,
if (!gtk_tree_selection_get_selected (sel, &model, &iter))
return FALSE;
- g_signal_handler_block (completion->priv->entry,
- completion->priv->changed_id);
+ g_signal_handler_block (widget, completion->priv->changed_id);
g_signal_emit_by_name (completion, "match_selected",
model, &iter, &entry_set);
- g_signal_handler_unblock (completion->priv->entry,
- completion->priv->changed_id);
+ g_signal_handler_unblock (widget, completion->priv->changed_id);
if (!entry_set)
{
diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c
index 77196521d0..179bb01418 100644
--- a/gtk/gtkentrycompletion.c
+++ b/gtk/gtkentrycompletion.c
@@ -829,6 +829,8 @@ gtk_entry_completion_action_button_press (GtkWidget *widget,
if (!GTK_WIDGET_MAPPED (completion->priv->popup_window))
return FALSE;
+ _gtk_entry_reset_im_context (completion->priv->entry);
+
if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget),
event->x, event->y,
&path, NULL, NULL, NULL))
diff --git a/gtk/gtkentryprivate.h b/gtk/gtkentryprivate.h
index 75f11297f0..9330912904 100644
--- a/gtk/gtkentryprivate.h
+++ b/gtk/gtkentryprivate.h
@@ -24,6 +24,7 @@
#include <gtk/gtktreemodelfilter.h>
#include <gtk/gtkliststore.h>
#include <gtk/gtkentrycompletion.h>
+#include <gtk/gtkentry.h>
G_BEGIN_DECLS
@@ -66,9 +67,11 @@ struct _GtkEntryCompletionPrivate
GSource *check_completion_idle;
};
-gboolean _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion);
-void _gtk_entry_completion_popup (GtkEntryCompletion *completion);
-void _gtk_entry_completion_popdown (GtkEntryCompletion *completion);
+gboolean _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion);
+void _gtk_entry_completion_popup (GtkEntryCompletion *completion);
+void _gtk_entry_completion_popdown (GtkEntryCompletion *completion);
+
+void _gtk_entry_reset_im_context (GtkEntry *entry);
G_END_DECLS