Laszlo Agocs [Mon, 18 Jun 2012 13:57:57 +0000 (16:57 +0300)]
Map function keys properly
Change-Id: I3a13e0f05a3504e4d7b7f13c29ace139f88041e5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Donald Carr [Wed, 6 Jun 2012 20:10:11 +0000 (20:10 +0000)]
Introduce standard pkg-config usage
Use our own qualified pkg-config mkspec feature rather than directly
executing the system binary
Change-Id: I4b162cd8d2d9a8bd5d0b3adb9ca935df9ff96a69
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Mon, 11 Jun 2012 08:36:43 +0000 (11:36 +0300)]
Reset keyboard focus when a surface is destroyed
Only pointer focus was reset, resulting in undefined behavior when
acessing keyboardFocus() after all surfaces had gone away.
Change-Id: I8c9f71e2eadbf69de1dc7856f4a05dd309ab95eb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Gunnar Sletta [Mon, 11 Jun 2012 10:09:04 +0000 (12:09 +0200)]
Decouple application activation from onscreen_visibility.
The application will be made active when it has focus. This
is already handled in the qwaylandinputdevice.cpp's handling
of input which posts window activation to Qt and internally
Qt will send application activation when a window is in
fact active.
Change-Id: I5adb4c76830096bb362489b7de18ed188fbed05d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Wed, 6 Jun 2012 11:04:30 +0000 (13:04 +0200)]
Rebase Add-thread-affinity-to-wayland-clients.patch
The patch now applies cleanly to the tested wayland sha.
Change-Id: I7e24fcd34a5a53816d6a75611cd99a0ce9179e20
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Wed, 6 Jun 2012 13:51:27 +0000 (15:51 +0200)]
Fix "make install" to not build examples and tests
Before this commit, make install would always end up building
the examples and tests, even if qtbase was configured not to.
Change-Id: I898e1125a343a8e2749a055f4bd886256026de9d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Wed, 6 Jun 2012 13:30:31 +0000 (15:30 +0200)]
Don't build qwidget compositor when qt is configured with -no-widgets
Change-Id: Ie7952d83527015996fe678ccd68d2984b0119858
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Wed, 6 Jun 2012 10:22:49 +0000 (12:22 +0200)]
Implemented orientationUpdateMask support in WaylandSurface.
Used to find out whether the client wants orientation updates.
Change-Id: Ibefc98df7b346cbfe13cb021c932dab3d6c5d758
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Andy Nichols [Tue, 5 Jun 2012 13:41:59 +0000 (15:41 +0200)]
A few fixes to prevent compositor crashes
If a client application exits abruptly while in direct
rendering mode, the surface buffer could reference a null buffer.
We now check for this before attempting to use such a surface
buffer. It is also possible for WaylandSurfaceNode::preprocess to
be called after WaylandSurfaceItem has called surfaceDestroyed, so
now we check for a valid surface in preprocess as well.
Change-Id: Ibca71349b7a24687944f8b6cd505941b580e0c2a
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Tue, 5 Jun 2012 09:14:22 +0000 (12:14 +0300)]
Avoid burning cpu in qwindow-compositor with glx and nvidia
Change-Id: I2da069c7fd12b26b2811b59ec66418865bcbe962
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Andy Nichols [Mon, 4 Jun 2012 11:10:51 +0000 (13:10 +0200)]
Bind texture in WaylandSurfaceItem::updateTexture
This avoids a race condition where we delete the
resource behind the texture before we get a chance
to upload it.
Change-Id: I19d126ecf3fcb5141c6630cd8e783647ea6a779c
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Sat, 2 Jun 2012 21:16:17 +0000 (00:16 +0300)]
Bump sha
keyboard_modifiers is not yet sent from server side (in qt-compositor)
on keyboard focus, this needs to be added later. Unfortunately the event
is somewhat libxkbcommon-specific...
Also move/removed some unused variables.
Change-Id: Id971bdc3a0e217740593d23145fc4ebb27d99a06
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Fri, 1 Jun 2012 07:01:12 +0000 (10:01 +0300)]
Fix no-xkb build
Change-Id: I02b49ae845921d6b0eafc367849a99a0a7702ee9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Stephen Kelly [Wed, 30 May 2012 16:50:04 +0000 (18:50 +0200)]
Use QPointer instead of QWeakPointer for tracking QObjects.
Change-Id: I842906ffcc37e6649d947cef3a0d9ea942b14d05
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Thomas Senyk [Tue, 29 May 2012 12:15:20 +0000 (14:15 +0200)]
added two missing #include <unistd.h> (for int close(int);)
Change-Id: I9f32108a9a5d758c8dd23be5d72900e7ea7c271b
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Gunnar Sletta [Thu, 24 May 2012 15:44:51 +0000 (17:44 +0200)]
Make sendOnScreenVisibility invokable
Change-Id: I78b3576c60b02fc62df1201bc797b08dcd536b50
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Thu, 24 May 2012 08:44:51 +0000 (10:44 +0200)]
Fixed client side issues due to threading bugs.
Our threading support depends on the hardware integration and on support
in libwayland.
Change-Id: Ic69bc4616e279c1986576d8c034db52402cb9c41
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Samuel Rødal [Thu, 24 May 2012 11:25:07 +0000 (13:25 +0200)]
Fixed qml-compositor warning and sizing when running as windowed.
Change-Id: Ic5b58cb1761e74408bd44a048e487617d59ee72d
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Laszlo Agocs [Tue, 22 May 2012 17:15:02 +0000 (20:15 +0300)]
Reset the keyboard and pointer focus when attaching a null buffer
Improve QMenu/QMenuBar usability with keyboard: We really do not want
the keyboard focus to remain on hidden windows. For example when
opening a menu and pressing escape the focus must not be left on the
(existing, but hidden) menu widget's window.
This isn't perfect (ideally the compositor implementations should be
able to control this somehow by deciding to which window return the
focus to when the focused window goes away) but is better than nothing
and is identical to what Weston does.
Change-Id: Iad963182b74903cc3843460641611467db3c02ef
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Sat, 19 May 2012 12:08:25 +0000 (14:08 +0200)]
Added config.test for brcm_egl.
Change-Id: Ia103645ba0823dc94b42578de1f1e39e7dd84956
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 08:46:01 +0000 (11:46 +0300)]
Use a lookup table instead of an incomplete switch when mapping keys
Change-Id: Ie9b8325a2235ec1c2fe988f0e81efd241b1ef21b
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Samuel Rødal [Fri, 18 May 2012 20:17:50 +0000 (22:17 +0200)]
Added maximize and window closing behavior to qml-compositor.
Change-Id: I13ebfa400d8ce669bf45ee533a2aa9a7190421d5
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 10:24:10 +0000 (13:24 +0300)]
Position windows with transient parents properly
Both the transient position calculation and the global mouse
position had to be fixed.
Combo box contents, menus, etc. will now all appear at the
correct position. With qwindow-compositor they will
keep the proper position even when the parent is moved
via the decoration. Not sure how this could be achieved
with weston as there is no notification when the window
is dragged with Super+Mouse. Nevertheless the initial
position will be correct.
Change-Id: I66eca9faa930af71b9b540018d5057af7f5f22e5
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 17:31:10 +0000 (20:31 +0300)]
qwindow-compositor: Avoid stuck alt when running non-fullscreen
Change-Id: I9d2129e2e746704f1fc0e8f6243fe3b8b7224456
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 16:45:53 +0000 (19:45 +0300)]
Fix clipboard crash in clients with weston
The offer passed to selection() can be null. This case was not handled
before because it never happens with qt-compositor. Copy/paste is still
not ok with weston but at least the apps won't crash.
Change-Id: I91d529e9d8b179724637d05bb9b95ec5843bda2b
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 16:31:36 +0000 (19:31 +0300)]
Fix stuck modifier keys
Storing the modifier state as a member is not needed.
Updating it in the keyboard_enter does not make sense as the
xkb state can only change in the key event handler.
The logic for updating the modifiers was somewhat broken.
Change-Id: I7d9378af6f3775a6954a9747cab0e93a549fa62a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 09:26:23 +0000 (12:26 +0300)]
Make axis events compatible with Weston
From now on mouse wheel events will work both with qt-compositor and
Weston.
Change-Id: I54876cd45f3530ea9b4b7962ca52c0974e1cb2d5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Sat, 19 May 2012 08:01:02 +0000 (11:01 +0300)]
Register QTouchDevice only when the seat is touch-capable
Change-Id: Ibddfaa2f07b9cd2eae2e133b01d4e5669ced2af8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Thu, 17 May 2012 10:03:57 +0000 (13:03 +0300)]
Migrate from wl_input_device to wl_seat
Change-Id: I0d218c32478c2acce4d7012bdb26b0cde50ee633
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Fri, 18 May 2012 21:32:36 +0000 (23:32 +0200)]
Implemented graceful quitting of clients.
Send a quit message to let the client shut down cleanly.
Change-Id: I5f99c9b92341fdb5f1b171f6fe36f26bf8a47026
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Tue, 15 May 2012 13:05:47 +0000 (15:05 +0200)]
BRCM EGL integration to handle eglCreateGlobalImageBRCM.
For hardware accelerated multiprocess compositing on the raspberry pi.
Change-Id: Ieb46aa7306587f89fea87098227a520f18f959a7
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Samuel Rødal [Fri, 18 May 2012 07:36:15 +0000 (09:36 +0200)]
Fixed context sharing in wayland_egl backend.
Properly implement isSharing() and isValid().
Change-Id: I7ec9bd8a1e6d4af87a418568f1d5d18a9153eafc
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Andy Nichols [Fri, 11 May 2012 12:39:36 +0000 (14:39 +0200)]
Add a custom WaylandSurfaceNode with its own materials
With the previous WaylandSurfaceNode based on QSGSimpleTextureNode,
QSGTexture's created from SHM buffers would always have and use their
alpha channels, despite the useTextureAlpha flag being set to false. Now
when the useTextureAlpha flag is set to false, we use a material that
ignores the textures alpha channel.
Change-Id: I9cc33939f37856495f8885357f49de5ffdd81d1f
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Wed, 2 May 2012 13:30:06 +0000 (15:30 +0200)]
Fix case where we get a new damage event too soon
As in when we get a damage event between when updatePaintNode calls
updateTexture, and WaylandSurfaceNode::preprocess is called.
Change-Id: Ib953ea6ff6c5e1c0239b734940dcf6fc39d3bb27
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Wed, 25 Apr 2012 14:48:04 +0000 (16:48 +0200)]
Give texture ownership to scenegraph in WaylandSurfaceItem
Change-Id: Ia40d73e11d54b96e27e65224d8fab6d17c5997b9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Thu, 17 May 2012 09:25:13 +0000 (12:25 +0300)]
Store the input device in the touch extension
Implicit sharing is nice but not doing anything is better
Change-Id: I2ae753e749c1b7d7e1dce78dd59a084ce8e4e836
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Wed, 16 May 2012 19:44:47 +0000 (21:44 +0200)]
Fixed inverted textures in qml-compositor.
qml-compositor now shows applications the same way as
qwindow-compositor.
Change-Id: If5e53863969830cbd22916e50447b4f05d0a245a
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Wed, 16 May 2012 18:53:54 +0000 (20:53 +0200)]
Properly bind to the yInverted property in qml-compositor.
Change-Id: I1260ce2e0f711dc1140b7030e4941159d9eae03c
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Wed, 16 May 2012 16:45:34 +0000 (18:45 +0200)]
Fixed qml-compositor and made it properly installable without a qrc.
Change-Id: I40936865453392dc90b03f67220f70480c0eae56
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Mon, 14 May 2012 18:51:04 +0000 (20:51 +0200)]
Build without hw integration.
Change-Id: I011d0e9af8082570b29e9836df40d719bb5e96a6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Laszlo Agocs [Fri, 11 May 2012 11:18:15 +0000 (14:18 +0300)]
Remove unnecessary display_sync and use the safer pattern in xcomposite
and QWaylandDataOffer. No more annoying "server sent delete_id for
live object" messages.
Change-Id: Ibc3736cd752bf52823a0ae0ea536c9faf5663987
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sun, 13 May 2012 15:03:47 +0000 (18:03 +0300)]
Call set_toplevel properly to fix apps on weston
Due to a misplaced else branch set_toplevel was not called at
all. This resulted in not setting up the surface properly in Weston
(no output was assigned), leading to not sending any frame callbacks
to the apps which then got to wait forever in waitForFrameSync().
Change-Id: I37d7b53a8cca59be71fe358543a488382cb0d4dd
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Fri, 11 May 2012 12:00:56 +0000 (15:00 +0300)]
Disable some debug prints in clipboard
It is not desirable to have these printed in each and every app that
uses the clipboard, especially now that the selection handling is
relatively stable.
Change-Id: Idf6bab915fd9a4096ca77743d597b106267b99be
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Fri, 11 May 2012 17:16:39 +0000 (20:16 +0300)]
Yet another xkbcommon API change
Change-Id: I7ca4bf170cd6adb5b371c3c040ed35387876d0e8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Fri, 11 May 2012 05:56:06 +0000 (08:56 +0300)]
Do not assert in pointer and keyboard enter
Handle the case of null surface gracefully. It can be null if the
surface is destroyed on client side and the object is in zombie state
still.
Change-Id: Ife67180e6405a521562a43c24d377559d7848b6f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Thu, 10 May 2012 12:19:04 +0000 (15:19 +0300)]
Make sure the pointer focus is really reset when destroying
Using the grab interface introduced an issue which crashes the
compositor quite often when running widget apps.
Change-Id: I74b64fb7b18ec510773b3b533a3c778be7173db4
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Thu, 10 May 2012 11:23:54 +0000 (14:23 +0300)]
Add wheel event support
Change-Id: Id827485138758ccb4c0db420559b2b9af5c45bbc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Thu, 10 May 2012 11:00:08 +0000 (14:00 +0300)]
Do not crash all the time with shm apps
Change-Id: Iea42adf18cbd724f1f9dc19ec1d1f6baeff07d97
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Paul Olav Tvete [Thu, 10 May 2012 15:50:12 +0000 (17:50 +0200)]
Inform the platform plugin when direct rendering is active
Change-Id: I58f7e65dc755c99f5bb83dae2c68254727653a1c
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Samuel Rødal [Fri, 4 May 2012 14:31:52 +0000 (16:31 +0200)]
Implemented refresh rate support.
Implements QWaylandScreen::refreshRate() based on the wl_output mode
information we get from the compositor.
In the compositor, adds API to override the refresh rate, with the
default set to whatever QScreen reports on the compositor-side.
Change-Id: I5f5175f2498940875c6ec68d29d25cf5993a1e65
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Laszlo Agocs [Wed, 9 May 2012 08:25:44 +0000 (11:25 +0300)]
Start using the new wl_fixed_t type properly
The mouse and touch coordinates cannot just be treated as integers
anymore, they need to be converted from/to double using the helper
functions. Some necessary QPoint -> QPointF changes have also been
made.
For the Qt-specific touch extension we will not switch to wl_fixed_t
though. This is because the precision is unfortunately quite small
(factor of 256 vs. 10000).
Change-Id: I23deaaffe478a39495b12d336985bc62e38a6af4
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Wed, 9 May 2012 08:28:01 +0000 (11:28 +0300)]
Remove notes about enabling the touch extension in qwindow-compositor
It is all automatic nowadays.
Change-Id: I7b8f0c1716a910624ac31bd31832fb50418f48fb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Tue, 8 May 2012 12:27:24 +0000 (15:27 +0300)]
Add known-good libxkbcommon sha
Change-Id: Ia576c0fce44f60a8f0ccd217e456148647776ec8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Tue, 8 May 2012 11:59:22 +0000 (14:59 +0300)]
Compile with new xkbcommon API
Change-Id: Ie3f45a1e624cae3abb71d85c7ea8107b0f6b710c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Tue, 8 May 2012 09:41:30 +0000 (12:41 +0300)]
Update to wayland head
Change-Id: Ie012861bc40e3bc448d85c9d8c27f798434020ed
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Tue, 8 May 2012 13:50:44 +0000 (16:50 +0300)]
Do not lose window flags set before creating the platform window
Change-Id: I2dcce0143f9b10c07a62217a6df110fa12e280b8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Girish Ramakrishnan [Tue, 8 May 2012 07:18:48 +0000 (00:18 -0700)]
Adapt to _qpa file rename in qtbase.
qtbase change
36547f4eff44361f7a6acd0cff107c0e47561f93
renamed qpa headers.
Change-Id: I39b0f636bd69cfe1b4e0f4e1d2419148d83433ca
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Tue, 8 May 2012 07:53:17 +0000 (09:53 +0200)]
Fixed warnings in qwaylanddecoration.*
Change-Id: I05ca556b3bb0452f3cbf9d678092e0432b2d24b5
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Sun, 6 May 2012 19:37:06 +0000 (21:37 +0200)]
QWindow::visible() -> QWindow::isVisible() compile fix
Change-Id: I3157b7444f260e5413683496238467fca8e7a015
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Thiago Macieira [Thu, 3 May 2012 15:12:58 +0000 (17:12 +0200)]
Change uses of {to,from}Ascii to {to,from}Latin1
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.
Task-number: QTBUG-21872
Change-Id: I70205b0d86451d31e81a4be4a521e454e1eff83f
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Jørgen Lind [Tue, 24 Apr 2012 12:25:36 +0000 (14:25 +0200)]
Make SurfaceBuffer::handle return something sensible
take 2
Change-Id: I4acd03e8e1cb5d77c877ce49d5b9256c94aeb310
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Thu, 3 May 2012 09:32:31 +0000 (12:32 +0300)]
Allow selection to be set when having no surfaces at all
Having no surface will mean no keyboard focus, yet apps are free to
use QClipboard at any time.
Change-Id: I7383bf82480b8036940e1f01fa1b429f8a500ab9
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Mon, 30 Apr 2012 09:37:10 +0000 (12:37 +0300)]
Clean up initialization in touch extension
Change-Id: I6e51bf6a243c1e64823a467d8acef0670ca98511
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Samuel Rødal [Mon, 30 Apr 2012 12:45:19 +0000 (14:45 +0200)]
Fixed crashes and missing textures in WaylandSurfaceItem.
There might not always be a node created, so move the ownership of the
QSGTexture to the texture provider, which we now unconditionally create.
Change-Id: Ie9d6e846961ee468323f8acf731704b4ef313396
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Paul Olav Tvete [Thu, 26 Apr 2012 11:31:22 +0000 (13:31 +0200)]
Fix potential race condition
The node lives in the render thread, while the item lives in the
GUI thread. They are only synchronized during updatePaintNode().
This patch fixes two race conditons: 1. the texture might be deleted
while the render thread is using it; 2. the item might be deleted before
WaylandSurfaceNode::preprocess() accesses it.
Change-Id: I19bcba3af8bca68c8b9bf42ae8c15537ce7cebcf
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Laszlo Agocs [Thu, 26 Apr 2012 08:11:50 +0000 (11:11 +0300)]
Pass device capabilities to client in the touch extension
Assuming that all capabilities are available is not a good idea.
Change-Id: I06c0f6c14583e7a25d4a07058976ea347e2dc8fa
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Jørgen Lind [Tue, 24 Apr 2012 11:37:52 +0000 (13:37 +0200)]
Give "something" for the handle of a shm sufracebuffer
Change-Id: I91647bd515a1497ae999b3f493d60b3250727b67
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Jørgen Lind [Mon, 23 Apr 2012 10:21:29 +0000 (12:21 +0200)]
Fix warnings in compositor and 1 wl_resource_send event
Change-Id: I3eb46559c6b19abcc625cd09c8d2921956fc8ec9
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Jørgen Lind [Thu, 19 Apr 2012 20:51:28 +0000 (22:51 +0200)]
Fix compositor crash when closing windows with subsurfaces
Change-Id: I91b93cbd1ffcce6f60e44600a02f14f59813fccc
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Thiago Macieira [Wed, 18 Apr 2012 13:17:59 +0000 (15:17 +0200)]
Don't crash if no extended window extension is present
The extension is not standardised in Wayland, so it's very likely it
is not present (for example, when running applications under Weston).
Change-Id: I998af153e9abad6b165fb9d21a0014f64993d71a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Sun, 22 Apr 2012 08:31:47 +0000 (11:31 +0300)]
Do not delete extended output instances twice
No need to destroy in Output dtor, delete is already called in
ExtendedOutput::destroy_resource. This prevents crashing when exiting
the compositor.
Change-Id: I2558ee012be56da055dbefbb474c0124681321ba
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Fri, 20 Apr 2012 10:53:47 +0000 (13:53 +0300)]
Send expose from qwindow-compositor
Otherwise apps that (correctly) only start rendering on QEvent::Expose
will not render at all due to not receiving the event.
Turns out calling sendOnScreenVisibilityChange() is not that simple:
It does nothing until the extendedsurface instance is created and that
happens only after a roundtrip to the client. Therefore the compositor
listens to a new signal in WaylandSurface that indicates when the
extendedsurface-related functions become functional.
Change-Id: I9fdac4a98e2ad5d8c913c2a7aeef5b313f27c50a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Fri, 20 Apr 2012 10:14:11 +0000 (13:14 +0300)]
Do not render in qwindow-compositor before expose
Change-Id: I0016a9969004252be3a5978e0ab4155b4d883682
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Hannu Lyytinen [Wed, 18 Apr 2012 20:14:47 +0000 (23:14 +0300)]
Sync up with the latest wayland developments.
This commit makes the qtwayland module compatible with
wayland sha1
677c5180e67be18b7a0867fafb7f205b57a6e9ff.
Change-Id: I5af0510034b7e4a038313b80f1f6e0b18fa48eb3
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Thu, 19 Apr 2012 07:02:42 +0000 (09:02 +0200)]
Fix compilation against latest qtbase.
Change-Id: Ifebba587327a984e688825fda2ca2414ce19ba21
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Gunnar Sletta [Mon, 16 Apr 2012 15:08:13 +0000 (17:08 +0200)]
Do not send expose event for already exposed windows
Change-Id: Ic725856f88db475d808f0bfa661cf3f7a4dccc10
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Mon, 16 Apr 2012 17:30:04 +0000 (19:30 +0200)]
Implement nativeBufferLocking
This is needed to be able to post directly to the framebuffer.
Change-Id: I6d19a6c8d9736a513a22dfa71358e6c4c7968e15
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Laszlo Agocs [Fri, 13 Apr 2012 10:58:05 +0000 (13:58 +0300)]
Decorations: Make it possible to move windows with transient parent
This was not working previously due to not updating the offset.
Change-Id: I0a8db17a1eabeb6139129386675b271f9e1b8f22
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Fri, 13 Apr 2012 09:22:14 +0000 (12:22 +0300)]
Do not assert when closing dialogs
The leave event may arrive after the window is gone, resulting in a
null surface. The callback should do nothing in this case.
Change-Id: I36ec4cb1615f518de57b7de98206cdb8986405e4
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Fri, 13 Apr 2012 08:57:22 +0000 (11:57 +0300)]
Do not crash when closing pop-ups in widget apps.
The shm frame callback has to be destroyed otherwise the callback will
occur after the dtor. Also, start using the previously unused 'window'
variable in the callback.
Change-Id: Iace09ae981344dcbe4112f49fcd19491963e4668
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Samuel Rødal [Fri, 13 Apr 2012 07:42:55 +0000 (09:42 +0200)]
Implement nativeResourceForIntegration() to get the display.
Make it possible to get the display without a surface handle.
Change-Id: I9d0a2bcb4515b927f440902ad14e59f3506b84de
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Jørgen Lind [Mon, 16 Apr 2012 17:28:06 +0000 (19:28 +0200)]
Add missing return statement
Change-Id: Ib95dc8ae0d9bbc2e9e06db95dd63ec8ad2d173e0
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Jørgen Lind [Mon, 16 Apr 2012 06:04:29 +0000 (08:04 +0200)]
Make qml compositor resize to window
Change-Id: I014250f968003fa8f9e14e962edcca581ed2e5d8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Wed, 11 Apr 2012 15:15:55 +0000 (17:15 +0200)]
Updated SHA-1 in wayland_sha1.txt to one against which qtwayland builds.
Prevents following error:
wayland-util.h:152: error: ‘size_t’ does not name a type
Some <string.h> includes are also not necessary any more.
Change-Id: I0846948ba32d32521b0749b616eea3cad0ed3383
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Samuel Rødal [Wed, 11 Apr 2012 15:31:40 +0000 (17:31 +0200)]
Fixed xcomposite_share compile errors.
Change-Id: I1fac804abcb09bd760246c95a961a2d5b91de03a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Jørgen Lind [Mon, 13 Feb 2012 09:23:41 +0000 (10:23 +0100)]
Client side decoration
Something is alot better than nothing :)
This gives window decorations for QWidgets and other applications that
use QBackingStore
Change-Id: Ic748ee1df88236b20416029e20e26532f7fb4476
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Tue, 10 Apr 2012 13:28:54 +0000 (15:28 +0200)]
Add public api to retrieve struct wl_display *
Change-Id: I3e1b77419152cf1fbec64e517cf817f0d4a39b66
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Mon, 9 Apr 2012 21:44:28 +0000 (23:44 +0200)]
Make windowcompositor actually eat events in the event filter
Change-Id: I946aa90eb52751471470185a39f044ac23d53100
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Sat, 4 Feb 2012 11:02:42 +0000 (12:02 +0100)]
Fix QWindow Compositors input handling
Change-Id: I500c0a8e824abcf9a1e7662e1bd030ecc1b85170
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Sat, 4 Feb 2012 11:01:03 +0000 (12:01 +0100)]
Implement so that Compositors can use the wl_pointer_grab interface
Change-Id: Idaed835ef25a820cba388831c9ecdcf0f5de20f2
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Mon, 9 Apr 2012 21:38:44 +0000 (23:38 +0200)]
Don't use poor mans inheritance for waylandobject
We'r programming in C++ afterall :)
This will let us use virtual functions in subclasses and multiple
inheritance.
Change-Id: I69647fa3197cbb33fb70e771470d7af07f8011f5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Jørgen Lind [Fri, 6 Apr 2012 11:35:43 +0000 (13:35 +0200)]
Update wayland_sha1 and implement buffer_pool interface
Change-Id: I0628a7655a6deb061a5d0b6c6304c89d8655cf11
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Laszlo Agocs [Tue, 3 Apr 2012 09:06:26 +0000 (12:06 +0300)]
Emit clipboard changed signal
The signal was never emitted. The setNewClipboardMimeData() function
was not in use at all. The function is now removed and the signals are
emitted properly in all cases.
Change-Id: Iec42acab8e7d90084c836fa27a79982482ad8078
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Andy Nichols [Fri, 30 Mar 2012 13:17:25 +0000 (15:17 +0200)]
Fixed mockshell error in client auto test
Change-Id: Ibcb6bd807d281fbc14c35c98f4dabd4d7f82077b
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Samuel Rødal [Thu, 29 Mar 2012 07:26:05 +0000 (09:26 +0200)]
Implemented QDesktopServices in wayland plugin.
Change-Id: Idc9158b4e8158fa9e95dbb11701fc9032bb64b68
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Thu, 29 Mar 2012 11:56:38 +0000 (13:56 +0200)]
Introduced WaylandClient API to keep track of clients.
Makes it easier to keep track of which surfaces belong to a given
client, and the client associated with a given surface. WaylandClient is
an opaque type, representing an underlying wl_client *.
Change-Id: If21a2e02eb13a860e6ac641875bdcca67a53fdf5
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Thu, 29 Mar 2012 09:04:27 +0000 (11:04 +0200)]
Fixed leaking of ExtendedOutput objects in the compositor.
Need to properly free them when the corresponding resource is destroyed.
Change-Id: I1680a7a8b598986aace942ce647cc0f80d4c022f
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Tue, 27 Mar 2012 11:16:36 +0000 (13:16 +0200)]
Prevented crash and missing animation for shm clients.
Do the delayed attach _before_ we call handleExposeEvent(), which
might in turn lead to a damage being called before any buffer is
attached.
Change-Id: I55ef4f0de1b3ec201e727cebc52cfd891963b2b4
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Samuel Rødal [Wed, 28 Mar 2012 15:15:23 +0000 (17:15 +0200)]
Properly report content orientation changes in the compositor.
Change-Id: I9a65299c140c645edc05bdddb92e792e3d57275a
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Samuel Rødal [Wed, 28 Mar 2012 12:24:30 +0000 (14:24 +0200)]
Don't initialize QRegion with an int.
Using an int probably makes it use the QPolygon constructor with the int
treated as a size, which is not what we want.
Change-Id: Id382d5ebf15c8260b55d51c5b566e5e3ed054585
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>