| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
A QWaylandInputDevice is not actually an input device, but a group of
keyboards, pointer and touch devices.
Change-Id: Ib22f8cc71670cf83c70798d9eb24d48a04398b22
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-53147
Change-Id: I353cf18b9661b5eb2371072f8091dc890fc7fcf0
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I9e656b02e1b820e2257d95948650c541656192b4
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I85e3a6dd98496005c63a88bc0218bc94301692ba
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Complete the API for keyboard rate and delay that was previously
implemented sending the information to clients.
Back then this wasn't possible for lack of Wayland >= 1.6 on
the CI system.
Change-Id: I95bab22bf4eea6549d2f8a762341c6485a24665c
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I30369e22e727487d91ea770259f2a8d96d62b87c
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Wayland clients might implement an older interface version, in that
case we don't want to send unsupported requests.
To ensure that we pick the lower version between the one asked by
the client and the one we actually implement on the server.
Change-Id: I4865780505db171295897fc7f6567c6f88e598fa
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 the name, and make QWaylandExtension a
subclass of QWaylandObject. This way, all extensions
can have extensions of their own, without multiply
inheriting.
Change-Id: Ie06e764412d113f7a62399caa605a48b015c7d24
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@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>
|
|
|
|
|
|
|
|
|
|
| |
This is no longer used for move/resize, and we are going to
introduce a new concept for drag and drop (which stopped working
several changes ago anyway). The old drag and drop code is left
commented out to assist in the new implementation.
Change-Id: I18cb41d04f09d6033d1c9e666a739793fcef494b
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
it could maybe be called automaticKeyboardFocus, but then there are
edgecases like focusOnFirst show which needs to be known
Change-Id: Ied3e9e7a3f51cf3e5a58ace372680bd691bdb62a
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
|
|
|
| |
enable building QtWaylandCompositor by default
Change-Id: I7cf34052b304ca9fef55b7e30ef6a6367b5d75f1
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
| |
Change-Id: I0bbe6dd6bd8e9f6972cc88b832029ac98aa2af49
|
|
|
|
|
|
|
|
|
|
| |
It is the specific compositor application responsibillity to create the
specific extensions. Some of the extensions are picked up with the
QWaylandExtension::findIn(QWaylandExtensionContainer *) function to work
around missing events/apis. It should be a goal not to have these calles
in the base implementation of QWayland[Compositor|Surface|Input..].
Change-Id: Iacd576f2e8a79ca0165b858b1e8f44cddad48d93
|
|
|
|
| |
Change-Id: I77dce1eecdda21f4a9907d1cd7fafe23de326136
|
|
|
|
|
|
|
| |
and add QWaylandInputDevicePrivate. Also make sure noone holds a
reference to the private instance.
Change-Id: Ic2327595d58d6308e1e2699370f53aef47061b04
|
|
|
|
|
|
| |
Embrace PIMPL
Change-Id: I8c8b5971e15c208317ff33231bda1513e7b8d489
|
|
|
|
|
|
|
|
| |
Its enough to have QWaylandSurface and QWaylandSurfacePrivate. Also
don't pass QWaylandSurfacePrivate around, but pass QWaylandSurface and
then use the QWaylandSurfacePrivate::get function.
Change-Id: I915cc9d7b4497ad1c6f1f2dee61d9d0db069ba6b
|
|
|
|
|
|
| |
and rename QWaylandSurfaceItem to QWaylandQuickView
Change-Id: I989b482eb79df06e9f265bc2b0ef6b3dce7509d6
|
|
|
|
|
|
|
| |
This because both the touch interface and pointer interface depends on
it
Change-Id: I64718e0db87085c656250a22107715ddb68bc9ae
|
|
|
|
| |
Change-Id: I60ec2fd9f4afe54198d9c476b28f9f15a661e9ca
|
|
|
|
|
|
|
|
|
|
| |
Its purpose is to make it possible to have multiscreen environments, and
also multiple multioutput environments
It is also an abstraction to make it clear that outputs are arranged in
a 2d space
Change-Id: I418509996a03b2ca1a12aec9c9e25e143a15a10f
|
|
|
|
| |
Change-Id: I713c9ab2f0edaa4346ff021764de6a23201bbf68
|
|
|
|
| |
Change-Id: I84ed248b471464214d935352768f300d4b90dec3
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c
Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows the registration of multiple input devices for the compositor via
private APIs. Since the Qt stack does not support separate input devices
via the QPA, the identification of each device (wl_seat) is left up to
the implementor.
The compositor will identify input event via the QWaylandInputDevice::isOwner
method. Usually this will happen when an item on the UI has received an
event and would like to send it to the client surface. See
QWaylandSurfaceItem for more details.
Includes basic unit tests
Change-Id: I7ee1db49388713bf3076c23cf8f8a165aefc2fe0
Reviewed-by: Mikko Levonmaa <mikko.levonmaa@lge.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
| |
Change-Id: I070f7daec8fb13a7db838b3d0c67e8aebc790a6c
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
|
| |
QtQuick compositors already use a view class (QWaylandSurfaceItem),
so add a new QWaylandSurfaceView, which is subclassed by
QWaylandSurfaceItem, and move the view related methods of QWaylandSurface
there. A QWaylandSurface can have many views.
Change-Id: I7e92fe1f7e9d252f5f40a3097feabb5f3318b03a
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
|
|
|
|
|
|
|
|
|
| |
This adds new API, but does not add a way for the user to set the
keymap. That should be implemented in the compositors.
Change-Id: I28ee7d372f8f578c0d7efb9223cabce49504be1f
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|
|
|
|
|
|
|
|
|
| |
Adds an overload to QWaylandInput::sendFullKeyEvent which allows
specifying the surface to deliver the event to. This also extends
the Qt keyboard extension to allow sending keys to specific windows.
Change-Id: I1b7abdc4d8a30392ef2e7ee5e9af5b3036b23577
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Do not use the shared wayland-server input and focus implementation any
longer. It just makes the code complicate and ugly using C-style APIs
without much benefit and it is much nicer to implement them ourselves
with a Qt API. The shared input and focus code got removed from Wayland
1.2 because of that.
Change-Id: Iab7181e743e7fa26004b0dd93a827dc8f86ca676
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
Currently the QtCompositor library and API do not follow the Qt API
naming conventions. This commit intends to fix these inconsistencies.
filenames start with q
headers containing private API's end in _p
public API classes begin with Q
use the qt namespace macros where necessary
Wayland namespace is now QtWayland
wayland_wrapper classes are now private API's
It's important to make these changes not just for stylistic reasons, but
also because when qmake builds the module in checks for these
conventions to determine how to deploy the include files.
Change-Id: I8bfadeceda92a0f52cb73c704551da75540e7587
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|