[gtk+/gtk-3-4] gtkimcontexttime.c: Check context_ime->client_window is not NULL



commit 50f23810c3b719ad5fcc3cd25838d065c25de55b
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Aug 29 14:03:46 2012 +0800

    gtkimcontexttime.c: Check context_ime->client_window is not NULL
    
    Be a bit more careful in get_pango_attr_list() and
    get_utf8_preedit_string() to ensure that the client_window is properly
    created before proceeding, to avoid access violation/segfault crashes on
    Windows with IME installed, especially when running the pickers demo.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682919

 modules/input/gtkimcontextime.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/modules/input/gtkimcontextime.c b/modules/input/gtkimcontextime.c
index 3dd0650..009af3f 100644
--- a/modules/input/gtkimcontextime.c
+++ b/modules/input/gtkimcontextime.c
@@ -375,6 +375,8 @@ get_utf8_preedit_string (GtkIMContextIME *context_ime, gint *pos_ret)
   if (pos_ret)
     *pos_ret = 0;
 
+  if (!context_ime->client_window)
+    return g_strdup ("");
   hwnd = GDK_WINDOW_HWND (context_ime->client_window);
   himc = ImmGetContext (hwnd);
   if (!himc)
@@ -434,6 +436,8 @@ get_pango_attr_list (GtkIMContextIME *context_ime, const gchar *utf8str)
   HWND hwnd;
   HIMC himc;
 
+  if (!context_ime->client_window)
+    return attrs;
   hwnd = GDK_WINDOW_HWND (context_ime->client_window);
   himc = ImmGetContext (hwnd);
   if (!himc)



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