diff options
author | 8 <tajima@eng.sun.com> | 2000-12-09 01:06:55 +0000 |
---|---|---|
committer | Hidetoshi Tajima <tajima@src.gnome.org> | 2000-12-09 01:06:55 +0000 |
commit | eccd33b2e7b2fd36eff5bb463b80cad11a27c5f6 (patch) | |
tree | 7544001f907fba25f5cf0d13a1161b22d799b5f0 | |
parent | ad3f7d9653f6af8579f37c93d3afd7001c28dc80 (diff) | |
download | gtk+-eccd33b2e7b2fd36eff5bb463b80cad11a27c5f6.tar.gz |
Add focus_in and focus_out implementation to im_context_class as
2000-12-08 <tajima@eng.sun.com>
* modules/input/gtkimcontextxim.c (gtk_im_context_xim_class_init):
Add focus_in and focus_out implementation to im_context_class
as gtk_im_context_xim_focus_in and gtk_im_context_xim_focus_out.
-rw-r--r-- | modules/input/gtkimcontextxim.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/input/gtkimcontextxim.c b/modules/input/gtkimcontextxim.c index bf0fde1dbb..6b72f25215 100644 --- a/modules/input/gtkimcontextxim.c +++ b/modules/input/gtkimcontextxim.c @@ -38,6 +38,8 @@ static void gtk_im_context_xim_set_client_window (GtkIMContext *co static gboolean gtk_im_context_xim_filter_keypress (GtkIMContext *context, GdkEventKey *key); static void gtk_im_context_xim_reset (GtkIMContext *context); +static void gtk_im_context_xim_focus_in (GtkIMContext *context); +static void gtk_im_context_xim_focus_out (GtkIMContext *context); static void gtk_im_context_xim_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **attrs, @@ -209,6 +211,8 @@ gtk_im_context_xim_class_init (GtkIMContextXIMClass *class) im_context_class->filter_keypress = gtk_im_context_xim_filter_keypress; im_context_class->reset = gtk_im_context_xim_reset; im_context_class->get_preedit_string = gtk_im_context_xim_get_preedit_string; + im_context_class->focus_in = gtk_im_context_xim_focus_in; + im_context_class->focus_out = gtk_im_context_xim_focus_out; gobject_class->finalize = gtk_im_context_xim_finalize; } @@ -362,6 +366,32 @@ gtk_im_context_xim_filter_keypress (GtkIMContext *context, } static void +gtk_im_context_xim_focus_in (GtkIMContext *context) +{ + GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context); + XIC ic = gtk_im_context_xim_get_ic (context_xim); + + if (!ic) + return; + + XSetICFocus (ic); + return; +} + +static void +gtk_im_context_xim_focus_out (GtkIMContext *context) +{ + GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context); + XIC ic = gtk_im_context_xim_get_ic (context_xim); + + if (!ic) + return; + + XUnsetICFocus (ic); + return; +} + +static void gtk_im_context_xim_reset (GtkIMContext *context) { GtkIMContextXIM *context_xim = GTK_IM_CONTEXT_XIM (context); |