mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-13 14:00:09 +00:00
Merge branch 'realize-vs-focus-in' into 'main'
gtktext: Make sure input method sees focus in See merge request GNOME/gtk!4402
This commit is contained in:
commit
c8460c51bd
@ -2211,6 +2211,18 @@ gtk_text_unmap (GtkWidget *widget)
|
|||||||
GTK_WIDGET_CLASS (gtk_text_parent_class)->unmap (widget);
|
GTK_WIDGET_CLASS (gtk_text_parent_class)->unmap (widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_text_im_set_focus_in (GtkText *self)
|
||||||
|
{
|
||||||
|
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
|
||||||
|
|
||||||
|
if (!priv->editable)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gtk_text_schedule_im_reset (self);
|
||||||
|
gtk_im_context_focus_in (priv->im_context);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_text_realize (GtkWidget *widget)
|
gtk_text_realize (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
@ -2220,6 +2232,8 @@ gtk_text_realize (GtkWidget *widget)
|
|||||||
GTK_WIDGET_CLASS (gtk_text_parent_class)->realize (widget);
|
GTK_WIDGET_CLASS (gtk_text_parent_class)->realize (widget);
|
||||||
|
|
||||||
gtk_im_context_set_client_widget (priv->im_context, widget);
|
gtk_im_context_set_client_widget (priv->im_context, widget);
|
||||||
|
if (gtk_widget_is_focus (GTK_WIDGET (self)))
|
||||||
|
gtk_text_im_set_focus_in (self);
|
||||||
|
|
||||||
gtk_text_adjust_scroll (self);
|
gtk_text_adjust_scroll (self);
|
||||||
gtk_text_update_primary_selection (self);
|
gtk_text_update_primary_selection (self);
|
||||||
@ -3245,12 +3259,7 @@ gtk_text_focus_changed (GtkEventControllerFocus *controller,
|
|||||||
g_signal_connect (keyboard, "notify::direction",
|
g_signal_connect (keyboard, "notify::direction",
|
||||||
G_CALLBACK (direction_changed), self);
|
G_CALLBACK (direction_changed), self);
|
||||||
|
|
||||||
if (priv->editable)
|
gtk_text_im_set_focus_in (self);
|
||||||
{
|
|
||||||
gtk_text_schedule_im_reset (self);
|
|
||||||
gtk_im_context_focus_in (priv->im_context);
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_text_reset_blink_time (self);
|
gtk_text_reset_blink_time (self);
|
||||||
}
|
}
|
||||||
else /* Focus out */
|
else /* Focus out */
|
||||||
|
Loading…
Reference in New Issue
Block a user