| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I0fa37457f91d905ed6fb8a2aba20add311705ec7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/platforms/cocoa/qcocoawindow.mm
src/plugins/platforms/xcb/qxcbintegration.cpp
Conflicts git missed:
src/plugins/platforms/qnx/qqnxglcontext.cpp
Change-Id: I0582cdc9e66e43efe79038b9c43d4f9572ac88fc
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Found while compiling on FreeBSD 11.2 (clang 6 update has the warning):
/usr/local/include/X11/Xlibint.h:675:7: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Change-Id: I117816bf0f5e469b8d34fffd153e6482ccaed69f
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A touch press event's state has to be set to "stationary" after the
touch event (including its list of touch points) has been passed to the
QWindowSystemInterface. Following touch events (that are caused by another
id) will not change the press event's state which can otherwise cause more
than one press event for a given id in a multitouch setup.
Task-number: QTBUG-58793
Change-Id: I44628912251beacfbda7dd37059577cb1d085bd5
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Register QXcbXSettings object as a listener of events
received by XSETTINGS window. It was forgotten to be done
in 0f31a5d91f13bd6a574bed8db894a7ebb2813292 which
introduced QXcbXSettings.
XSettings are used by QXcbCursor to get cursor theme.
Without this change QXcbCursor can't react on theme change.
Change-Id: I0fdd4c913b1d7a482b507c5a054b7052cac61666
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This event relates to xcb_screen_t (virtual desktop), not to
RandR crtcs, so move its processing to QXcbVirtualDesktop.
Currently it triggers redundant calling of RRGetCrtcInfo
(from QXcbScreen::updateGeometry()). It's called anyway after
receiving RRCrtcChangeNotify, so just drop it.
There is also a mess between the rotation of Screen and
crtcs, obviously they should be processed separately.
Task-number: QTBUG-65598
Change-Id: I124752ccbde03adb15e9ba592dd8b2d8d7fc35f4
Reviewed-by: Daniel Vrátil <dvratil@kde.org>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We rely on AppKit repositioning the window if the original position
is not on any of the available screens. We do this by keeping the
original position, but using the primary screen as reference.
This doesn't work unless the window has a title bar, so in the corner
case where the window has an invalid position, we apply the title bar
style mask for a brief moment, so that AppKit will place the window
correctly.
Task-number: QTBUG-69221
Change-Id: If66cac36bf36f051570ba5854951ce4504fe771f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
qbsdfbscreen.h:57:10: error: 'initialize' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
Change-Id: I117816bf0f5e469b8d34fffd153e649318d2fd7c
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QML fails to draw when this is used on at least one jacinto6 platform.
Works when it's disabled.
Task-number: QTBUG-68227
Change-Id: I7b3c081d4d5a4fe22136f4bdd8ad1f34495cd94a
Reviewed-by: Adam Treat <adam.treat@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some colors, like selectedMenuItemColor, won't return
the right value anymore. Other can be updated to new
system UI element colors for more accuracy.
Task-number: QTBUG-68891
Change-Id: I781ef47791648f332208eb780361c60ffb6fcb96
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Android supports hover events through the generic motion event. Routed
mouse events to specific mouse handler.
Task-number: QTBUG-42799
Change-Id: Iee17c71c09d84f52235e66ec08c65ffa30ec9cd9
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ibbd38b27b9251a0a4a9fd4224529e2131e167b89
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The flow of changing the window state, especially for fullscreen, is
complicated enough that it helps to keep the code together.
Change-Id: I216ff95c03fc149f42a0199f7c3bc4fb04ff5e6e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replaces the handling of tablet/touchscreen/touchpad/mouse input with a
unified implementation based on the Windows Pointer Input Messages added
to Windows 8. The legacy implementation is still used for Windows 7.
Task-number: QTBUG-60437
Change-Id: I0a0f48ee9d5365f84ba528aa04c6ab1fe4253c50
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I4b9cdd3d259965f9094ef1bbbca3ebed8df18443
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
It was forgotten to be removed in 8f9a72c39df46e94b38dd804b7cdffaed9f340b9.
Change-Id: I028bea448a2c99cdbdfa0db07de2b1fcd50c93b2
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Detect the tray icon window in the platform plugin by the object
name. This way we don't need
QXcbWindowFunctions::requestSystemTrayWindowDockIdentifier().
- Get rid of unused calls
QXcbIntegrationFunctions::xEmbedSystemTrayVisualHasAlphaChannel()
and QXcbWindowFunctions::setParentRelativeBackPixmap().
- Mark the tray icon window as embedded to be able to get the correct
result from QWindow::mapToGlobal(). It allows to drop
QXcbWindowFunctions::systemTrayWindowGlobalGeometry().
This change allows to remove the intermediate level between
the QSystemTrayIconSys widget and the xcb plugin. The code looks
clearer.
Change-Id: I7d067131287a6dec162b36f0bddc8cb518aaa38c
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the current method of painting the tray icon with 24 bpp
visuals we grab the window's background once on the first show
and then use it in all paint operations. This leads to a wrong
background if an application shows the system tray icon when
the lock screen is active.
We can avoid this by painting with XRender when it's available.
This change introduces QXcbSystemTrayBackingStore and moves the
selection of a suitable painting method from QSystemTrayIconSys
into it. In addition the visual for the window is selected
according to the system tray specification and the platform window
for the tray icon is created without needless OpenGL and Vulkan
support.
Task-number: QTBUG-55540
Change-Id: Ib3ca42bc02dcbdd4ccfe5d6e23f870ef22f0d25a
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It can be useful to detect that a window belongs to an
application running on a remote host. E.g. a window manager
may display the name of the remote host in the window title.
Or it can detect whether a client can be killed.
This property is set by Xlib's function XSetWMProperties(),
which is called by GTK and Qt 4, so it's also good to do
for consistency.
Change-Id: I0693156635cb2696b2fbe7006cbecb25d2680513
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
We're no longer using this code path for QWindow::requestUpdate()
Change-Id: I000304a4f1a6ea2c3a4e8268ae978dedd968e07c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I00d7f59576d8315f47ea70404460a6e2d133dd1f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Drive-by style-fixes were applied as well.
Change-Id: I22c17925be41eeaac692ab776dd5b46791265cb3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I057db59797f1e18c3a8fc5386f7e1295fe352e02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id2e37cc81c24edce37cac2bfa843ee669fd13d98
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We never call [QNSView init] directly, so there's no point in splitting
up the logic.
Change-Id: Ie40705a3a78c0d732a3f3378c6e8fa76dc6c68e7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We use GCD for marshaling the display link update over to the main
thread, as Qt requires that the update request is delivered there.
Change-Id: I318a5b8f27dc5094ce71244401308a4044c41b39
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: If9d76a8e82ce034eccc5130e036dfeae12377cac
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Window setup should happen in QCocoaWindow::recreateWindowIfNeeded(),
and there we already call setWindowFilePath(), which takes care of
setting the window icon.
Change-Id: Iaa2f42c694cf8d251703cc56648e5819edd79bec
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The -[NSView setWantsLayer:] method may have side effects that
extend beyond just setting an internal boolean property, so
we need to ensure it gets called.
This was observed on e.g. macOS 10.12.5, where the method
ends up creating the internal backing layer. On later macOS
versions the method just emits KVO notifications for wantsLayer,
but these may in turn result in similar logic being triggered.
The issue was masked somewhat by AppKit itself calling the
method from e.g. -[NSWindow setContentView:], so we still got
the backing layer created. The problem appeared when running
binaries built against an older SDK (10.6 in this case), which
triggered AppKit to not call -[NSView setWantsLayer:], due to
__NSViewLayerBackWindowFrame() in that case returning false.
This change removes the overridden -[NSView wantsLayer], and replaces
it with an explicit call to -[NSView setWantsLayer] when creating
a new QNSView, essentially revering c8c8cc790a315710b0dae2282dc32.
Task-number: PYSIDE-724
Task-number: PYSIDE-734
Change-Id: Idaff4ed38838311b37da4925b1eec241e077dbcc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Turn all the static members and functions into regular members and
functions.
Change-Id: Ib37d9bdd1a84e512013af7d334e04cd2b1da640e
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use C++11 alignas instead of a union to pad the
xcb_*_event. It allows using the struct directly
without accessing a union member.
Change-Id: I221a6708ef7af844bd6b71a57dcbab75e1319c72
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/platforms/cocoa/qnsview.mm
src/plugins/platforms/cocoa/qnsview_dragging.mm
src/plugins/platforms/ios/qiosinputcontext.mm
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/tools/androiddeployqt/main.cpp
Was moved from qttools into qtbase in 5.11.
So re-apply 32398e4d here.
tests/auto/corelib/global/qlogging/test/test.pro
tests/auto/corelib/global/qlogging/tst_qlogging.cpp
tests/auto/corelib/io/qfile/tst_qfile.cpp
tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
tests/auto/corelib/thread/qthreadstorage/test/test.pro
tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
tests/auto/widgets/kernel/qapplication/test/test.pro
Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Done-with: Mårten Nordheim <marten.nordheim@qt.io>
Done-with: Oliver Wolff <oliver.wolff@qt.io>
Change-Id: Id970486c5315a1718c540f00deb2633533e8fc7b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The automatic showing/hiding of the built-in on-screen keyboard in
touchscreen-based Windows computers, like the Microsoft Surface line,
has stopped working after recent Windows updates. The OSK no longer
seems to rely on UI Automation properties to detect text widgets.
However, it can be triggered by showing an invisible caret.
Task-number: QTBUG-68808
Change-Id: Ia604d21e314965dcdc61f1ced050cc3ed771f567
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
NSOpenGLContext should be re-entrant, but is not in practice, resulting
in deadlocks when there are two render threads, eg:
thread #23, name = 'QSGRenderThread'
frame #0: 0x00007fff5c6dda4e libsystem_kernel.dylib`__psynch_mutexwait + 10
frame #1: 0x00007fff5c8a5b9d libsystem_pthread.dylib`_pthread_mutex_lock_wait + 83
frame #2: 0x00007fff5c8a34c8 libsystem_pthread.dylib`_pthread_mutex_lock_slow + 253
frame #3: 0x00007fff31ebb52e AppKit`flush_notify + 110
frame #4: 0x00007fff3e75ee2a GLEngine`glSwap_Exec + 186
frame #5: 0x00007fff3e740797 OpenGL`CGLFlushDrawable + 59
frame #6: 0x00007fff31ad43ac AppKit`-[NSOpenGLContext flushBuffer] + 27
...
Task-number: QTBUG-69040
Change-Id: I6f28b4cc5faf61ae93f66353ce2abdf8c223d994
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix warnings about invalid function type casts (return types
conflicting with the PROC returned by wglGetProcAddress()) like:
qwindowsglcontext.cpp:1250:138: error: cast between incompatible function types from 'PROC' {aka 'long long int (*)()'} to 'GLenum (*)()' {aka 'unsigned int (*)()'} [-Werror=cast-function-type]
m_getGraphicsResetStatus = (GLenum (APIENTRY *)()) QOpenGLStaticContext::opengl32.wglGetProcAddress("glGetGraphicsResetStatusARB");
by introducing nested casts.
Task-number: QTBUG-68742
Task-number: QTQAINFRA-2095
Change-Id: I7c51836f2b9f7e2a6fa17c5108d59b23c42fb99d
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This greatly reduces how often we reset the scroll evaluators,
especially with non-focused windows in KWin which sends an enter for
every wheel events in that case.
The update of the evaluators also has race conditions with the normal
events, and thus reducing them fixes odd scrolling behavior with rapid
firing mouse wheels.
Task-number: QTBUG-42415
Task-number: QTBUG-68734
Change-Id: I1c14ca3352bf9c6e57e47ad3aaee1712fe6ba30b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Convert these keysyms into the corresponding Qt::Key_ enum values,
so that they can be part of a QKeySequence and used by applications.
Task-number: QTBUG-69062
Change-Id: I6f2e28191dd8dacd63d4bf710e1714fc5dcce75f
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is comparable to what we do on macOS, except that the scroll phase
and inverted state are missing.
Task-number: QTBUG-38570
Task-number: QTBUG-56075
Change-Id: I27502e1e2667317ab701f30f1fc601ae1e0591d0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Change a0a22037cdacbf51a2db560ff902a5a341561b15 wrongly introduced
a level of indirection when passing the MSG * as void * to
QWindowSystemInterface::handleNativeEvent() in
QWindowsContext::filterNativeEvent(). Remove the indirection.
Task-number: QTBUG-67095
Change-Id: Ibc2db7ae56bca38f79bafabfabb6127d6ff8cf09
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I6af265d48e83fc3fc0ce86903820c2b37db05f03
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Undocked dock windows have the following flags:
Tool|X11BypassWindowManagerHint|WindowTitleHint|
WindowSystemMenuHint|CustomizeWindowHint|WindowCloseButtonHint
CustomizeWindowHint with no WindowMaximizeButtonHint
means that we disable window resize in order to remove
the zoom button (this is perhaps questionable, but
is established behavior). That will however break dock
windows: add exception for Qt::Tool.
After refactoring we discover this special case, again.
See previous fix in d37643c43.
Change-Id: I67a09341e75b92fdb3108ea93901295c39107fe1
History-repeats: QTBUG-46882
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
macOS 10.14+ will display an “Accessibility Access”
security dialog if we generate mouse events, so don’t.
Task-number: QTBUG-68830
Change-Id: If832ca3cd49ec6bdad1a8188feab884b6562e9d2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: I9a4571ccf826a86e055dfbba23b5e5cbd8ea55e8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We had something like this already in Qt4: QT_X11_NO_MITSHM
The logic from 67227aeffdf94be8d177309d27291d5b3247586c not always
works. There can still be cases that xcb_shm_attach_checked()
returns with no errors on remote clients.
Task-number: QTBUG-68783
Change-Id: Idd27ac66eb8f1114e3d1e1ddaaab2b00f235c561
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There were several issues here:
We were attempting to use MIT-SHM functions over SSH connection,
which is not supported. X server should detect this and return with
an appropriate error message. It does actually return BadAccess for
non-fd code path, but Qt was stubbornly trying to repeat this action
and always falling back to malloc (during window resizing). For fd
code path we were hitting X server bug, which would result in window
freeze [1].
During the initialization we check if xcb_shm_attach_checked() fails,
and disable MIT-SHM if it does. We use this logic to detect if we
are running remotely, as there are no public APIs for it. This way
we can avoid X server bug and avoid needless calling of code path
which will _always_ fail on a remote X11 connection.
[1] https://lists.x.org/archives/xorg-devel/2018-June/057011.html
Task-number: QTBUG-68449
Task-number: QTBUG-68783
Change-Id: I7ab3dcf0f323fd53001b9f7b88c2cb10809af509
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 23b139038a1dc9a769a358ab112453abcdd39290.
The commit causes a regression on Ubuntu where the DPI setting of
the display is ignored.
Task-number: QTBUG-68620
Change-Id: Id176f8cda0daef1755abb3aa9382476cc4ed7d71
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The bug was that we are accessing memory beyond 32 bytes. It is
not safe to cast xcb_generic_event_t to Xlib's XI2 structs before
we have memmoved bits to the expected layout (for details see
QXcbConnection::xi2PrepareXIGenericDeviceEvent). We do this memmove
later in the stack, when processing the XI2 events. Here at the
compression step we can simply extract the necessary sourceId by
reading the sourceId offset in the data.
Task-number: QTBUG-68033
Change-Id: I6962bbb8f8b0834d6f780f62017fefa2de7f47df
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: I28f48e980a9e23ddde5251608dd9d1d83df65392
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ic058a0c07f6cdd0a015f46db96fce1536a712711
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We cannot rely on AppKit to compute the zoomed frame for us, as it will
not allow borderless windows to be zoomed, and also has bugs in corner
cases with multiple screens, where the zoomed window jumps from the
current screen to a nearby screen.
The latter happens when the zoomed rect overlaps more with a nearby
screen than it does with the current screen. In this case AppKit zooms
the window on the nearby screen, but this is unexpected from the user's
perspective, who zoomed the window on the current screen, so we make
sure to always keep the window on the current screen by repositioning
the window correspondingly.
Task-number: QTBUG-67543
Change-Id: I8762c5cbf2e3b317a6caf11d820712596e15114a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|