From 84632f53d2a9d04ac7af885e8ba00e28619a8a2d Mon Sep 17 00:00:00 2001 From: f321x Date: Tue, 29 Apr 2025 11:21:38 +0200 Subject: [PATCH] fix: bring dialog to front after reloading When reloading the windows, e.g. after enabling or disabling a plugin, the plugins dialog vanished behind the main window. By using a Timer its possible to bring the Dialog back in front after the windows have reloaded. --- electrum/gui/qt/plugins_dialog.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/electrum/gui/qt/plugins_dialog.py b/electrum/gui/qt/plugins_dialog.py index 87f756505..7bda79cb4 100644 --- a/electrum/gui/qt/plugins_dialog.py +++ b/electrum/gui/qt/plugins_dialog.py @@ -4,7 +4,7 @@ import shutil import os from PyQt6.QtWidgets import QLabel, QVBoxLayout, QGridLayout, QPushButton, QWidget, QScrollArea, QFormLayout, QFileDialog, QMenu, QApplication -from PyQt6.QtCore import Qt +from PyQt6.QtCore import QTimer from electrum.i18n import _ from electrum.logging import get_logger @@ -365,8 +365,7 @@ class PluginsDialog(WindowModalDialog, MessageBoxMixin): status_button.update() if self.gui_object: self.gui_object.reload_windows() - self.setFocus() - self.activateWindow() + self.bring_to_front() def uninstall_plugin(self, name): if not self.question(_('Remove plugin \'{}\'?').format(name)): @@ -375,3 +374,10 @@ class PluginsDialog(WindowModalDialog, MessageBoxMixin): if self.gui_object: self.gui_object.reload_windows() self.show_list() + self.bring_to_front() + + def bring_to_front(self): + def _bring_self_to_front(): + self.activateWindow() + self.setFocus() + QTimer.singleShot(100, _bring_self_to_front)