| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
this actually includes removing the install targets for the sources -
this is automated now.
Change-Id: I736958d70baabfa4db816abbfc50acacbf2ee23c
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
| |
Change-Id: I24ca4854aa6756f4cea4f4f5a471ffd9bf33c620
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
This fixes a protocol error the compositor would send when a window
changes its parent, because we were creating a new subsurface without
destroying the old one.
Change-Id: I0855d0582153e0aff37be508d9fb43d22c9ad0b5
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
| |
Change-Id: I69c8fa49baebc29d8a22426394ce0a72627b9ad6
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QShapedPixmapWindow is used as a drag-and-drop icon. This caused two roles
(wl_data_device-icon and wl_shell_surface) to be assigned to the same surface,
resulting in a protocol error.
This bug hasn't been encountered before because QShapedPixmapWindow sets
X11BypassWindowManagerHint, which was previously used to determine whether to
create a shell surface or not.
Task-number: QTBUG-52052
Change-Id: I1d79f3ec8ad08e0be1551c39df6232876dc2ac2e
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
|
|
|
|
|
|
|
|
|
| |
The implementation of attached() method was removed in commit 'Fix SHM
drawing logic' (19260d9846861212881e374229798b3863d1a78d) but the
definition in the header file was not.
Change-Id: Ib850bc7101a661882078be95011d75660f621622
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
... or equivalent.
QtBase 5.6 headers already compile that way, so let the other
modules follow suit.
Change-Id: Iddf561087189ece6dd34b42605842dfafdbd8b4e
Task-number: QTBUG-45291
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|\
| |
| |
| | |
Change-Id: If2caca2463ef6815d2cc9a8f05ccd78c867c95d2
|
| |
| |
| |
| |
| |
| |
| | |
qwaylandinputdeviceintegration_p.h:64:85: error: ‘uint32_t’ has not been declared
Change-Id: Ic747cc2ab45e4dc6bb70ffff143843d1ed4a341b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So far QtWayland did not support custom bitmap/pixmap QCursors.
This change adds support for them by creating a QWaylandShmBuffer and
copying the pixmap data into that buffer. The internal API to set
cursors images is changed to not only rely on wl_cursor_image, but also
allow to just set the buffer with a specific size and a hot spot.
The created WaylandShmBuffer is passed around as a shared pointer, so
that it can be automatically cleaned up once the cursor image is no
longer used on any seat.
Task-number: QTBUG-51604
Change-Id: I1f1ee87f03186c3d564468d3e8ea2a3141d7e2fb
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
The code used sizeof(state) when it should have been sizeof(*state).
Change-Id: Id1714a5e90e6c58850023424726de26719a69046
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The old logic didn't care to listen for wl_buffer.release events
so it always drew in the same buffer, potentially resulting in
tearing if the compositor was scanning out the buffer at the same time.
Instead properly cycle between a few buffers and don't reuse the same
one until the release event was received.
The old code also used to throttle the redraws, unless the buffer was
changing, that is unless the window was getting resized. This is now
lost, and no throttling is ever done. Doing it properly, by waiting
for the frame callback before committing the new buffer shows very
noticeable lags with many applications when resizing, because they
paint many times per resize event, so they fall behind the cursor.
A proper fix will be to implement the support for requestUpdate(),
and using it in the applications.
Change-Id: I02732c34769a5c75a6ad68c095bae916e4b274d3
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check the surface hasn't been deleted before initiating the ping so
that an invalid resource isn't dereferenced when printing a warning
after the operation inevitably fails.
Change-Id: I18c82de280d5a7a5339e3179c2bba49800626bb6
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
| |
| |
| |
| |
| | |
Change-Id: If46406b4129b464e8ccfa0b4cf6ff2989402ca74
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
this fixes static builds by ensuring that all dependencies are exported.
Task-number: QTBUG-51071
Change-Id: Ie9e89fa47696244e8ee478ed1a019765c835533e
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ia3dd8627c1b96a88d308dc7fa85d936f809c7856
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Shell surfaces are now created for windows with BypassWindowManager
set, unless the environment variable
QT_WAYLAND_USE_BYPASSWINDOWMANAGERHINT is also set.
This means that in case you need a window to not create a wayland
shell_surface (perhaps because you do not want to use wl_shell or
xdg_shell), you can set the environment variable and get the same
behavior as before. Meaning the surfaces of windows with the flag set
will not be assigned a role.
Task-number: QTBUG-49272
Change-Id: Idf969540497d6b4e54395b97472d99d2e068be93
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|/
|
|
| |
Change-Id: I33fa7c30e17b1c07c2b79e60fce8adb7f60d5514
|
|
|
|
|
| |
Change-Id: I3ebcb49a4acf230b9515c0317aab2307dcb9270b
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Let Ctrl+A cause a key event with text Ctrl+A (0x01), like we do on
the other platforms. Previously we would use 'A', which would confuse
some applications.
Task-number: QTBUG-50398
Change-Id: Ie3def4bd9c96e538b2572b88fae029d347e08814
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was too aggressive, if there is a queued buffer the current one
needs to be invalidated or the compositor will hold references to
both buffers while the scene graph is stopped which will block
clients in eglSwapBuffers.
This reverts commit 438063af85d0999f9dead6f04a3285edb175e24c.
Change-Id: I3247cfc94e12322fcccc07b5dd64146b055ab431
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
contains(QT_CONFIG, egl) and CONFIG += egl is the only sane way to test
for and pull in EGL headers and libs. This is particularly important when
trying to be robust and guard against half-broken sysroots on embedded
where a naive PKGCONFIG += egl breaks.
Also add an EGL_WAYLAND_BUFFER_WL define to keep wayland-egl compiling.
We are not testing for that in any config tests may cause a failure in sysroots
that have parts of Mesa thrown in but pick ip an older EGL header from the
vendor's driver.
Change-Id: I7b7e6a7a91e78dbda5b6954ad08761298c538efc
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Directly calling eglCreateGlobalImageBRCM and friends is not ideal due to the
messy RPi distro setups: shipping Mesa (sw rasterizer only) in standard locations
may cause picking up those EGL/GLES libs instead of the Broadcom ones from /opt/vc
when building Qt. While this is something that should be fixed in the sysroot (since
it is a problem at runtime anyway), let's make life easier by resolving via
eglGetProcAddress, which is the right approach in any case.
Change-Id: I73f7698b638691d97743a6f819bc7c8ee6ebd245
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
| |
qwaylandinputcontext.cpp:57:16: warning: unused parameter 'sym' [-Wunused-parameter]
qwaylanddatadevice.cpp:173:135: warning: 'dragData' may be used uninitialized in this function [-Wmaybe-uninitialized]
Change-Id: Id654360fd9b7fdb572565ad39b664af3355b5e79
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the compositor sends events to us while the main thread is blocked
the socket notifier in the events thread would keep sending out the
activated() signal, but no events would actually be read until the
main thread starts to run again. That causes the event thread to keep
queueing new events, and so allocating memory, potentially forever.
This patch fixes the issue in maybe a bit radical way, that is by removing
the event thread. The socket notifier now runs in the main thread so it
will block if the events are not being read.
Nowadays there is no real reason to keep the event thread around, as every
thread that needs to receive wayland events can dispatch them on its own,
we don't need a central dispatcher thread anymore.
Change-Id: Ib7885e4b038b82719d78d193f465618a72cbe6af
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Also add unit tests
Change-Id: I66de887607f73b318884e4a35f18510b90cf0315
Task-number: QTBUG-47357
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
| |
Allows to get the wl_shell_surface for a QWindow, if it exists.
Change-Id: I16b1c578a1c605e58c96e94ae55a3331ecfa353d
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
|
| |
With commit c55a36cb9015cf1eebd49eaa5b1b4f4ec9b28451 in qtbase the
QSimpleDrag code changed in a way that caused a deadlock due to
drawing a window without a role. However, thanks to that we can
now remove that start/cancel hack and simplify the code.
Change-Id: Icba6e7c9c4927855e48fb21632db1a10332c4ffb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I47d7f7d2cb589df8087c23eda60137e7b263f11f
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Wayland on NVIDIA. Tested with a Jetson TK1 Pro and Vibrante Linux.
With just the hw integration no compositors would work out of the box
since EGL_KHR_stream_consumer_gltexture only allows connecting to the
texture bound to GL_TEXTURE_EXTERNAL_OES, meaning that assumptions about
the target always being GL_TEXTURE_2D break horribly both in C++ and in
shader code.
In addition, buffers have to be extended with an additional updateTexture()
operation as EGLStream requires to call ConsumerAcquire on every
frame. Previously there was no concept of this as calling
createTexture() on attach() was sufficient.
Qt Quick bits are omitted since the refactored compositor API is pretty
different. This means that QML compositors will not currently function
in this environment.
The qwindow-compositor example is enhanced to support the external
texture target, but this won't apply for the refactored branch
either. It is provided for testing purposes for the time being, and to
show how C++ compositors can support different texture targets and
correct operation with EGLStreams.
Done-with: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Change-Id: I0e209fc0cbcf435cca83528d938eb50e4bdceb82
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a QtWayland compositor gives focus to a surface right after its
creation during the client startup, the keyboard resource may not be
bound yet by the client.
In this case, the surface is correctly marked as focused, but the
keyboard resource is never marked as focused, and thus no keys are
ever sent to the client.
To fix this, the focusResource is updated if needed after wl_keyboard
is bound.
This can be reproduced with weston-simple-im (patched to use wl_shell
instead of xdg_shell) and qml-compositor, modified to enable
TextInputExtension and call takeFocus() at the end of windowAdded().
Change-Id: I551cb5bc56c05a1e5187b23108f4ef80468782dc
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
| |
When no keyboard resource is bound, the destruction handler for the
focused surface was not called, and the pointers to focused objects
were not reset. Thus the m_focus surface pointer could become invalid.
Change-Id: Iee404219304ae7b2bae87131ab140ab134e98118
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
| |
Change-Id: I9217c633bcbecd330715b6dbc654245b3fb739a8
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I2a7b82bd2705919a91492edfccac02f4d8fc2c9b
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I70c01453b3939d1d645d626ae84c21ab4c9d267a
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: Ib3c5bec85a09d92e37a3af8e1c749a80cb40c056
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I4f83fdb59a60bb1f1720047f0b442d70192be5da
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I75eda7e766182025b54f8df851ff1d5a72eefb17
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The unconditional grab from 498946d6e9c20d4e8af28ee942de5bf4cf5eaf78
did not have a corresponding ungrab. That only worked well as long as
there were only QWaylandSurfaceItems in the scene. Each of them just
stole the grab for itself at the first TouchBegin. Regular QML items
(some people have UI in the compositor process...) do not participate
in that mutual stealing so they'd sometimes not get any touch events
because the events still went to the last QWaylandSurfaceItem to
receive a TouchBegin.
Note: The grab would also go away if touchEvent() didn't accept()
the event. Without the accept(),
QQuickWindowPrivate::translateTouchToMouse()
would be called at TouchEnd and do the ungrab.
Change-Id: Ia7d1b15fff366542d382eb97494b1e43dedb65a4
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When calling ::exit() the socket notifier in the events thread may still
fire before the process actually exits, using objects that are being
destroyed and resulting in a segfault.
Stop the events thread before calling ::exit().
Change-Id: I187762da2a7efa83db1e62b0e28dfab89f478c7d
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When hiding a window we attach a NULL buffer, which means that any
frame callback that is still waiting will not be sent. In the SHM
case we just destroy it, but we cannot do that in the EGL case, since
we don't have a hold of it. So destroy the EGLSurface, which will
in turn destroy the callback.
Task-number: QTBUG-46921
Change-Id: I20e0d1ca7b53fb88096101d46979996dd944d429
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|/ /
| |
| |
| |
| | |
Change-Id: I19fd0bc7a56b4baa5b6d40836d5f0401a3b11c49
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Handle transition from Normal to Maximize then Fullscreen and back to Maximized.
Avoid to maximize if no requested size
The protocol file is a raw copy of
Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.8.0
Minor Nitpick fixes (arrays of bytes, conditionnal or test, c++ function call)
Task-number: QTBUG-47327
Change-Id: Ib508e2166cc1337fd93454f30814136839cffa29
(cherry picked from commit 6906a6445c0cbf9d11f8d5d32b181f558a2292c9)
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
initialization order.
qwaylandxdgsurface.cpp: In constructor 'QtWaylandClient::QWaylandXdgSurface::QWaylandXdgSurface(xdg_surface*, QtWaylandClient::QWaylandWindow*)':
qwaylandxdgsurface.cpp:55:31: warning: base 'QtWayland::xdg_surface' will be initialized after [-Wreorder]
qwaylandxdgsurface.cpp:55:31: warning: base 'QtWaylandClient::QWaylandShellSurface' [-Wreorder]
qwaylandxdgsurface.cpp:48:1: warning: when initialized here [-Wreorder]
qwaylandwlshellsurface.cpp: In constructor 'QtWaylandClient::QWaylandWlShellSurface::QWaylandWlShellSurface(wl_shell_surface*, QtWaylandClient::QWaylandWindow*)':
qwaylandwlshellsurface.cpp:55:31: warning: base 'QtWayland::wl_shell_surface' will be initialized after [-Wreorder]
qwaylandwlshellsurface.cpp:55:31: warning: base 'QtWaylandClient::QWaylandShellSurface' [-Wreorder]
qwaylandwlshellsurface.cpp:49:1: warning: when initialized here [-Wreorder]
Change-Id: If7ed49fa6f788db7407b5ee82aa252e19e2d4747
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The texture often represents the last reference to the last buffer of
a destroyed surface and invalidating releases that reference which
shortcuts any attempt to keep the buffer alive with QWaylandUnmapLock.
Change-Id: I4641a87a32f8639c3ffb6c3b5dafd21c77bbb2c1
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
| |
| |
| |
| |
| | |
Change-Id: I55961a32a17dbf35b380f8a4b75433a6b694dd4a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandwindow.cpp
Change-Id: I80ead87f3e1f36299b1bf9cc9c7db6cd48c0e86f
|
| |
| |
| |
| |
| |
| |
| | |
Instead throw a warning and keep using the old one.
Change-Id: I1533b3930d4d8c884db922b0d6dd567ef7e4f67c
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a transient parent of a surface is destroyed before the surface
itself, reset all references to that parent surface.
Change-Id: I5b748099d8a5502632d8846c5de5381b5f28b665
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|