[mutter/wip/carlosg/text-input: 16/24] clutter: Add ClutterBackend IM setter/getter



commit ca654ac544aef993feab875c65f46c132cb8a824
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Dec 6 12:44:55 2017 +0100

    clutter: Add ClutterBackend IM setter/getter
    
    The input method will be global to Clutter, these methods allow setting
    one up.

 clutter/clutter/clutter-backend-private.h |    2 ++
 clutter/clutter/clutter-backend.c         |   29 +++++++++++++++++++++++++++++
 clutter/clutter/clutter-backend.h         |    6 ++++++
 3 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/clutter/clutter/clutter-backend-private.h b/clutter/clutter/clutter-backend-private.h
index 9ce8e80..864d896 100644
--- a/clutter/clutter/clutter-backend-private.h
+++ b/clutter/clutter/clutter-backend-private.h
@@ -58,6 +58,8 @@ struct _ClutterBackend
   gint32 units_serial;
 
   GList *event_translators;
+
+  ClutterInputMethod *input_method;
 };
 
 struct _ClutterBackendClass
diff --git a/clutter/clutter/clutter-backend.c b/clutter/clutter/clutter-backend.c
index fc820d9..30ebe5e 100644
--- a/clutter/clutter/clutter-backend.c
+++ b/clutter/clutter/clutter-backend.c
@@ -127,6 +127,7 @@ clutter_backend_finalize (GObject *gobject)
 
   g_free (backend->font_name);
   clutter_backend_set_font_options (backend, NULL);
+  g_clear_object (&backend->input_method);
 
   G_OBJECT_CLASS (clutter_backend_parent_class)->finalize (gobject);
 }
@@ -1373,3 +1374,31 @@ clutter_backend_bell_notify (ClutterBackend *backend)
   if (klass->bell_notify)
     klass->bell_notify (backend);
 }
+
+/**
+ * clutter_backend_get_input_method:
+ * @backend: the #CLutterBackend
+ *
+ * Returns the input method used by Clutter
+ *
+ * Returns: (transfer none): the input method
+ **/
+ClutterInputMethod *
+clutter_backend_get_input_method (ClutterBackend *backend)
+{
+  return backend->input_method;
+}
+
+/**
+ * clutter_backend_set_input_method:
+ * @backend: the #ClutterBackend
+ * @method: the input method
+ *
+ * Sets the input method to be used by Clutter
+ **/
+void
+clutter_backend_set_input_method (ClutterBackend     *backend,
+                                  ClutterInputMethod *method)
+{
+  g_set_object (&backend->input_method, method);
+}
diff --git a/clutter/clutter/clutter-backend.h b/clutter/clutter/clutter-backend.h
index c2e03d5..78b04e3 100644
--- a/clutter/clutter/clutter-backend.h
+++ b/clutter/clutter/clutter-backend.h
@@ -77,6 +77,12 @@ CoglContext *                   clutter_backend_get_cogl_context        (Clutter
 CLUTTER_AVAILABLE_IN_ALL
 void                            clutter_backend_bell_notify             (ClutterBackend             
*backend);
 
+CLUTTER_AVAILABLE_IN_MUTTER
+ClutterInputMethod *            clutter_backend_get_input_method        (ClutterBackend             
*backend);
+
+CLUTTER_AVAILABLE_IN_MUTTER
+void                            clutter_backend_set_input_method        (ClutterBackend             *backend,
+                                                                         ClutterInputMethod         *method);
 G_END_DECLS
 
 #endif /* __CLUTTER_BACKEND_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]