Blob Blame History Raw
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index eef062c..d644d69 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -845,6 +845,18 @@ ibus_im_context_focus_in (GtkIMContext *context)
         return;
 
     /* don't set focus on password entry */
+#if GTK_CHECK_VERSION (3, 6, 0)
+    {
+        GtkInputPurpose purpose;
+
+        g_object_get (G_OBJECT (context),
+                      "input-purpose", &purpose,
+                      NULL);
+
+        if (purpose == GTK_INPUT_PURPOSE_PASSWORD)
+            return;
+    }
+#endif
     if (ibusimcontext->client_window != NULL) {
         GtkWidget *widget;