Details
-
Task
-
Resolution: Done
-
P1: Critical
-
None
-
None
Description
Finish the work in the wip_compositor_api branch. Known issues:
Input classes need API review.
QTBUG-49750
Popups need work.
Should be possible to make it work out of the box for the QWaylandQuickShellSurfaceItem
Buffer handling
We have seen some odd buffering on the cursor surface in the Qml compositors. Basically the cursor doesn't release buffers. This is not a problem for ordinary surfaces.
Destruction
Generate destroy functions in QtWaylandScanner: When we destroy a QWaylandInputDevice we should remove the global.
Transformations
QWaylandQuickItem needs to transform the mouseEvents to the surface coordinate system when the item does not follow the size of the surface.
Drag and drop
wl_drag_source cancel needs to be sent for sources not longer valid. This is behavior which is not implemented in Weston, but defined in the protocol. If we don't do this, we leak sources, and it will fix state handling on the client side.
Automatic socket name detection
qtcompositor should use wl_display_add_socket_auto()
Output
Decide whether we keep refresh rate in Hz (and use qreal) or mHz (and use qint32) as does Wayland internally.
Port old patch for modes, see QTBUG-49814.
Logging
Use logging categories in both client and server bits.
Categories granularity: client (should fall under the qpa namespace), compositor, hardwareintegration, inputmethod
Window properties
The current implementation is ugly.
We need type-safe properties.
API review comments
Comments from API review 2016-06-29
- The extensions [ ... ] list property is not necessary: extensions should just auto-install on parent [DONE]
- QWaylandView does not need to be visible to Qt Quick. QWaylandQuickItem should have a bufferLocked property [DONE]
- QWaylandMouseTracker should use the upcoming mouse/touch handling API
- Functions that send events should be named sendFooBarEvent()
- Signals fired when requests are received from the client should be named fooBarRequested() (or fooBarRequestReceived???)
- Avoid abbreviations like "shm"
- Be consistent in grammatical form (adjective vs. verb, verb tenses) and capitalization
- Properties that have setters must handle changing the value dynamically (if not possible: qWarning() and keep the old value)
- Provide declarative APIs for Qt Quick instead of imperative APIs, if possible
Attachments
Issue Links
- relates to
-
QTBUG-48715 Create client-side API for Wayland extensions
-
- Closed
-