qt: Renable Windows Foreground Window hacks
authorAndre Heinecke <aheinecke@intevation.de>
Thu, 1 Mar 2018 15:12:28 +0000 (16:12 +0100)
committerAndre Heinecke <aheinecke@intevation.de>
Thu, 1 Mar 2018 15:12:28 +0000 (16:12 +0100)
* qt/main.cpp, qt/pinentryconfirm.cpp: Use raiseWindow again.
* qt/pinentrydialog.cpp: Renable Foreground Window hacks.

--
Enabled this again because the focus did
not change to the pinentry window without the attach
thread input stuff. The setup_foreground_window helps though,
so that stays. Either Qt Windows foreign Window Management
is a mess and does not really work or I don't understand it.

qt/main.cpp
qt/pinentryconfirm.cpp
qt/pinentrydialog.cpp

index f236781..fe88d26 100644 (file)
@@ -292,7 +292,7 @@ qt_cmd_handler(pinentry_t pe)
         }
 
         box.show();
-        box.raise();
+        raiseWindow(&box);
 
         const int rc = box.exec();
 
index e549e10..65b191c 100644 (file)
@@ -38,7 +38,7 @@ PinentryConfirm::PinentryConfirm(Icon icon, int timeout, const QString &title,
     setAccessibleDescription(desc);
     setAccessibleName(title);
 #endif
-    raise();
+    raiseWindow(this);
 }
 
 bool PinentryConfirm::timedOut() const
@@ -61,7 +61,7 @@ void PinentryConfirm::showEvent(QShowEvent *event)
     }
 
     QDialog::showEvent(event);
-    raise();
+    raiseWindow(this);
 }
 
 void PinentryConfirm::slotTimeout()
index 9bff8d2..5212f88 100644 (file)
@@ -41,7 +41,6 @@
 #include <windows.h>
 #endif
 
-#if 0
 /* I [wk] have no idea for what this code was supposed to do.
    Foregrounding a window is heavily restricted by modern Windows
    versions.  This is the reason why gpg-agent employs its
    [ah 2018-02-28] Disabled this again in favor of using
    windows stays on top hint. The code that is in main
    setup_foreground_window.
+
+   [ah 2018-03-01] Enabled this again because the focus did
+   not change to the pinentry window without the attach
+   thread input stuff. The setup_foreground_window helps though
+   so that stays enabled.
    */
 #ifdef Q_OS_WIN
 WINBOOL SetForegroundWindowEx(HWND hWnd)
@@ -108,8 +112,6 @@ void raiseWindow(QWidget *w)
 #endif
 }
 
-#endif
-
 QPixmap icon(QStyle::StandardPixmap which)
 {
     QPixmap pm = qApp->windowIcon().pixmap(48, 48);
@@ -266,7 +268,7 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name,
 void PinEntryDialog::showEvent(QShowEvent *event)
 {
     QDialog::showEvent(event);
-    raise();
+    raiseWindow(this);
 }
 
 void PinEntryDialog::setDescription(const QString &txt)