| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: Id3d16035c9692af42e9c1bf512218f3c836ae2eb
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
AppKit will in some cases ask our view to display on secondary threads if
we call APIs that are only supposed to be called on the main thread, such
as -[NSOpenGLContext setView:] or -[NSOpenGLContext update].
Forwarding this display-request is bad, as QtGui expects all window system
events to come on the main thread, and we can easily deadlock client code
such as the Qt Quick threaded renderer.
Change-Id: I1daeabf1dca6ca8ba908d3998b444a2089681e3a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Postpone the screen change until the DPI changed event in case a move
between screens with different DPI is detected.
Task-number: QTBUG-65580
Change-Id: I356f144b243d7d1ce7feabf0434c3f534b903965
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When introducing EnableNonClientDpiScaling() for QTBUG-53255, the window
frame calculation was not adapted. That is, window frames were calculated
from the style for the primary screen only, causing
- minimum size constraints not being calculated correctly for applications
on secondary screens when populating the MINMAXINFO structure.
- warnings about not being able to apply a geometry when moving fixed
size windows across screens.
The calculation of the frames for propagating size hints is also no longer
required after 3035400f36731c400adb9204b94e9afe346a71b7, which retrieves
them from the WM_NCCALCSIZE message; QWindowsWindow::fullFrameMargins() can
be used instead.
For newly created windows, use the newly added AdjustWindowRectExForDpi()
function to calculate the initial frame size.
Change QWindowsGeometryHint from a class to a collection of static functions
and add overloads to calculate the frame.
In checkForScreenChanged(), update the margins until WM_NCCALCSIZE is
received.
Task-number: QTBUG-67777
Task-number: QTBUG-65580
Task-number: QTBUG-53255
Change-Id: Iff2d382b2b316adec6c1a0622ae8015dba6de371
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have not really been able to determine what the
default DPI should be, so make it configurable with
API on qtloader.js:
qtLoader.setFontDpi(72);
Also lowers the default DPI to the standard value of
96 (down from Qt default 100).
Task-number: QTBUG-75510
Change-Id: Ica1164c8d80bb06519233adebf2c9e400c0991ce
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|\ \
| | |
| | |
| | | |
refs/staging/5.13
|
| |\|
| | |
| | |
| | | |
Change-Id: I0c00ffe0eabebc919f22d6faa4bf958b288e8fd9
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The value of start for a QInputMethodEvent::Cursor attribute must be
specified relative to the start of preedit string, but longPress() was
specifying it relative to start of surrounding text. This was causing
QQuickTextInput to return wrong values of cursor and anchor rectangles.
And this was causing invalid positioning of cursor selection handles
after a long press.
Change-Id: Ief67e86dd90b09ebf2ba191a2b0311ff803afdd9
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was disabled in 9f22ac0aa0254f20f9b26aec7b124d74141fdfcd under the
assumption that the windowDidResize callback was sufficient, but in the
situation when macOS native tabs are enabled, AppKit will report the
wrong geometry for the first windowDidResize callback when a new tab
is created.
We could potentially remove the geometry change in windowDidResize,
as the viewDidChangeFrame callback should be enough for content
views, but this is something that needs more investigation.
Change-Id: I85045507da1a01b4a906e6f88301f3321c660943
Fixes: QTBUG-75482
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The bounding rect was computed based on the font metrics HarfBuzz gave
us, but those may not be 1:1 with what CoreText ends up using. When that
happens, drawInRect: will line-break the last word, which makes it fall
completely outside of the single line bounding rect. This is not a good
failure mode, so we prefer to draw the text at a point instead, allowing
the resulting text to draw slightly outside of the bounding rect. This
is preferable to adding a random padding to the width and hoping it will
be enough to solve the problem.
Change-Id: Ifa58a33bd9fad689ed4ee947327b7079f3c1b61d
Fixes: QTBUG-74565
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's not part of the QBackingStore API, but clients such as the Qt Quick
software renderer access it through the platform backingstore, to grab
the window.
Change-Id: I203484ce13a5f8fb6815d27ab07f874fa9d16b8c
Fixes: QTBUG-75467
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Include screen and MINMAXINFO values in the message about not being able to
set the geometry.
Suppress output of some window finding functions unless verbose.
Change-Id: Iaaae59ecb302438b3444735067d018c77d2af162
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using NSScreen as the basis for tracking screens is not recommended, as
the list of screens can be added, removed, or dynamically reconfigured at
any time, and the NSScreen instance, or index in the NSScreen.screens array
may not be stable.
Quartz Display Services on the other hand tracks displays via a unique
display ID, which typically remains constant until the machine is restarted.
The lower level API also gives us earlier callbacks about screen changes
than the corresponding NSApplicationDidChangeScreenParametersNotification
does. By reacting to screen changes _before_ AppKit does, we can remove
workarounds for receiving window move and screen change notifications
before the screen was actually visibly reconfigured.
The new approach also handles changes to the primary screen, which
can happen if the user moves the menu bar in the macOS display
arrangement pane.
The device pixel ratio of the screen has been made into a cached
property, like all the other properties of QCocoaScreen. This is
more consistent, and allows us to qDebug the screen even when it
has been removed and we no longer have access to resolve the
properties from the associated Quarts display.
Change-Id: I2d86c7629ed3bf5fb8c77f174712633752ae4079
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/tools/qlocale_data_p.h
(Regenerated by running the scripts in util/local_database/)
src/gui/opengl/qopengltextureuploader.cpp
Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io>
Change-Id: I12df7f066ed0a25eb109f61c4b8d8dea63b683e2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can't rely on the previous screen and current screen to accurately
reflect whether or not the window has been moved from one screen to
another, or if the window just stayed on the same screen but the screen
was reconfigured by macOS. The reasons for this are many-fold, but
include factors such as Qt using the screen of the top level window
to resolve the screen of the child windows, and AppKit delivering
screen change events in an order that makes things harder to track.
The result is that we need to always send screen change events, for
all windows, including child windows, and we also need to restart the
display link by re-requesting an update request if needed, so that
child windows that are running animations will continue to animate
on the new screen.
Change-Id: I0b87849c41323e92c08f5115842be067fa8f8490
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Calling super will push the default arrow cursor, so we should only
do that if our own cursor has been unset.
Change-Id: I71d8934e7eab2b15e150730e2282e7063ada305a
Fixes: QTBUG-75552
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting transparency (WS_EX_LAYERED) causes a WM_PAINT to be sent to
the invisible windows, which causes a resize to the default size
(640x480) to be sent from QGuiApplicationPrivate::processExposeEvent().
Suppress these messages.
Fixes: QTBUG-75455
Change-Id: Idc540aa7f9bf0047e78ec7c27db260940483f7c4
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-75612
Change-Id: I0e90a84697c1eb055c4150f2519829977fce7244
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
window.contentView can be of any NSView subclass.
Get to the QCocoaWindow via QCocoaNSWindow instead.
Change-Id: I8c761fd22e6078b075d8dd035ad767b9e4cb6da2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: Id95c096700a8bfa733d8620064c2a37eb19cc3db
Fixes: QTBUG-72741
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I2228ee9d53aa23a2d2cd9970a363d8424e744093
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When both mouse and tablet events are handled by QWindowsPointerHandler,
m_currentWindow variable is shared among the two event streams, therefore
each stream should ensure it does equivalent operations, when changing it.
Here we should subscribe to the Leave events, when we emit Enter event
from the inside of the tablet events flow. Without whis subscription,
the cursor may stuck in "resize" state when crossing the window's
frame multiple times.
Change-Id: I88df4a42ae86243e10ecd4a4cedf87639c96d169
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The user can remap the stylus buttons using tablet driver settings.
This information is available to the application via CSR_SYSBTNMAP
WinTab feature. We should fetch this information every time the
stylus gets into proximity, because the user can change these settings
on the fly.
Change-Id: Idc839905c3485179d782814f78fa862fd4a99127
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also define our default font so as to return something we actually have
Task-number: QTBUG-75587
Change-Id: I26e3c62921d369c3017af9796c0a20f7ac06d07c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adding xcb_flush after xcb_bell makes it work, no need to move the
mouse.
Fixes: QTBUG-75617
Change-Id: Ieeb47468bf31cfa6fcf2d48da56d54b9e6eac6fe
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-75530
Change-Id: Ic0f0bd8ce863f55d737d96bbf9e5473466381c9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Iaad9509712c848ed42ada2c25065162a6fc5a930
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt starts drag-and-drop on a mouse button press event. Cococa in
this case won't send the matching release event, so we have to
synthesize it here.
Task-number: QTBUG-72417
Change-Id: I645b6a2733c1ea11ac4545cf3405f826af45fa47
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ic1975db497613e3efe50be4246c167efe10d8e31
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With some keyboards (ASOP, SwiftKey) it was not deleting any new lines
when using backspace. So this ensures that it is correctly deleting at
these points. Tested with the Samsung, Gboard and SwiftKey keyboards.
Fixes: QTBUG-74824
Fixes: QTBUG-57798
Change-Id: Id2e4f96c18c3fec0e7f444b55dd3db2653625fd0
Done-with: Vova Mshanetskiy <vovams163@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-74868
Change-Id: Ibbbac1ece66c8978440a282bf6949a82fb64d216
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ibce9bfef928ce39070183c488ce86ae32e5ea705
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CreateCursor only works with standard sizes (32, ...) depending on the
display hardware. No longer apply the scale factor for the blank cursor, because
it might lead to unsupported cursor sizes resulting in random pixels.
Change-Id: I48d84bd913d2dd8f62129126c9a41e58ee2cbcae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If this plugin is loaded at some later point during application
run-time, the focus object might be nullptr. We can avoid that by
using qApp->focusObject(), when m_focusObject==nullptr;
Task-number: QTBUG-74465
Change-Id: I0d82410ed557ea1a8fde28a1807f790854951cda
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I6ecf7074eda57ef4954fb3fdc7a6d1e8cd229340
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise, AppKit, while rendering 'detached' (not in any view hierarchy)
controls and cells will use NSAppearance.currentAppearance, which is not
guaranteed to be the same as NSApplication.effectiveAppearance.
Task-number: QTBUG-74515
Change-Id: I82dcebf2230932ecfcbf33c422a3b7bd0aed61d7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Images in an ico file contains transparency information stored as a 1
bit mask. However, when the depth is 32 bit, it means there is an
alpha channel present, and the mask should be ignored. The Qt ico
handler failed to do that. This has gone unnoticed, since the mask in
such images is typically set to all 0s, and so makes no difference to
the result. But ico files exist that contain junk mask data, so fix
the reader to ignore it properly.
Fixes: QTBUG-75214
Change-Id: I1b4456d71689ec783076a582f2fb215e7dc56e62
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-75263
Change-Id: I099f76114f876b3d6d81df3efb94db126db6a806
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I26da00aa71b0f0b91c9bfb4a9e8550345ee62875
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the client of the backingstore fails to pick up dpr changes, and
tries to flush the backingstore without a repaint, we will end up
flushing a back-buffer with a stale dpr. Detect when this happens,
warn the user, and smooth out the situation by adjusting the layer
accordingly.
Change-Id: If4596a8976a3902252c81d8e28c7aeb9fdd908bf
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For WM_APPCOMMAND messages that also trigger WM_KEYDOWN/WM_KEYUP, let the
latter messages be handled, instead of stripping them and synthesizing a
press/release from the command code, in order to get the correct scan codes
and autorepeat info.
Fixes: QTBUG-73879
Change-Id: I936cd76be87a76dc6b6223eeb246e4e7aee3a4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: I2816cb8a3cbc4a2cf5ca5f333a1fddc245b3c06a
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A new 'pointerId' is assigned to the stylus every time it enters
tablet's proximity. But applications expect this ID be constant,
at least during one application run. Therefore, it needs to use
'sourceDevice' instead.
Basically, WinInk doesn't have an ability to distinguich two
different styluses connected to the same tablet. We cannot do
anything about it, it is supported only in WinTab.
Task-number: QTBUG-74700
Change-Id: I8328f1e5102b037b370082e69e965ab68b487882
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The current mouse buttons state was being retrieved from WPARAM
for all mouse messages. However, for non-client messages this
parameter contains unrelated information, which resulted in
non-client events reporting incorrect button state. Changing it to
retrieve state using GetAsyncKeyState() for non-client messages,
like in the legacy mouse handler implementation.
Fixes: QTBUG-74649
Change-Id: Ia246164208707072e584dd521697e9d31d3e65ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Changes QWindowsDropDataObject to only ignore non-CF_HDROP formats when
the drop contains only "text/uri-list" mime data, and the URIs are for
local files, to avoid messing with custom formats set by the developer,
while still fixing the case reported in QTBUG-62662.
Fixes: QTBUG-74232
Change-Id: I946ced222377716876d0aea54b3eb05d40e7fa44
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
WebEngine HTML based popups depends on setting Qt::WA_ShowWithoutActivating,
to keep forwarding events to chromium event handling. This works well with xcb,
windows or coca windows backends, however was not respected on eglfs.
Add check before activating the window.
Task-number: QTBUG-69533
Change-Id: I66b249ec497af890c8a2228eee3bac3c806e77ed
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the shared context had robustness set then all child contexts must
as well, otherwise we will fallback to a non-shared context breaking
threaded rendering.
Change-Id: Ie5526e632ad21289b6164c1ca06e54ec714187c7
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Calling destroy from the QEglFSWindow dtor() triggers the virtual
invalidateSurface() to be called on a partly destroyed object. As the
child windows deregister themselves from their screens on
invalidateSurface() this is dangerous: It leaves a dangling pointer in
the screen.
Fixes: QTBUG-75075
Change-Id: Idd3fea18562d41973f364340df875a50dbd5691e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/tools/qlocale.qdoc
tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
Done-with: Edward Welbourne <edward.welbourne@qt.io>
Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io>
Change-Id: I88e0757b2d020f0a244714c87844631df4b3fd13
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Screen readers like NVDA and Narrator were not reading the contents
of a QComboBox when changing its value using the keyboard, without
expanding it, due to missing UI Automation notifications in this case.
This change should also help in other cases where updated string
values were not notified to screen readers.
Fixes: QTBUG-75066
Change-Id: Id7f488380aec5ad27fd11b3cf854d44ab1b28688
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|