From d426fcb4d0f4bbde468c72b70db7266fe3beccad Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 27 Jun 2005 02:29:29 +0000 Subject: [PATCH] Unregister XIM callbacks here. (#309054) 2005-06-26 Matthias Clasen * modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): Unregister XIM callbacks here. (#309054) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ modules/input/gtkimcontextxim.c | 18 ++++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/ChangeLog b/ChangeLog index 176efac501..c3d5135f76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-06-26 Matthias Clasen + + * modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): + Unregister XIM callbacks here. (#309054) + 2005-06-24 Matthias Clasen * gtk/gtktextview.c (gtk_text_view_scroll_hpages): Don't diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 176efac501..c3d5135f76 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2005-06-26 Matthias Clasen + + * modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): + Unregister XIM callbacks here. (#309054) + 2005-06-24 Matthias Clasen * gtk/gtktextview.c (gtk_text_view_scroll_hpages): Don't diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 176efac501..c3d5135f76 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2005-06-26 Matthias Clasen + + * modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): + Unregister XIM callbacks here. (#309054) + 2005-06-24 Matthias Clasen * gtk/gtktextview.c (gtk_text_view_scroll_hpages): Don't diff --git a/modules/input/gtkimcontextxim.c b/modules/input/gtkimcontextxim.c index 220a04a8f2..86c972d238 100644 --- a/modules/input/gtkimcontextxim.c +++ b/modules/input/gtkimcontextxim.c @@ -565,6 +565,24 @@ gtk_im_context_xim_finalize (GObject *obj) context_xim->finalizing = TRUE; + if (context_xim->im_info) + { + GdkDisplay *display; + XIMCallback im_destroy_callback; + + display = gdk_screen_get_display (context_xim->im_info->screen); + XUnregisterIMInstantiateCallback (GDK_DISPLAY_XDISPLAY (display), + NULL, NULL, NULL, + xim_instantiate_callback, + (XPointer)context_xim->im_info); + + im_destroy_callback.client_data = NULL; + im_destroy_callback.callback = NULL; + XSetIMValues (context_xim->im_info->im, + XNDestroyCallback, &im_destroy_callback, + NULL); + } + set_ic_client_window (context_xim, NULL); g_free (context_xim->locale);