| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
The rect is in the global coordinate system, while the opaque region
must be in the surface local coordinate system.
Change-Id: I75042b4d779dfd4dfe610aad1f0387879f11b048
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the client says it's fully opaque through the
set_opaque_region request, we can disable blending
for the item and potentially improve performance a
little bit.
[ChangeLog][QtWaylandCompositor] The compositor now respects
the opaque region set by the client and no longer applies
blending or overdraw for fully opaque windows.
Fixes: QTBUG-100373
Change-Id: Iaa68fbf1f086d926c9c1867d981a63810f4ca855
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This avoids "No update on item size as the buffer is currently
locked" warnings when windows are hold in a model and a window is
closed and removed from the model. The problem was apparent in many
QtApplicationManager examples.
Pick-to: 6.2 6.3
Change-Id: Icb9d4cd37d3a4a8ee4214a92aed8422794729d9d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
Pick-to: 6.3
Change-Id: Ifda9223dbf9d7c615de6540250a23a6687daecd7
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The custom event queue was removed in
302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not
being able to use the inbuilt round trip method no longer applies.
This fixes a real world problem. Use of a blocking round trip should not
process non wayland events. Doing so can lead to misbehaviour client
side as things happen out of order. The move to the event thread created
several regressions as we now get events before the QGuiApplication is
fully constructed.
Change-Id: I650481f49a47ed1a9778c7e1bc3c48db6e8f0031
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- None mapping to no style.
- Default/Underline mapping to underline.
- Highlight/Selection mapping to background color/text color with highlight/highlight
text with underline.
- Active/Inactive mapping to bold text with underline.
- Incorrect mapping to red wave underline.
Pick-to: 5.15 6.2 6.3
Change-Id: Iab51d671b8f83aece8596f7f7610de19343fcceb
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
| |
Otherwise the cursor would be hidden even if preedit is empty.
Amends 719a55be13bdadfa659a732755f280e276a894bd
Pick-to: 5.15 6.2 6.3
Change-Id: I320733b917779b7b51aa4a28eaea411fdb10a318
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Windows' geometries should be updated when changing decorations.
Fixes: QTBUG-100467
Pick-to: 6.3 6.2 5.15
Change-Id: I5ec9968aa48422776d184a8fa2f5d86ecc3ca5c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When window decorations are turned on/off, a timing issue might happen
with accessing deleted decorations.
A boolean value, mWindowDecorationEnabled, will be used instead of
mWindowDecoration.
Pick-to: 6.3 6.2
Fixes: QTBUG-59627
Change-Id: I5514a408d89340fdbf481721ea2dc4bf62078852
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
Unused lambda capture and private variables that clang complains about.
Pick-to: 6.2 6.3
Task-number: QTBUG-100249
Change-Id: I204eea8d4fc0c22542224d94bae113fa66870d15
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, mWaitingForUpdateDelivery is shared between the main thread
(doHandleFrameCallback()) and the frame callback event thread
(handleFrameCallback()), however the access to it is not synchronized
between both threads. On the other hand, QWaylandWindow
already ensures not to create a frame callback if there's already one
pending.
This change removes mWaitingForUpdateDelivery flag because it should be
already covered by mWaitingForFrameCallback and to remove unsynchronized
shared state between threads.
Change-Id: I0e5a25d18d1e66c4d7683e7e972330c4d7cbbf38
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
... and make the type registration function private. As we already have
a private global header, let's use it. The public global header should
not have the "We mean it" warning either.
Change-Id: If4424652528c7886ce56e676d633aa3968f3772b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The dmabuf_server_buffer test links to EGL and libdrm and the vulkan_server_buffer
one needs to link to wayland-client
Fixes: QTBUG-100475
Pick-to: 6.3 6.2
Change-Id: Idbcef88bba0a9d5ef7bfeaa55668c94caee6ab83
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
1. Adds explicit to new constructor
2. Adds an empty destructor for consistency to new class
3. Moved new data member into private class.
Pick-to: 6.3
Change-Id: Ib76c1cbea214693c929ced8651bdac92c2dbcd4e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|