| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Menus open up at the right place this way.
Change-Id: Iae18fdcefe33356e9e9ee105b9f5c597bb6c896b
Reviewed-by: Johan Helsing <johan.helsing@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* QWaylandWindowManagerExtension become QWaylandQtWindowManager
* WindowManager become QtWindowManager
Follow naming convention already established for other extensions
like QWaylandWlShell and avoid confusion that might arise with
a name as generic as WindowManager.
Use QWaylandClient rather than wl_client.
Also the Wayland protocol definition has been renamed
to qt-windowmanager.xml
Change-Id: I941621ce229327c21eff9e80c7e92205cc60e8eb
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XdgSurfaceItem and WlShellSurfaceItem have been removed in favor
of the more general ShellSurfaceItem. An XdgSurface or a WlShellSurface
can be assigned to the shellSurface property of a ShellSurfaceItem
and leaves open the possibility for additional shells.
A shared base class for QWaylandXdgSurface and QWaylandWlShellSurface
has been added which has a factory method for creating
a QWaylandQuickShellIntegration for that shell implementation.
The property "shellSurface" on the ShellSurfaceItem allows QML code to
attach to signals regardless of whether it's a WlShell or XdgShell
client. The pure-qml example has been updated to take advantage of this.
Change-Id: I9d3427586e100d6c44a24f319dd8e1486ff062ee
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
| |
Task-number: QTBUG-49809
Change-Id: Id62ddea68c89b6999b66d3df8eeeffd858ae844f
Reviewed-by: Paul Olav Tvete <paul.tvete@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>
|
|
|
|
|
|
|
|
| |
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: I0f56c0ef2f35ada0613c331817d0fd56d186a158
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>
|
|
|
|
|
| |
Change-Id: I7919f7715486fa2d8cfe35c08095f6c33757a515
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
This involves removing:
- pickView and mapView from QWaylandOutput
- requestedPos[X,Y] from QWaylandView
Change-Id: Ie53eef434ac6ae7d0d5474f649f78a59ae857167
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the QWaylandSurface factory function from QWaylandCompositor.
Add a default constructor to QWaylandSurface and a initialize function.
Add som housekeeping code in debug builds that ensures the user calls
initialize.
Add a fallback factory function on the compositor if the user is fine
with getting the default implementation of QWaylandSurface or
QWaylandQuickSurface
Change-Id: Ib9289c323b6723f0d1119a484cf9e0c26c95b549
|
|
|
|
| |
Change-Id: I0bbe6dd6bd8e9f6972cc88b832029ac98aa2af49
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This requires QWaylandOutput to be initialized. This will happend when
the QWaylandCompositor of the QWaylandOutputSpace that is set on the
QWaylandOutput is created. QWaylandCompositor will send or post a Polish
event to the QWaylandOutput which again will call
QWaylandOutput::initialize. This function will create the global that
will be put on the wl_displays registry
This makes it possible to Create WaylandOutputs in QML (see the pure-qml
example) and also gives a
better programming model in C++
Change-Id: Iaf907ae18a283678eda6d04390dc9790ae0bced8
|
|
|
|
|
|
|
|
| |
and:
- add a signal for when it changes
- change default to true
Change-Id: Ifb7d29756f554dbd2a2594c935442ba9f4956c5c
|
|
|
|
| |
Change-Id: Ib2b1ee81a5216e348e6014927c1cc818f848384b
|
|
|
|
|
|
| |
This to make construction look nicer and make them modifyable from QML
Change-Id: I5f5ffffb34f664914cdb531736c42a6873bfe18c
|
|
|
|
| |
Change-Id: I83dceff36d1027b24c1dafb3bc44e07f7502bc54
|
|
|
|
|
|
|
|
| |
since it is not needed anymore, and it is trivial to modify
QWaylandQuickItem in qml to have this behavior as pure-qml's Chrome.qml
shows
Change-Id: I795881fde4ecf3e2ec877222e7283b1052b7c27a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This finaly ties together how to use QWaylandQuickItems with different
shells
It was required to decouple QWaylandView from the QWaylandQuickItem
since QML doesn't play to well with muliple inheritance. The
QWaylandQuickItem can be retrieved from the QWaylandView which is now
conveniently a QObject. Also the QWaylandQuickItem owns the
QWaylandView. This architecture also leaves room for creating a
QWaylandWidget :)
Change-Id: Ib8a00e6f17f0f1bfc3ff244753f021c76db22cb1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is the views that belong to outputs.
This leads to a couple of interesting cases with enter and leave events,
but the implementation says you will get enter events for the first view
of a surface entering an output, and for the last view being removed
from an output.
Also to throttle a surface, there has to be 1 surface which takes care
of this. This is because if multiple views throttle, then the client
might render to quick.
Change-Id: If4bba380fd4d7f506fd769606cbdea4ce58b908d
|
|
|
|
|
|
|
|
| |
This will be readded in a different way. Also, remove the
WaylandSurfaceChrome since it is no longer needed, and just use
WaylandView directly
Change-Id: I8d4a7b2135d9fdaea7dd3fcd729e55cceebf48fb
|
|
|
|
| |
Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
|
|
|
|
|
|
|
|
|
|
| |
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: I99397d1bf794c1fce483cb5d008d7701a32b2b44
|
|
|
|
|
|
|
|
|
| |
and add a property called primaryOutput on the QWaylandSurface.
Also add some bookkeeping in QtWayland::Output so it knows what surfaces
and views it currently holds, sending the enter and leave events
automatically.
Change-Id: Ib6efbc6f8157657fb4451b751bba1cb5345b7906
|
|
It uses the new qml compositor api and implements all the user logic in
qml
Change-Id: Iac5eca61a9ca71c7d760d32d7aae4910ba5465b3
|