Skip to content

Commit 3e4206c

Browse files
committed
Make browser-prompted dialogue boxes unparented so that they appear on the current monitor.
Previously, they would be opened wherever the main window is. This could easily be on a different virtual desktop (or workspace): if so, the dialogue box would not be visible on any attached monitor until that workspace was selected.
1 parent d619594 commit 3e4206c

File tree

6 files changed

+12
-14
lines changed

6 files changed

+12
-14
lines changed

src/browser/BrowserAccessControlDialog.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@
2323
#include "core/Entry.h"
2424
#include "gui/Icons.h"
2525

26-
BrowserAccessControlDialog::BrowserAccessControlDialog(QWidget* parent)
27-
: QDialog(parent)
28-
, m_ui(new Ui::BrowserAccessControlDialog())
26+
BrowserAccessControlDialog::BrowserAccessControlDialog()
27+
: m_ui(new Ui::BrowserAccessControlDialog())
2928
{
3029
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
3130

src/browser/BrowserAccessControlDialog.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class BrowserAccessControlDialog : public QDialog
4141
Q_OBJECT
4242

4343
public:
44-
explicit BrowserAccessControlDialog(QWidget* parent = nullptr);
44+
explicit BrowserAccessControlDialog();
4545
~BrowserAccessControlDialog() override;
4646

4747
void setEntries(const QList<Entry*>& entriesToConfirm, const QString& urlString, bool httpAuth);

src/browser/BrowserPasskeysConfirmationDialog.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@
2424

2525
#define STEP 1000
2626

27-
BrowserPasskeysConfirmationDialog::BrowserPasskeysConfirmationDialog(QWidget* parent)
28-
: QDialog(parent)
29-
, m_ui(new Ui::BrowserPasskeysConfirmationDialog())
27+
BrowserPasskeysConfirmationDialog::BrowserPasskeysConfirmationDialog()
28+
: m_ui(new Ui::BrowserPasskeysConfirmationDialog())
3029
, m_passkeyUpdated(false)
3130
{
3231
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);

src/browser/BrowserPasskeysConfirmationDialog.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class BrowserPasskeysConfirmationDialog : public QDialog
3434
Q_OBJECT
3535

3636
public:
37-
explicit BrowserPasskeysConfirmationDialog(QWidget* parent = nullptr);
37+
explicit BrowserPasskeysConfirmationDialog();
3838
~BrowserPasskeysConfirmationDialog() override;
3939

4040
void registerCredential(const QString& username,

src/browser/BrowserService.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ QList<Entry*> BrowserService::confirmEntries(QList<Entry*>& entriesToConfirm,
470470

471471
m_dialogActive = true;
472472
updateWindowState();
473-
BrowserAccessControlDialog accessControlDialog(m_currentDatabaseWidget);
473+
BrowserAccessControlDialog accessControlDialog;
474474

475475
connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject()));
476476

@@ -583,7 +583,7 @@ QString BrowserService::storeKey(const QString& key)
583583
QString id;
584584

585585
do {
586-
QInputDialog keyDialog(m_currentDatabaseWidget);
586+
QInputDialog keyDialog;
587587
connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject()));
588588
keyDialog.setWindowTitle(tr("KeePassXC - New key association request"));
589589
keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n"
@@ -607,7 +607,7 @@ QString BrowserService::storeKey(const QString& key)
607607
contains =
608608
db->metadata()->customData()->contains(CustomData::getKeyWithPrefix(CustomData::BrowserKeyPrefix, id));
609609
if (contains) {
610-
dialogResult = MessageBox::warning(m_currentDatabaseWidget,
610+
dialogResult = MessageBox::warning(nullptr, //m_currentDatabaseWidget,
611611
tr("KeePassXC - Overwrite existing key?"),
612612
tr("A shared encryption key with the name \"%1\" "
613613
"already exists.\nDo you want to overwrite it?")
@@ -668,7 +668,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public
668668
const auto existingEntries = getPasskeyEntriesWithUserHandle(rpId, userId, keyList);
669669

670670
raiseWindow();
671-
BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget);
671+
BrowserPasskeysConfirmationDialog confirmDialog;
672672
confirmDialog.registerCredential(username, rpId, existingEntries, timeout);
673673

674674
auto dialogResult = confirmDialog.exec();
@@ -761,7 +761,7 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject&
761761
const auto timeout = publicKeyOptions["timeout"].toInt();
762762

763763
raiseWindow();
764-
BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget);
764+
BrowserPasskeysConfirmationDialog confirmDialog;
765765
confirmDialog.authenticateCredential(entries, rpId, timeout);
766766
auto dialogResult = confirmDialog.exec();
767767
if (dialogResult == QDialog::Accepted) {

src/gui/DatabaseTabWidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent)
4141
: QTabWidget(parent)
4242
, m_dbWidgetStateSync(new DatabaseWidgetStateSync(this))
4343
, m_dbWidgetPendingLock(nullptr)
44-
, m_databaseOpenDialog(new DatabaseOpenDialog(this))
44+
, m_databaseOpenDialog(new DatabaseOpenDialog())
4545
, m_importWizard(nullptr)
4646
, m_databaseOpenInProgress(false)
4747
{

0 commit comments

Comments
 (0)