| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: I27804dc4a26050931ff7d99aaee319d88b254b00
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3
Task-number: QTBUG-103295
Change-Id: Ib8d24b06b22711b6fa6d3f6f15729cad7f3edd07
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: I8b26c642488928523effbf9be9ac05939067a493
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2
Task-number: QTBUG-103295
Change-Id: Iff8a76926a8a0b581a0290b5b6ab44453ac774ec
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: I974dbcd67bc4a45cf18d0fdf197bcaeb12c633b4
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: I000dd8b5fa13747acfa8c12df4203dfdaa48b9c4
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
| |
Found by the includemoc script complaining.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: I56513a331c098c1511b0b0091902f1e83f61e5c2
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just to include the moc file. It's otherwise the only one left in
mocs_compilation.cpp and we might want to introduce a warning later on
if something ends up in there, to maintain the newly-established
includemocs level.
Pick-to: 6.3 6.2
Task-number: QTBUG-103295
Change-Id: Ic4dd94ab1a6ca20c4e0350066c875895841f4168
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just to include the moc file. It's otherwise the only one left in
mocs_compilation.cpp and we might want to introduce a warning later on
if something ends up in there, to maintain the newly-established
includemocs level.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-103295
Change-Id: Iafaf87d8624f0162acd1a3063b5c4fac83406194
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a32cc186e645e8dac6dd7089f374f6d20e924f39,
windowContentGeometry was changed by adding shadow margins,
but the check ensures that the point inside the content area
rather than the decoration and windowContentGeometry is smaller
than the decoration geometry now as it excludes the shadow.
Creating the geometry from surfaceSize fixes it.
Pick-to: 6.3 6.2
Change-Id: If20a387b6864c1bc961352654f827a45cee77bd1
Reviewed-by: Jan Grulich <jgrulich@redhat.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the application sets an invalid minimum and maximum size
(where the minimum is higher than the maximum), then we
would blindly send this over the protocol, which is a protocol
error according to the spec. Qt compositors will warn about
this and ignore the size, but mainly because "but there's no
matching error defined" according to the comment. Other
compositors may close the connection when this happens.
To avoid crashing the app based on bogus min/max size, we
make sure we never send a maximum size which is less than
the minimum size. This corresponds to the behavior of
compositors which accept the size without raising an error:
the minimum size takes precedence.
Note that 0 means "no maximum size" in the protocol, so we
cap the value before applying this logic.
[ChangeLog][Client] Fixed an issue where setting an invalid
minimum and maximum size on a window would cause some
compositors to raise a protocol error.
Pick-to: 6.2 6.3
Fixes: QTBUG-102626
Fixes: QTBUG-103391
Change-Id: I4004a4550a9fe3dae6a27169b4d1a9a616e21841
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
So we get correct exports different from imports, which are required for
GCC 12 with -mno-direct-extern-access and protected visibility.
Change-Id: If05aeeb7176e4f13af9afffd16e856de1f4f68d6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
| |
Change-Id: If05aeeb7176e4f13af9afffd16e85611ff7c42f2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As the warning asked.
qwaylandshellintegrationfactory.cpp:67:28: warning: ‘T* QScopedPointer<T, Cleanup>::take() [with T = QtWaylandClient::QWaylandShellIntegration; Cleanup = QScopedPointerDeleter<QtWaylandClient::QWaylandShellIntegration>]’ is deprecated: Use std::unique_ptr instead, and call release(). [-Wdeprecated-declarations]
As a drive-by, change *foo.get() to *foo.
Pick-to: 6.3 6.2
Change-Id: I7fb65b80b7844c8d8f26fffd16e97fe161d6a67a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Return values of two write() functions were ignored, causing warnings
which were treated as errors on webOS emulator build.
Fixes: QTBUG-103378
Pick-to: 6.3
Change-Id: Ifc2e944dee376973b69220b7f75dc346c0a71e71
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This amends 4910b7adfa706520cd5180d5384b999488550aef.
QWaylandKeyboardPrivate::resetKeyboardState() is behind an #if.
We need to match the condition for the definition as well.
Fixes: QTBUG-103341
Change-Id: Ib0b5b6284cac10a0cb5d53fca08e0d7226e7240a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This amends 4910b7adfa706520cd5180d5384b999488550aef.
QWaylandKeyboardPrivate::resetKeyboardState() is behind an #if.
We need to match the condition for the code that calls it.
Fixes: QTBUG-103341
Change-Id: I6337a64870bb08930b0d19e03ca7fcc28e345493
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
| |
surface()->client() could return null at the moment when
QWaylandQuickItem::takeFocus invoked, which cause using nullptr
Pick-to: 6.2 6.3
Change-Id: I89432882bd7117f45bac889bc85b2f86c77b21e8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As documented, setAcceptTouchEvents() would be implicit in calling
setAcceptedMouseButtons() in Qt 5, but in Qt 6, this was changed.
The result was that QWaylandQuickItems would never receive any
touch events in Qt 6, even though the touchEventsEnabled flag is
set by default.
To fix this, we add an explicit call to setAcceptTouchEvents() to
ensure the same behavior as we had in Qt 5.
[ChangeLog][QtWaylandCompositor] Fixed a bug where multi-touch would
not work with Qt Wayland Compositor.
Pick-to: 6.2 6.3
Fixes: QTBUG-102829
Change-Id: Idc99c56a7cc8651da844be3ea238b8537891dd1f
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the application deactivates while a modifier is held down,
the modifier would get stuck and be set for all subsequent
shortcut events. This could easily happen when nesting a Wayland
compositor inside another compositor and using ALT+TAB to switch
to another application. The alt modifier would then get stuck,
since it never received any release event.
When the application is inactive and then comes back, we can't
know which keys are pressed, so it's better to just assume they are all
cleared at this point.
[ChangeLog][QtWaylandCompositor] Fixed a bug where keyboard
modifiers would get stuck if the compositor was running nested
inside e.g. X11 and then ALT-TAB was used to switch to a different
application. This would cause shortcuts to misbehave.
Fixes: QTBUG-101862
Change-Id: I9645418719d8ef8fc2ce2203ca5b6a159f3d9a7c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This amends 585f20dce37c398d8b2e6367008e3329dac79e24 where
support for multiple client buffer integrations was added.
Previously, this would not work unless you also set
QT_WAYLAND_IGNORE_BIND_DISPLAY in the environment, because
we would fail if eglBindWaylandDisplayWL() returned false,
which it will when the display is already bound.
Instead, we assume the display is correctly bound when the
function returns false, and then we make sure we unbind from
the same integration that originally did the bind.
The patch adds unbind to the destructor of linux-dmabuf and
eglstream integrations. This was previously missing.
[ChangeLog][QtWaylandCompositor] Enabled support for multiple
client buffer integrations without the need to set the
QT_WAYLAND_IGNORE_BIND_DISPLAY environment variable.
Fixes: QTBUG-101366
Change-Id: Iefeb865b540d96a55d3be9b9c1fb41bf388638ca
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The one in qtwaylandglobal.h was wrong. It just happened to work on
Linux because the lack of import wasn't an error... until GCC 12 with
-mno-direct-extern-access.
Pick-to: 6.3
Change-Id: If05aeeb7176e4f13af9afffd16e8535b469f9158
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When these are missing, external links to the contents of the modules
break. Any \inqmlmodule should always have a corresponding \qmlmodule.
Pick-to: 6.3
Fixes: QTBUG-102379
Change-Id: Id800e1ac3976957869f4a521f69f0190fb7eba5a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Use QMetaType instead of QVariant types
Pick-to: 6.3
Change-Id: I92248cc5eff82c1dc20f7cad11bdeeccc64a5605
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When using highdpi, window->geometry != platformwindow->geometry.
In QPA we should use QPlatformWindow's API.
Fixes: QTBUG-102601
Change-Id: Ib4ff2edbc045cf441cd2d594d502875417eb4917
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
change clipboard read away from select(2) call which can fail when
an application has large number of open files
Change-Id: I6d98c6bb11cdd5b6171b01cfeb0044dd41cf9fb5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
The \property command accepts no type, only the name of the property.
Task-number: QTBUG-102185
Change-Id: Ia779a8c4097c7f4f1d1080b0e75114cea947578a
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.3.0 6.3
Fixes: QTBUG-102185
Change-Id: Ib2f6da8d7af63ef89dba2701bda562722dd9a12f
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-100148
Pick-to: 6.3 6.2 5.15
Change-Id: I45e3156d7942cff9968674c0b253d15be7235921
Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Also fix a typo in the license name.
Amends db3df0b3b439a
Pick-to: 6.3.0 6.3
Fixes: QTBUG-102148
Change-Id: Ic231a4b744864c19190d428a9a2fc5101ffa77f0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case connections in PresentationFeedback are QueuedConnection,
there are sometimes a signal to be connected is emitted before creating
another connection on the signal from the connection's slot method, and
this makes wrong feedbacks.
In order to send proper feedbacks to clients, create related connection
earlier and make to work properly by checking some conditions.
Pick-to: 6.3
Change-Id: Ic8f02139ca08713c419b0341b9a1e8add6f5a095
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
| |
checkAndRepairModifierState() was never meant to be a public function.
Change-Id: Ia8946523b5ae79170490dc78a509ed1e132d9832
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
On Wayland, there is no protocol to do it yet.
Task-number: QTBUG-100792
Task-number: QTBUG-101145
Change-Id: I4bfef2920547babf0ccc00a27062d0db77ae5b7f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wl_display_prepare_read and
wl_display_read_events/wl_display_cancel_read must come as matching
pairs. Otherwise we set libwayland's internal read count to a negative
number and causes all types of deadlocks. If prepareReadQueue fails but
we haven't explicitly quit waitForReading returns a success statement
but we haven't opened anything.
Pragmatically most times wl_display_prepare_read fails it's because of a
wayland error which is handled by exiting anyway, but it is better to
err on the side of safety.
Change-Id: Ia29c3217622d97594404be3daf4c50338a1d3fb0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
It didn't make sense that mSurface was protected, but the mutex
was not. Also try to improve documentation.
Change-Id: I2f59557cccbb2d6f0b2772ce3c8a2dab01167a6c
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
| |
Change-Id: I0e91bda73722468b9339fc434fe04420b5e7d3da
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reverted commit introduces a severe performance regression
when a client window is resized while a QtQuick renderthread
animation is running.
This reverts commit feb1a5c207c13d0bf87c0d8ad039279dbf8cee9e.
Fixes: QTBUG-101726
Change-Id: Ib5b52ce06efec8c86fada1623c2af82099e57fc6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
mResizeDirty is used in the GUI thread in setCanResize which can be
called from the GUI thread. It is queried and set whilst the resizeLock
is held. We need to guard our usage.
Change-Id: I5f8dcf8aa2cb2c4bb6274103df1da9e3e268605a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the wl_keyboard protocol, key events and modifier state is sent
separately. Currently, the modifier state is maintained by a
QWindowSystemEventHandler that filters low-level QPA events. This does
not work for key events that are injected from other sources, such as
virtual keyboards, or remote UI connections.
This change does not try to fix the architectural issue. It is just a
workaround that detects when we try to send a key event with a modifier
state that does not match the previous modifier state sent through
wl_keyboard. In that case we send a wl_keyboard.modifiers() event that
matches the modifiers of the key event.
This is somewhat fragile, and will probably cause weirdness if native
key events are interleaved with injected events, but it should behave
better than the previous situation.
Change-Id: Ic80198e7728edacfdcaf426bae54508a6576e8cd
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the wayland surface gets initialized at the compositor
side, the compositor checks whether the text-input extension
is available and connects to its signal.
If the client doesn't create the extension before the
initialization on the compositor side happens, the
InputMethodControl of the surface is not connected to the
text-input extension and doesn't work correctly.
In this case the connection should be made once the extension
is available.
Change-Id: Icdd015f1d7853fe2f191b91a87d25f196f6b7769
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
| |
Change-Id: I149e04d31ef3e897e25a91450427237069af4c34
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cleanup work needs to be done even the surface is null, for
example, a window was closed in mouse press handler, then will not
get a mouse release.
Fixes: QTBUG-100942
Pick-to: 5.15 6.2 6.3
Change-Id: I637a6744909ddbe62bdeba6b21494e5a6ae7fa9f
Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds support for handling of removal of the relevant global to
QtWaylandClientExtension. The user is responsible for destroying the object
once it becomes inactive to match the behavior on destruction.
Two signals for globals and their removal are added to QWaylandDisplay
to make it a bit nicer to use in a more "Qt-way". The addRregistryListener
function is kept for now until other places are ported.
Change-Id: I4ccbaa32e18a5ae15871aa23639e2b4a372cc34e
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
See script in qtbase/util/includeprivate for the rules.
Since these files are being touched anyway, I also ran the
updatecopyright.pl script too.
Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
See also https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml#n234 .
Kudos to Greg V for his original patch in jira.
Fixes: QTBUG-87303
Pick-to: 5.15 6.2 6.3
Done-with: Greg V <greg@unrelenting.technology>
Change-Id: I57df9aedea7cc6f0b6fa142a6fc6c3bdc98324c8
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
It's possible to create xdg-popups with a null parent and set a parent
via some other protocol. This will be useful for the work of allowing
multiple shells in one process.
Change-Id: I1fb9035be4b3999ff284bcc5c60eb4142cee1294
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
This was not added together with the protocol. This change also
disambiguates v1 and v2 as two separate entries, since the
licenses are different.
Change-Id: I2309aced67ae69bc2d8117688e5d7b1074e8bf8f
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The XDG activation protocol was added with no attribution and
the Wayland protocol version was updated without updating the
version in the XML.
Pick-to: 6.3
Fixes: QTBUG-100901
Change-Id: Ifaaf69b7d498ea7106d4bfd6ada978475447d296
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The relational operators were incorrectly declared as mutable member
functions (they should have been const). In C++20 builds, this leads
to ambiguities between these operators and their reversed
versions. Even before C++20, one couldn't equality-compare two const
QWaylandBufferRefs.
The problem is that we cannot fix this in a forwards-binary-compatible
way, because there's no way to implement the operator for lhs = const
and rhs = const without adding a new symbol or breaking encapsulation
of the class.
Therefore, libQtWaylandCompositor is unfixably broken in Qt ≤ 6.2,
unless we break forwards-BC as per this patch.
There doesn't appear to be a specialized test for this class, so just
check overload resolution using static_assert()s.
[ChangeLog][QtWaylandCompositor][QWaylandBufferRef] Two const
QWaylandBufferRefs can now be compared for equality (before, the LHS
was not allowed to be const).
[ChangeLog][QtWaylandCompositor][Potentially Source-Incompatible
Changes][QWaylandBufferRef] The relational operators are now hidden
friends (they were member functions before) which are only found by
unqualified lookup.
Pick-to: 6.3
Fixes: QTBUG-100845
Change-Id: If0ef6b3b6dafc6c9bf4dca02c5f26a08ed73815d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
We need to clean up the event queue when we're done.
Change-Id: I13a9eb77e978f4eab227a3a28dab8ebc8de94405
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|