Windows QPA: Fix tray geometry not updating
The application does not update its screens when there are no windows on which a WM_DPICHANGE could be received. Add a check for it to the tray window procedure and trigger an update from there if no top levels are present. Fixes: QTBUG-79248 Change-Id: I0b1c4db560662ecf2b473304942da373be6fdc73 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>bb10
parent
75f75e997a
commit
455e9e5be3
|
|
@ -57,6 +57,7 @@
|
|||
#include "qwindowsmenu.h"
|
||||
#include "qwindowsscreen.h"
|
||||
|
||||
#include <QtGui/qguiapplication.h>
|
||||
#include <QtGui/qpixmap.h>
|
||||
#include <QtCore/qdebug.h>
|
||||
#include <QtCore/qrect.h>
|
||||
|
|
@ -135,6 +136,9 @@ static int indexOfHwnd(HWND hwnd)
|
|||
extern "C" LRESULT QT_WIN_CALLBACK qWindowsTrayIconWndProc(HWND hwnd, UINT message,
|
||||
WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// QTBUG-79248: Trigger screen update if there are no other windows.
|
||||
if (message == WM_DPICHANGED && QGuiApplication::topLevelWindows().isEmpty())
|
||||
QWindowsContext::instance()->screenManager().handleScreenChanges();
|
||||
if (message == MYWM_TASKBARCREATED || message == MYWM_NOTIFYICON
|
||||
|| message == WM_INITMENU || message == WM_INITMENUPOPUP
|
||||
|| message == WM_CLOSE || message == WM_COMMAND) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue