| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pure-qml name made sense when the example was made, but since
then we have added a lot of examples that are all in Pure QML.
Minimal QML covers the basics of how to set up a compositor in QML,
but Pure QML shows a more advanced use case, with animations,
windowing system features, virtual keyboard support, etc.
To make it clear what the example is demonstrating, we call it
Fancy Compositor instead.
Task-number: QTBUG-110993
Change-Id: Iad1cfb11b6461858ebcdaa388ed16e1fd3ec8805
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Qt Wayland Compositor API is perfectly suitable for desktop as well,
but is primarily used on embedded systems and that is where the ability
to build your own platform, including a custom compositor, yields
the most power.
Pick-to: 6.5
Change-Id: Icb5827b29f896cf6835bdd37fb003a4abbef9f94
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove redundant categorization from example title as according
to example guidelines.
The examples are already categorized under Qt Wayland Compositor
Examples, so adding it to the title makes the list a bit cluttered.
Pick-to: 6.5
Task-number: QTBUG-110993
Change-Id: I91ad127611c7b1e4d8c558377bc5f46e0ec28a41
Reviewed-by: Inho Lee <inho.lee@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Updated signal handlers to new syntax to reduce noise (warnings).
Allowed to build examples with subfolders in one step, updated from
deprecated WlShell to XdgShell, etc.
Change-Id: If821363ffd1b38ea1d152f5a044b0609cf739014
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-105718
Change-Id: Icb25ea4e07a38eea81f55ed59c6d3b9d37602626
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Existing copyright statements remain intact
Task-number: QTBUG-88621
Change-Id: Ib014757184540728f40df71cd580f01e85fbbb56
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I106d3a5d1a7b96250380b6f51a48f3b19d10e4d9
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove "# generated from xyz.pro" comment from pro2cmake
- Remove automatic use of CMAKE_AUTORCC
- Only opt into CMAKE_AUTOUIC if .ui files are involved
- Remove explicit setting of CMAKE_INCLUDE_CURRENT_DIR
- Combine multiple find_package(Qt6 ... calls)
- use REQUIRED COMPONENTS
- sort components alphabetically
- Fix wrong indentations
- Use (only) one empty line after multi-line commands
Pick-to: 6.3
Change-Id: I3ce281ae1fb44c8d54ee09860ddadd3dbbdf7271
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from clients and one compositor at same time.
For compositor side, just need to have TextInputManager and
QtTextInputMethodManager together.
For client side, set QT_WAYLAND_TEXT_INPUT_PROTOCOL env to choose:
* If the env is unset(empty) or invalid, it will search
qt_text_input_method_v1 and zwp_text_input_v2 in order
* Set as "qt_text_input_method_v1" or "zwp_text_input_v2" if compositor
supports
* Set as "zwp_text_input_v2;qt_text_input_method_v1"
Change-Id: Ieec293ff412bf2d3e5ca9c69a951bfe1899cc808
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fixed a typo in the QML type name 'XdgToplevel', and switched
to use a short-hand format for the link.
Pick-to: 6.2 6.2.0
Task-number: QTBUG-95860
Change-Id: If992f9303b7d1c7215f0a395f09399a1727a90eb
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.2
Task-number: QTBUG-95636
Change-Id: I821f412f9dbe11ae99ffd888a7ab2ba415ed9379
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add details about what customizations are specific to this example.
Task-number: QTBUG-91674
Change-Id: Icf2dd4fb2bcbd230bbadbb01e5a57f481ad178eb
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
It is actually the toplevel interface that has the activated
state in XdgShell. Due to this, the activation animation would
never run, even when XdgShell was in use.
Change-Id: Ic939d360ad6790cbe6a1656c44cf515ed09f697c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
As well as the MACOSX_BUNDLE properties as necessary.
Task-number: QTBUG-87664
Change-Id: I2e238dff7bdda6c47dfbe28e2a560ee4c25f3d02
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-87661
Change-Id: I640a3c4281040309a6feb3585c4134190627d17d
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
In 3a8449ff0a821ab072f66ea43fed6925090fc4d8, we added
support for IviShell in the compositor examples, but
the change hadn't been updated after the types were
moved into a separate import, so all examples fail on
start-up.
Change-Id: I08a88b775338471457060c8e45718c8da3f1e9ab
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Now that XdgShellV6 is removed, some older Wayland applications
(such as weston-terminal and weston-simple-egl in Ubuntu 18.04)
would assert when run against our example compositors. Adding
IviApplications let them run (although with reduced functionality).
Change-Id: If28513f23d4cb362608119db8233eb2e47f794bb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We introduce an alternative input-method protocol, which
is a one-to-one mapping to Qt's input method API. Input
methods such as the virtual keyboard's hunspell
integration is quite sensitive to the inner workings of
the input method handling, both in terms of when state
is updated and which updates are delivered when.
With a one-to-one mapping we are able to match these
expectations and keep a well-synchronized state.
Task-number: QTBUG-85135
Task-number: QTBUG-85134
Change-Id: Id69c22a7b0885ea59f39fdcc8d663749af56c7ce
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: Iaaac7328e75971aa2f0b50d9fb0437ade6f19cbc
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We want extensions to be in submodules in QML.
[ChangeLog][WlShell] Moved WlShell types into QML import
QtWayland.Compositor.WlShell rather than QtWayland.Compositor
Task-number: QTBUG-68840
Change-Id: I7c3d2d05efdab86ea61affc6a9a0bc3e10835328
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want extensions to be accessible from submodules to
QtWayland.Compositor, since this makes it easier to
deprecate and remove things as they become outdated.
[ChangeLog][XdgShell] Moved XdgShell types from QML
import QtWayland.Compositor to QtWayland.Compositor.XdgShell.
Task-number: QTBUG-68840
Change-Id: I74bf6e31dad1a05151f547ea5e5ff043128512cd
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We no longer have to specify the version for QML imports, as it
will just default to most recently available. The examples should
follow best practices, so this cleans up all the QML in the
examples.
Note: Due to QTBUG-85443, we have to leave the QtQuick.Controls
imports versioned for now.
Change-Id: I237da0bd406fe1e06123bb47e29a7d921c64b5b5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XdgShellv5 and XdgShellv6 have been deprecated in
the compositor since 5.15, and wl-scaler since 5.13.
These are now removed.
Since the qwindow-compositor has not been updated
for a long time, it depends on the outdated protocols.
This change removes it, since it no longer represents
best practices. This means we will be missing a proper
C++-based compositor for now, so we will have to
create a new one later.
Change-Id: Icc6ef97c17e553f266c4145abeef26ddd631d6bf
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
After Window moved into Qt Quick, the Screen attached
property is now available even without import QtQuick.Window.
This causes conflicts with local types called Screen.
Task-number: QTBUG-85199
Change-Id: I989e66a8111c0a23996902d9678bc85f238df288
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: I51a365ef29277bfcb3a62d04954dbe109ab6eac7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ia76896a4d06240ccc3d95ba478b6ce273c7a0be2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Already ifdef'ed to true, but we can now update the examples.
[ChangeLog][Compositor] ShellSurfaceItem.autoCreatePopupItems
now defaults to true.
Task-number: QTBUG-68843
Change-Id: I9d7625e710c5c27b664678b459c09121b445fffc
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The client, compositor, tests, plugins and examples now build.
There are still a few minor issues:
- The protocol source generation is a bit hacky.
- The tests for checking if building CMake projects don't work anymore as they
have Qt 5 specific code. They have just been commented out for now.
Fixes: QTBUG-78177
Change-Id: Ie17cb05f0cdbd5b098970ce765adaeccf61a8fde
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CMake Build Bot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing solution was parsing compose tables on startup, it is
better to lazy initialize the compose table/state on a first key press,
instead of doing it on an application startup. This logic is inside of
the compose input plugin.
The existing code did not utilize correctly how Qt handles complex text
input. It used libxkbcommon-compose APIs to compose user input and then
passed the same input again to QPlatformInputContext (from
QWaylandInputDevice::Keyboard::sendKey), which was erroneous. This also
means that code was forcing "xkb compose", and did not respect QT_IM_MODULE
at client-side.
From commit that added compose key handling (57c4af2b18c0fb1d266b245a107fa6cb876b9d9e):
"We should expand on it in the future to handle things like resetting
the compose state on text field switching".
This is now handled by properly utilizing Qt IM framework.
Converted QWaylandInputDevice::Keyboard::sendKey into a class member function
to avoid adding one more arg (mXkbContext) to the already long argument list.
That whole function should be simplified, but that is out-of-scope for this
patch.
The reworked code uses qxkbcommon support library to reduce code duplication
between platforms and to unify behavior.
Some users might mistakenly think that this patch introduces a regression
with Qt on KDE, but it is actually a KWin/Wayland compositor bug:
https://bugs.kde.org/show_bug.cgi?id=405388
The work around on KDE is to use QT_IM_MODULE at client-side to select
input method, as KWin compositor over the wire supports only the qtvirtualkeyboard
module. Setting this envvar is not someting out of the ordinary for users
on Linux. Input method handling at compositor-side is new feature and
clearly not very well supported yet.
Task-number: QTBUG-65503
Change-Id: Ie511d950396fa2fb6cbe6672996cee9791f3ab11
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Compositor API] Added APIs for xdg-shell stable.
Code copied from the V6 implementation with suffixes and prefixes removed.
Otherwise a few minor edits, such as renaming xdg_shell to xdg_wm_base, and
handling the anchor and gravity edges no longer being bitfields.
Examples that used v6 have been updated to use stable instead, or, in some
cases, to support both.
Task-number: QTBUG-66784
Change-Id: Ia619b478a938fdcd9b47af8a8df2d7fcc4406204
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use a ListModel to manage shellSurfaces
- Remove obsolete/deprecated extensions (QtWindowManager, XdgShellV5)
- Remove no-ops (onSurfaceRequested created a default surface)
- Remove dead code (primarySurfaceArea, output property on Window)
- Add comments
- Follow coding conventions (formatting, order of object attributes etc.)
Task-number: QTBUG-60661
Change-Id: I4ffd2c4b5deff1d801a25efa96300fc5851d3359
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: I5e6b0147c4f1bb73ff3a8f5512d21884f962a89a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
| |
Menus open up at the right place this way.
Change-Id: Iae18fdcefe33356e9e9ee105b9f5c597bb6c896b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\
| |
| |
| | |
Change-Id: I6c283081669594b3e8c6b30194bb96e389319cb2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Create and update the texture on the GUI thread. Make sure there
is a valid context on the GUI thread: create one if necessary, and
share it with the global share context.
Note: this requires that threaded compositors set the
Qt::AA_ShareOpenGLContexts application attribute.
Task-number: QTBUG-63039
Change-Id: Ia19af0536f9df319cde84221ed53db1c2ef42293
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id4ba079514c7844821adac3c0c108af7deb57889
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|/
|
|
|
|
|
|
|
|
| |
This adds QML and C++ support for xdg-shell-unstable v6 on the compositor side.
A couple of things are still missing for complete support, but can be added
implemented later without breaking the API.
Task-number: QTBUG-56174
Change-Id: I08d7c05aa4f40f00377d92f2519d89ab416daaf4
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Currently tests are licensed under GPL-EXCEPT, examples under BSD and
src under LGPL so replase old license headers with new & proper ones.
Also remove old & unused license files
Task-number: QTBUG-57147
Change-Id: Ia6a738798736c275dc309ccfa5b627dc2178d241
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Popups that are children of popups would get a null parent in pure-qml.
This would cause a crash in XdgPopupV5Integration.
This change fixes pure-qml to set the parent correctly, and also adds
null pointer checks to XdgPopupV5Integration.
Change-Id: Ica5bd6c1a0853fbec1b30bc6ffff806b2cfd15f8
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
| |
Since child items don't get transformation animations, enable an
opacity transformation for them.
Change-Id: I4ab77bc10d61602a0df72f5927cde4ebbcad27ce
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Outputs usually have more than one mode, add an API to support them.
When sizeFollowsWindow is true, modes are replaced by one with the
window size and refresh rate. In that circumstance the mode changes
when the window is resized.
The sizeFollowsWindow property default value is no longer true.
The setGeometry() method is gone as it doesn't make sense now, the
setWidth() and setHeight() methods are now private slots to resize
the resolution as the window resizes (and sizeFollowsWindow is true).
Refresh rate is expressed in mHz rather than Hz just like the
Wayland protocol.
A compositor implementation may choose to add modes if it has access
to hardware information, it will call addMode() for each mode and
then invoke the setCurrentMode() method that sends the modes list
to the client. The preferred mode is indicated with a boolean
parameter to the addMode() method.
Change-Id: Iffed4784ccef695c276ebd800172957f4cff3324
Task-number: QTBUG-49814
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
| |
This frees the QWaylandXdg name for the hopefully coming stable
version of xdg-shell.
Change-Id: I9beb9b035c6497fb45bee5c9104485b564ca0619
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QWaylandQuickItem already encapsulates the view. Also rename
the confusing 'discardFrontBuffers' property to
'allowDiscardFrontBuffer'
Change-Id: Ibd74ad54bfe3d5187c2ed91ff0378b45e144e109
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The name QWaylandInputDevice could be confusing and misleading:
- A QWaylandInputDevice was not one input device, but a collection of many.
- Classes that sounded like they should inherit from it did not, i.e:
QWaylandKeyboard, QWaylandPointer and QWaylandTouch.
- The Wayland protocol already has another term for this, which is seat.
Change-Id: I9d9690d5b378075d9dddaeb8cf18395c7f47603e
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* createSurface -> surfaceRequested
* createXdgSurface -> xdgSurfaceRequested
* createXdgPopup -> xdgPopupRequested
* createShellSurface -> wlShellSurfaceRequested
* shellSurfaceCreated -> wlShellSurfaceCreated
Change-Id: I715a927242130d7504955002a6a64a2bac516d46
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Extensions will now automatically add themselves to their parent
if they are not inside an extensions [ ... ] array.
Change-Id: I26c7f7c2ee023595eb4cd2496dd56e212f05329c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
| |
Change-Id: Ide6605b7bd05f739976ed603c19e030ec74d2a2a
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
| |
What WS stood for may not have been obvious.
Change-Id: Ib2a3f566e4e49d8be0c14c4937e7356b51718e44
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
| |
Change-Id: Ia3e0fa53579ee0d28b1d6b7384b9c6def2761a2b
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
|
|
|
|
|
| |
Change-Id: I5b35ff3b1c6c2dc884b52e6f077c0f2bb2db68a2
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|