summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-11-27 13:02:55 +0100
committerCarlos Garnacho <carlosg@gnome.org>2022-11-28 15:46:41 +0100
commit6d0f7a2d31cf540faf1cbc912854996434f9f48d (patch)
treef8be47d14c519c2db2690ff37e7f1b2886f8a0de
parent459583ba9ef47aeb0accf90ce6b04b5f68873102 (diff)
downloadgtk+-6d0f7a2d31cf540faf1cbc912854996434f9f48d.tar.gz
immulticontext: Implement activate_osk() vmethod
The multicontext lets this call go through to the active underlying GtkIMContext.
-rw-r--r--gtk/gtkimmulticontext.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c
index 69ba6453a4..54b5eb6cb2 100644
--- a/gtk/gtkimmulticontext.c
+++ b/gtk/gtkimmulticontext.c
@@ -20,6 +20,7 @@
#include <string.h>
#include <locale.h>
+#include "gtkimcontextprivate.h"
#include "gtkimmulticontext.h"
#include "gtkimmoduleprivate.h"
#include "gtklabel.h"
@@ -105,6 +106,7 @@ static gboolean gtk_im_multicontext_delete_surrounding_cb (GtkIMContext *
int offset,
int n_chars,
GtkIMMulticontext *multicontext);
+static void gtk_im_multicontext_activate_osk (GtkIMContext *context);
static void propagate_purpose (GtkIMMulticontext *context);
@@ -128,6 +130,7 @@ gtk_im_multicontext_class_init (GtkIMMulticontextClass *class)
im_context_class->set_use_preedit = gtk_im_multicontext_set_use_preedit;
im_context_class->set_surrounding_with_selection = gtk_im_multicontext_set_surrounding_with_selection;
im_context_class->get_surrounding_with_selection = gtk_im_multicontext_get_surrounding_with_selection;
+ im_context_class->activate_osk = gtk_im_multicontext_activate_osk;
gobject_class->finalize = gtk_im_multicontext_finalize;
}
@@ -514,6 +517,16 @@ gtk_im_multicontext_set_surrounding_with_selection (GtkIMContext *context,
}
static void
+gtk_im_multicontext_activate_osk (GtkIMContext *context)
+{
+ GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+ GtkIMContext *delegate = gtk_im_multicontext_get_delegate (multicontext);
+
+ if (delegate)
+ gtk_im_context_activate_osk (delegate);
+}
+
+static void
gtk_im_multicontext_preedit_start_cb (GtkIMContext *delegate,
GtkIMMulticontext *multicontext)
{