diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qapplication_qpa.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp index 54eb443c43..0d929f367b 100644 --- a/src/widgets/kernel/qapplication_qpa.cpp +++ b/src/widgets/kernel/qapplication_qpa.cpp @@ -55,6 +55,7 @@ #include <qdesktopwidget.h> #include <qpa/qplatformcursor.h> #include <qpa/qplatformtheme.h> +#include <qpa/qplatformwindow.h> #include <qdebug.h> #include <qpa/qwindowsysteminterface.h> @@ -410,8 +411,17 @@ void QApplication::beep() { } -void QApplication::alert(QWidget *, int) +void QApplication::alert(QWidget *widget, int duration) { + if (widget) { + if (widget->window()->isActiveWindow()&& !widget->window()->windowState() & Qt::WindowMinimized) + return; + if (QWindow *window= QApplicationPrivate::windowForWidget(widget)) + window->alert(duration); + } else { + foreach (QWidget *topLevel, topLevelWidgets()) + QApplication::alert(topLevel, duration); + } } void qt_init(QApplicationPrivate *priv, int type) |