Don't set focus on GTK password entry.
authorDaiki Ueno <ueno@unixuser.org>
Fri, 28 Oct 2011 06:42:08 +0000 (15:42 +0900)
committerDaiki Ueno <ueno@unixuser.org>
Fri, 28 Oct 2011 06:42:08 +0000 (15:42 +0900)
For an old bug:
https://bugzilla.redhat.com/show_bug.cgi?id=484643
Input method should be disabled on password entry for security reason.

BUG=none
TEST=manually with gtk-demo "Entry Buffer" example

Review URL: http://codereview.appspot.com/5319053

client/gtk2/ibusimcontext.c

index 327a5d9..b6ca12e 100644 (file)
@@ -734,6 +734,19 @@ ibus_im_context_focus_in (GtkIMContext *context)
     if (ibusimcontext->has_focus)
         return;
 
+    /* don't set focus on password entry */
+    if (ibusimcontext->client_window != NULL) {
+        GtkWidget *widget;
+
+        gdk_window_get_user_data (ibusimcontext->client_window,
+                                  (gpointer *)&widget);
+
+        if (GTK_IS_ENTRY (widget) &&
+            !gtk_entry_get_visibility (GTK_ENTRY (widget))) {
+            return;
+        }
+    }
+
     if (_focus_im_context != NULL) {
         g_assert (_focus_im_context != context);
         gtk_im_context_focus_out (_focus_im_context);