| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change-Id: Ib69594d0c69238311d417f7b2954529c10da1ff6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Instead of writing "Component.onCompleted: initialize()" for every
extension the compositor has, let them call that automatically.
Change-Id: I0b499a38c2b475dc9a7ef27cbacebef19b196dbf
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
| |
Qtvirtual Keyboard dropped the enterprise from its import names.
Change-Id: Ie7bfda14d77d0e72fa25ef85d9762a8ca62a87ab
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Exposes QWaylandXdgShell and QWaylandXdgSurface as QML types, along with
a new QWaylandXdgSurfaceItem.
All of this mirrors the implementation of wl_shell closely. The biggest
difference is how resize is handled.
There is now some duplication in the window chrome implementation of the
pure-qml compositor. This may be improved by refactoring the existing
API for shell extensions.
Change-Id: I4f2ceff7e0462034cd295a27c3eefea457cc9b96
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
| |
Change-Id: I50a5ab6156fabac93bcc706bb49fb7dc92cf342d
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it simple to use client-side extensions in QML. The only
thing that the user needs to do is register the extension class using
qmlRegisterType() and the use the extension in QML.
Also adds simple QML example which uses client-side extension.
Change-Id: I2db99861d97c7bca5cfdbf86ba3a8ccc50fb24b0
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Instead of placing the drag icons top-left corner at the cursors
hotspot the drag icon is moved so it will be placed correct relative
the cursor hotspot. This will makes the drag feeling more realistic.
Change-Id: I8d60ae1b7788accb9034575983417abae4c58c1a
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
| |
m_xdgSurface and m_xdgPopup were left uninitialized. Fixes a crash when
resizing wl_shell clients.
Change-Id: I8f4b05e395ac6088d9f40bbe9cca6141ee12dfc9
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update text input support to upstream text-input protocol v2 from
wayland-protocols. Remove support for input-method protocol for now.
Map text-input protocol on compositor side to the Qt input method API,
this allows to use any qt platform input method on compositor side
(especially qtvirtualkeyboard). Add support for qtvirtualkeyboard to
pure-qml example.
Implement all missing functions of the text-input protocol.
Change-Id: I597451ff65454a63dff86026b6a8d1ffbe07ce02
Done-with: Zeno Endemann <zeno.endemann@kdab.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Use onShellSurfaceCreated instead of onCreateShellSurface.
A QWaylandWlShellSurface is no longer created in
QWaylandWlShellSurfaceItem::componentComplete
Change-Id: I7a0dbbacddc17ab32ed0e4d16e717fcefb221947
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes QWaylandShellPrivate::shell_get_shell_surface behave
similarly to QWaylandCompositorPrivate::compositor_create_surface.
First, a signal is emitted letting a compositor implementation create
its own subclass of QWaylandShellSurface if desired. If it's not
created, a plain QWaylandShellSurface is created instead.
It also makes the API more consistent, as the creation of shell surfaces
now mimick the creation of surfaces and xdg surfaces.
qwindow-compositor has been updated to take advantage of the new API
Change-Id: I7c7262dd253dc37843e8e471a4ead5f6e87b0ced
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* QWaylandShell -> QWaylandWlShell
* QWaylandShellSurface -> QWaylandWlShellSurface
* QWaylandQuickShellSurfaceItem -> QWaylandQuickWlShellSurfaceItem
* Shell -> WlShell (QML)
* ShellSurface -> WlShellSurface (QML)
* ShellSurfaceItem -> WlShellSurfaceItem (QML)
This is done to avoid confusion with XdgShell and will hopefully help
clarify that some of the examples only support wl_shell and not
xdg_shell.
Additionally, this makes "Shell" an available name in the compositor
API, which may in turn enable the creation of a more general abstraction
hiding the details of the shell backends (i.e. xdg_shell, wl_shell, and
eventually ivi_shell).
Change-Id: Iebac1f36505084bfaaea68838005d54db6c55e21
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
| |
Clearing the popup list erroneously got moved inside the foreach loop.
Change-Id: I8696c1c4281207230f5afa3a05d22881d93794c6
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
xdg-shell is an extension to the wayland protocol providing
functionality suited towards traditional desktop environments.
Most of the examples from Weston now require xdg-shell, ivi-shell or
some other custom extension. In order for our compositor-api to support
those examples and many real-world applications, we needed a compositor
implementation of xdg-shell.
This commit adds a class QWaylandXdgShell, along with
QWaylandXdgSurface and QWaylandXdgPopup. These clases are used almost
exactly like the corresponding QWaylandShell* variants.
qwindow-compositor has been updated to use the new functionality.
qwindow-compositor now only sets focus on surfaces that have a role.
weston-terminal was crashing because we set keyboard focus on the cursor
surface.
Keyboard focus handling has been slightly changed. Most of the
functionality has been moved from QWaylandKeyboard::setFocus to
QWaylandInputDevice::setKeyboardFocus. This is done in order to track
where the keyboard focus should have been, in case the input device
(seat) does not currently have a keyboard capability.
If a keyboard capability is later set on the input device, its focus
will automatically be set to the value stored in QWaylandInputDevice.
The reason for the change in keyboard focus handling is that we need to
know if an xdgSurface has keyboard focus in order to know whether to
send the Activated state in configure events. The Activated state tells
the client to draw itself as having focus (i.e. title bar not grayed out).
Change-Id: I1b1ca9a4223e87f5ade1e0f4c975979a400c38cb
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Clients can request null as the cursor surface in order to hide the
cursor. Added a null pointer check so it doesn't crash.
Change-Id: I9a0081ea9edd74c504bd55e385a6854024ab0c8a
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the client-side API for Wayland extensions by
introducing QWaylandClientExtension/QWaylandClientExtensionTemplate
classes. These classes takes care of the initialization of the extension
if it matches the interface name.
Change-Id: I7c4fb34563563af4be072cdebda54954b79cddbe
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a client sent a set_cursor request with a mapped surface,
qwindow-compositor did not call updateCursor until the next time the
surface was committed, which resulted in cursors with incorrect pixmaps
and hotspots.
This is solved by adding a check to see if the surface in set_cursor is
already mapped, and if so, update the cursor immediately.
The issue did not affect Qt clients, since commits are sent after
set_cursor.
Change-Id: I8b2555b68e9517e04f5bb8c5affe09d84bc97c0c
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: Iae5fdae99a2e81b246feca2b7b511e794b23f253
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
| |
Change-Id: Id874e426ba3e598a582ed74d4ed096dfae38603c
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-49809
Change-Id: Id62ddea68c89b6999b66d3df8eeeffd858ae844f
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
This adds support for subsurfaces to QWaylandCompositor and
QWaylandSurface.
Task-number: QTBUG-49809
Change-Id: I2fa9ee4dcd1f48a2a28dab536f9cd6edc716e42b
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
|
|
|
|
|
| |
Change-Id: Iaa4e0cb06ddce396d2c91c7b10eff57bba556a32
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I888f7289285a57a7c0a4a01054b4f691b178ad73
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|
|
|
|
|
|
| |
No input handling.
Change-Id: Ie35f8ad5ff7317c83b9b76bc5c45adaca8bdb6fb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
On the eglfs platform, there is no obvious way to exit back to a console, so
it's too easy to get stuck in this example and need to reboot via ssh or some
such. Ctrl-Alt-Backspace is the historical way of exiting from an X11 or
Weston session, so we use it here.
Change-Id: Ibe93acb0a81ef47384d5449760f25ad6e4cac8d8
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|\
| |
| |
| |
| |
| |
| | |
This introduces the new compositor API, removing the
old API (which was never officially supported).
Change-Id: I1dc01f0fb4edc749e34ed8356e56ad87d7d64913
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ie23f7c01331d5e52dcf30952d7ad9ade6ef5a5e0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Old copyright headers were accidentally used for some new code.
Change-Id: I0230d350e59701bc6b383c7c8151d52e34e8e75a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ibb4ae57d82a86d5fc74679c628a5c7a9b100f71d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Make it show colors other than black...
Change-Id: I0d0ef374d18c1dfbd4f1734d2d0cdcfbc2f36186
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
The documentation says that defaultOutput() is initialized later.
Change-Id: I3dcc6c9dc7395c7986721235333388614928347c
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Creating the QWaylandOutput after the compositor's create() posts
an event to the output object and defers initialization. This is
fragile since there is nothing guaranteeing the application will not
get to render in the meantime and not start calling functions like
defaultOutput(), which all return null since there are 0 outputs
registered at that time due to the deferred QWaylandOutput::initialize().
Until the issue gets solved by redesigning the behavior somehow, swap
the two lines to get qwindow-compositor running with eglfs. This way
the output's initialize() is called directly from the compositor's
create() and this all output-related functions are usable afterwards
immediately.
Change-Id: Ie4203d0a4d0ec35804ef8c320121750f02b50724
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds some preliminary documentation for the Qt Wayland Compositor.
There are a few classes which remain undocumented. The documentation
in some areas may be a bit minimal, but this can be expanded gradually
with code examples and more details.
Change-Id: I5d285a5a25e8602ac2fdddc84c3fd217e7b77c95
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: If2446073b69c91377f399cfd43506e6a211ac209
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The example implements a simple Wayland extension that doesn't do
anything useful. It contains a custom compositor and a wayland
platform plugin.
Change-Id: I88df4b20f328a32fca33b8d013d253611539526f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Make things compile without pkg-config, remove obsolete bits.
Change-Id: I9adb2653c80d519dad371b9b982826c6c41e3cb5
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/wayland/pure-qml/main.cpp
examples/wayland/pure-qml/qml/Chrome.qml
examples/wayland/pure-qml/qml/main.qml
src/client/qwaylanddnd_p.h
src/compositor/compositor_api/qwaylandquicksurface.cpp
src/compositor/compositor_api/qwaylandsurface_p.h
src/compositor/compositor_api/qwaylandsurfaceitem.cpp
src/compositor/extensions/qwlinputmethodcontext_p.h
src/compositor/hardware_integration/qwlclientbufferintegration_p.h
src/compositor/hardware_integration/qwlclientbufferintegrationfactory_p.h
src/compositor/hardware_integration/qwlclientbufferintegrationplugin_p.h
src/compositor/hardware_integration/qwlhwintegration_p.h
src/compositor/hardware_integration/qwlserverbufferintegrationfactory_p.h
src/compositor/hardware_integration/qwlserverbufferintegrationplugin_p.h
src/compositor/wayland_wrapper/qwlcompositor_p.h
src/compositor/wayland_wrapper/qwldatadevice_p.h
src/compositor/wayland_wrapper/qwldatadevicemanager_p.h
src/compositor/wayland_wrapper/qwldatasource_p.h
src/compositor/wayland_wrapper/qwlextendedsurface_p.h
src/compositor/wayland_wrapper/qwlinputdevice_p.h
src/compositor/wayland_wrapper/qwlinputmethod_p.h
src/compositor/wayland_wrapper/qwlinputpanel_p.h
src/compositor/wayland_wrapper/qwlinputpanelsurface_p.h
src/compositor/wayland_wrapper/qwlkeyboard.cpp
src/compositor/wayland_wrapper/qwlkeyboard_p.h
src/compositor/wayland_wrapper/qwloutput_p.h
src/compositor/wayland_wrapper/qwlpointer_p.h
src/compositor/wayland_wrapper/qwlregion_p.h
src/compositor/wayland_wrapper/qwlshellsurface_p.h
src/compositor/wayland_wrapper/qwlsubsurface_p.h
src/compositor/wayland_wrapper/qwlsurface.cpp
src/compositor/wayland_wrapper/qwlsurface_p.h
src/compositor/wayland_wrapper/qwltextinput_p.h
src/compositor/wayland_wrapper/qwltextinputmanager_p.h
src/compositor/wayland_wrapper/qwltouch_p.h
src/compositor/windowmanagerprotocol/waylandwindowmanagerintegration_p.h
src/imports/compositor/WaylandCursorItem.qml
Change-Id: I4e63ef295b297022d4970b3c68b3d565843086bd
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Id1dd1e4f5a9257e887dee8c966b345ee0588a0ac
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I767239fa6dee8b2132192a1e694eca954b264584
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Idbd0ec7e8b77f6241aa6ac91639d76a0ffe2dae9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Id6e71d8a4bf4acc241861c27c44bd2efbb333917
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I765a606a62442306949c6e8338a8384453a721bd
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I0f56c0ef2f35ada0613c331817d0fd56d186a158
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I8f09f7043337bd2ac8a017702179a71bb037694c
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make it possible that an WaylandOutput item is declared as a child of a
WaylandCompositor item. This is mostly usefull for examples, since
output handling will likely be event driven in a propper compositor
Change-Id: I3238b079e41a49f69cbd9255818588674b364fb2
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't need this abstraction anymore since we don't have global
coordinates in the core api anymore
Change-Id: I553a736a0e71026447d6a0af3f8a64607b8c8f06
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Let the compositor implementation keep all the GUI state.
Change-Id: I73a865fa3407340276d6765e10378b8e23a76fe2
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
...and minor cleanups
Change-Id: I278eb549af49480939973dafbe1c0628fabf16fc
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I7919f7715486fa2d8cfe35c08095f6c33757a515
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also including:
Move windows on alt/meta + mousepress
Send mouse events also when no buttons are pressed
Add cursor support to the QWindow compositor
Implement resize
Change-Id: Ib4b64b2e474e519d2061e65954e53fa9d52fd85c
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|