gtk: Always set the window as transient.
authorDamien Goutte-Gattat <dgouttegattat@incenp.org>
Wed, 5 Jul 2017 09:22:46 +0000 (11:22 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 5 Jul 2017 13:15:26 +0000 (15:15 +0200)
* gtk+-2/pinentry-gtk-2.c (create_window): Setup the make_transient
callback whether we ask for a passphrase or not.
--

Making the window transient seems necessary for (at least some)
tiling window managers to make sure the dialog is floating.

GnuPG-bug-id: 3253
Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
gtk+-2/pinentry-gtk-2.c

index dee0360..d467ec5 100644 (file)
@@ -113,9 +113,9 @@ constrain_size (GtkWidget *win, GtkRequisition *req, gpointer data)
 }
 
 
-/* Realize the window as transient if we grab the keyboard.  This
-   makes the window a modal dialog to the root window, which helps the
-   window manager.  See the following quote from:
+/* Realize the window as transient.  This makes the window a modal
+   dialog to the root window, which helps the window manager.
+   See the following quote from:
    https://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2512420
 
    Implementing enhanced support for application transient windows
@@ -586,12 +586,12 @@ create_window (pinentry_t ctx)
 #endif
   g_signal_connect (G_OBJECT (win), "size-request",
                    G_CALLBACK (constrain_size), NULL);
+
+  g_signal_connect (G_OBJECT (win),
+                   "realize", G_CALLBACK (make_transient), NULL);
+
   if (!confirm_mode)
     {
-      if (pinentry->grab)
-       g_signal_connect (G_OBJECT (win),
-                         "realize", G_CALLBACK (make_transient), NULL);
-
       /* We need to grab the keyboard when its visible! not when its
          mapped (there is a difference)  */
       g_object_set (G_OBJECT(win), "events",