summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Let the underlying system decide the default keymap parametersv5.5.0-beta1Giulio Camuffo2015-04-241-2/+2
| | | | | | | | | | By passing "" instead of hardcoded defaults we let xkbcommon decide what the default parameters for the keymap should be. The user can change that with environment variables, as described here: http://xkbcommon.org/doc/current/structxkb__rule__names.html Change-Id: I8fb037201aeababaa0aa4755cae339ae3d9800b9 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Use a FontSmoothingGamma value of 1.0Giulio Camuffo2015-04-241-0/+7
| | | | | | | This is what the xcb plugin does, be consistent with it. Change-Id: I5befa2de3ff514ca0c9196eb7137682586cec126 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Use defines instead of hardcoded stringsGiulio Camuffo2015-04-241-6/+4
| | | | | | Change-Id: Id382a1e39f2c052fbfeb96caa9b01becb31e81c9 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Do not manually update the xkb stateGiulio Camuffo2015-04-241-1/+0
| | | | | | | | | xkb_state_update_key() is not supposed to be used in apps with a master process, such as wayland clients, which use xkb_state_update_mask() with the state serialized by the master. Change-Id: Ie51a39ca0c567c54072b221d1ab8cf7b8ea15c55 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Move surfaces to outputsPier Luigi Fiorini2015-04-2115-50/+274
| | | | | | | | | Moving surfaces to belong to a specific output. Surfaces can be viewed on a different output anyway. Change-Id: I9ef76300f85190d84b83431374e76e581786e4e7 Done-with: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* Add client side support for media keysGiulio Camuffo2015-04-161-0/+7
| | | | | | | | | | Unfortunately we don't have a keysym in libxkbcommon for PlayPause, we only have Play. We're going to pretend XKB_KEY_XF86AudioPlay is really PlayPause since that is what is most common. Change-Id: I1a75d8b5b0ea360e0f62eb7a93004ba3fababfa8 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-1518-34/+50
|\ | | | | | | | | | | | | | | Conflicts: src/client/qwaylandshmbackingstore.cpp src/client/qwaylandwindow.cpp Change-Id: I795fd08f0fc5d3cb5ed55bf16e724f66b7567723
| * brcm-egl: Avoid conflicts with GLES3v5.4.2Pier Luigi Fiorini2015-04-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qopengl.h includes GLES3 which conflicts with GLES2 declarations. Might happen because Qt is built with desktop GL. This patch fixes the following build error. In file included from ../../../../hardwareintegration/compositor/brcm-egl/brcmeglintegration.cpp:61:0: /opt/vc/include/GLES2/gl2.h:600:125: error: conflicting declaration of C function 'void glShaderSource(GLuint, GLsizei, const GLchar**, const GLint*)' GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length); ^ In file included from /usr/include/qt/QtGui/qopengl.h:97:0, from ../../../../../include/QtCompositor/5.5.0/QtCompositor/private/../../../../../src/compositor/hardware_integration/qwlclientbufferintegration_p.h:46, from ../../../../../include/QtCompositor/5.5.0/QtCompositor/private/qwlclientbufferintegration_p.h:1, from ../../../../hardwareintegration/compositor/brcm-egl/brcmeglintegration.h:44, from ../../../../hardwareintegration/compositor/brcm-egl/brcmeglintegration.cpp:44: /usr/include/GLES3/gl3.h:475:29: note: previous declaration 'void glShaderSource(GLuint, GLsizei, const GLchar* const*, const GLint*)' GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); Change-Id: I49ae11457b70b05f740ce70b8c1cfa5d6aa554bb Reviewed-by: Olivier Blin <qt@blino.org> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Remove .desktop suffix to appIdPier Luigi Fiorini2015-04-101-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The appId is the desktop entry identifier. According to the desktop entry specifications [1], for applications the part of the name should follow the reverse DNS convention (see [2]). To do this we use the application domain if available, otherwise for lack of information we fall back to the executable base name like other toolkits such as Gtk+ do. [1] http://standards.freedesktop.org/desktop-entry-spec/latest/ [2] http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s02.html Change-Id: I181ad23a9736844e07e8060d78e756a943c27f67 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Don't handle mouse events in decos if buttons were pressed in the content areaGiulio Camuffo2015-04-081-1/+2
| | | | | | | | | | | | | | | | This fixes the decorations stealing the mouse events when going outside the content area. Change-Id: I8f3592fbda6b9c1da6498d74820a73be11c6999d Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Fix build for brcm-egl integrationPier Luigi Fiorini2015-03-301-3/+0
| | | | | | | | | | | | Change-Id: I5540dfb8e115ab6b3c90bb78618b277783a912f3 Reviewed-by: Olivier Blin <qt@blino.org> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * brcm-egl: Disambiguate wl_registryPier Luigi Fiorini2015-03-301-0/+1
| | | | | | | | | | | | | | | | | | Include wayland-client.h to disambiguate between QtWaylandClient::wl_registry and wl_registry. Change-Id: Idf33fd56a6b2c2436f5cbabc953980d05826ebba Reviewed-by: Olivier Blin <qt@blino.org> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Drop unused mScreensInitialized variable in QWaylandDisplayOlivier Blin2015-03-291-1/+0
| | | | | | | | | | | | | | | | | | Unused since commit 78a701272e68d4f0ab95df4062374b8d34ef2919: Made wayland plugin single-threaded, yay :) Change-Id: I1fae78d77179feaac79f5dba6dcad8084e3e97fa Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Fix shm buffers init and destruction on failureOlivier Blin2015-03-272-5/+12
| | | | | | | | | | | | | | | | | | | | Some pointers need to be initialized in QWaylandBuffer and QWaylandShmBuffer, and checked at destruction. This avoids crashes when shm surface creation fails. Change-Id: I6f6afa3cc6c67533b5130700cbc27b271764109e Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Fix BrcmBuffer buildOlivier Blin2015-03-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | It got broken after commit b332630c86014eada07990acf66c13e000b3482b: Fix generated code for interface names not starting with qt_ or wl_ Like done in xcompositebuffer.h Change-Id: Ib9b44536d4214737d8d68d62c8512e18a80d5b5d Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Remove useless EGL linking in pluginsOlivier Blin2015-03-275-10/+0
| | | | | | | | | | | | | | | | EGL libs are already linked from the hardwareintegration pri file, and the plugins do not make direct use of any EGL symbol. Change-Id: If6ecfee16e8c9d8fee67f03419941ced92d1eff8 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Make QWaylandShellSurface a QObject to allow build without RTTIOlivier Blin2015-03-274-7/+11
| | | | | | | | | | | | | | | | | | | | | | dynamic_cast can not be used when RTTI is disabled, so make QWaylandShellSurface a QObject. QWaylandWlShellSurface and QWaylandXdgSurface must also inherit from QWaylandShellSurface first, to properly inherit from QObject. Change-Id: I2addb8105a0fe61615d4bc905414f7ee7277029f Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * ShellSurface: fix leak of QWaylandSurfaceItem on destructionOlivier Blin2015-03-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The QWaylandSurfaceView/QWaylandSurfaceItem object is never destroyed from ShellSurface. This was also leaking the underlying GL texture. Task-number: QTBUG-41180 Change-Id: If74c956075744115b8b5a7e8cb89b584714ec7e6 Done-with: Nicolas Marc <nicolas.marc@softathome.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
| * Use Qt foreach instead of C++11 specific range-base for loopOlivier Blin2015-03-241-1/+1
| | | | | | | | | | | | | | To fix build with compilers without C++11 support. Change-Id: If5a5d5d874b196f60bcc5b7bd5a543b58f9c89a3 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
| * Fix build with gcc <= 4.5Olivier Blin2015-03-201-1/+1
| | | | | | | | | | | | | | nullptr is not defined with gcc <= 4.5, use 0 instead. Change-Id: I90d9170e57258f26b8ba7770a957a135539364de Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Disable -Wcast-qual in qtwaylandv5.5.0-alpha1Thiago Macieira2015-03-103-0/+9
| | | | | | | | | | | | | | | | | | We have a lot of generated C source code that needs to do casting and C doesn't have const_cast, so the -Wcast-qual option produces a lot of noise. Let's make sure it isn't enabled in qmake.conf or qt_common.prf. Change-Id: Iee8cbc07c4434ce9b560ffff13c9635861a8eca9 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Send done and scale events only when clients support wl_output >= 2Pier Luigi Fiorini2015-03-101-8/+14
| | | | | | | | | | | | | | | | Those events were added with wl_output version 2 and we can't send them to clients supporting wl_output version 1. Change-Id: I4a673b8cc0476675532d31b4391a537d8473987b Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Check the surface input mask for hover eventsGiulio Camuffo2015-03-102-9/+8
| | | | | | | | | | | | | | | | We also remove the hoverLeaveEvent() reimplementation, as it serves no real purpose. Change-Id: Ic218be864564032c38f91d3946ccfdf2ccfc0d25 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-201-2/+9
|\| | | | | | | Change-Id: I03fd08fc0576ffac813f64905c23de4d65e67433
| * Run eventDispatcher in QWaylandDisplay::forceRoundTripMartin Gräßlin2015-02-171-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the application uses QCoreApplication::setEventDispatcher before the QGuiApplication is created the blocking roundtrip might block the application indefinitely. This can happen if the application starts a Wayland server in the same process before the QGuiApplication is created. And the QtWayland plugin connects to this server. In this case a roundtrip blocks as the Wayland server cannot process the events the QWaylandDisplay is waiting for. By running the event dispatcher manually and using the pending variant for dispatching the Wayland event queue, the application can be kept alive. Change-Id: I9c36fccbae8921e1ae9a0a8b7f460520b1b65d5c Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Update copyright headersJani Heikkinen2015-02-17277-4028/+2724
| | | | | | | | | | | | | | | | | | 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>
* | Fix buildGiulio Camuffo2015-02-171-0/+2
| | | | | | | | | | Change-Id: I790e9bfbcffc7458e2a46f2da32dcbde0c6bffe8 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Add a way to get the native hardware integration buffer for a sufaceGiulio Camuffo2015-02-172-0/+6
| | | | | | | | | | | | | | | | | | | | When running on wayland-egl it will be a EGLImageKHR. The compositor can then use it to pass it to something like a hardware compositor, or a parent compositor using the egl extension EGL_WL_create_wayland_buffer_from_image. Change-Id: I61a165c9af444509f28ab92d00be146e2e78eb52 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Add a integration hook to get the wayland queue used by the QPA pluginGiulio Camuffo2015-02-161-0/+2
| | | | | | | | | | | | | | This comes handy for clients directly using raw wayland objects. Change-Id: Ie526ac7b25a6c6a34ce61699103e612616bffbb8 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-02-1614-31/+112
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylanddataoffer.cpp src/client/qwaylanddisplay.cpp src/client/qwaylandinputdevice.cpp src/client/qwaylandwindow.cpp src/compositor/compositor_api/qwaylandsurfaceitem.cpp Change-Id: I2eae0fd43a71fbfd7c907ca715707a26f3c134c5
| * Sanitize popup behavior.Laszlo Agocs2015-02-136-21/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Popups are pretty important for widget apps. Menus, combobox dropdows and such are all popups. Currently they are completely borked when activated via keyboard or touch. This is because of the bizarre set_popup request in the protocol, and Weston's current implementation, that ignore the fact that a popup can be opened as a result of a keyboard event too or may not originate from an input event at all. Pass the last input device and serial we have seen, regardless of the type, by tracking it globally in the QWaylandDisplay. With this patch menus and such will not freeze the application anymore when activated with keyboard or touch without sending a mouse event to the window first. The behavior is still broken in some ways, especially with keyboard due to immediately getting a popup_done, but at least applications remain usable. Task-number: QTBUG-41142 Task-number: QTBUG-41147 Change-Id: I18de501004ae8a62ff8667e72225d08c2d3ba491 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Fix popup menus with no parent windowsGiulio Camuffo2015-02-111-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QMenu API doesn't play well with Wayland. You can do: QMenu menu; menu.popup(someGlobalPos); which is completely broken on wayland. If some popup window doesn't have a transient parent use the current focus window for that. Fixes right-click popups in qdbusviewer and other apps. Change-Id: I3227f4ec27431ca8ec156971cbfdbf1e848a0527 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Fix copying text to non-qt clientsGiulio Camuffo2015-02-072-0/+5
| | | | | | | | | | | | | | | | | | Like we do for pasting, set the mime type of text to "text/plain;charset=utf-8" too besides "text/plain". This allows copying text to clients such as weston example clients or Xwayland. Change-Id: I8a24f32d93e438f16db662e7c09b09ddd7578768 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Do not send invisible key charactersGiulio Camuffo2015-02-051-1/+2
| | | | | | | | | | | | | | | | | | xkb_keysym_to_utf32() will return 0 if the keysym does not have a unicode representation. Task-number: QTBUG-44012 Change-Id: I85a13b58c7f0b9765c7d67db6568a90629bcfbfa Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Fix deadlock when starting a dragGiulio Camuffo2015-02-051-1/+8
| | | | | | | | | | | | Change-Id: Ie2fdc56bffb97ce04ffad11ea7a7686dc09a06cc Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Make all the screens virtual siblingsGiulio Camuffo2015-02-022-0/+9
| | | | | | | | | | | | | | | | Wayland outputs fit the definition of virtual sibling screens so make the platform screen subclass so. Change-Id: Id3f2592653f6309406185589f70127f2b74065ac Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Send mouse events with the correct modifiersGiulio Camuffo2015-01-291-5/+5
| | | | | | | | | | Change-Id: I33da2681bc2315b3dc7de16fa80c45e26a478caa Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
| * Fix pasting from sources advertising the utf8 charsetGiulio Camuffo2015-01-291-4/+21
| | | | | | | | | | | | | | | | | | Some clients use "text/plain;charset=utf8" as the mimetype for the clipboard instead of just "text/plain". Since we support Utf8 accept it as a valid type. Change-Id: Icd540f0ff507ed9917b374f3b40fbdc259ce9ee2 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
| * Make sure we send a valid initial resizeGiulio Camuffo2015-01-271-2/+2
| | | | | | | | | | Change-Id: Ib9a0152f83af433354d32ef4a8a233e5551ded8c Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Send a touch cancel event when we stop getting inputGiulio Camuffo2015-01-202-0/+15
| | | | | | | | | | | | | | | | | | | | Take a grab when a touch gesture begins and send a touch cancel event when we lose the grab. That makes sure that we don't leave the client with a broken input state if some item like Flickable steals the events from the QWaylandSurfaceItem. Change-Id: I1e07836041a25cdbabff0d8559c4e06cbac27e7e Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Unset the pointer focus if we're deleting the view holding itGiulio Camuffo2015-01-191-0/+6
| | | | | | | | | | Change-Id: I546c6ab2a060d76de18330766a0b2fba419589bd Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Fix QtCompositor compilationGiulio Camuffo2015-02-081-1/+1
| | | | | | | | | | | | | | | | | | This is a quick fix, a proper fix needs the ongoing effort to make surfaces and outputs aware of each other. Change-Id: I61faca9929a448208e82574c5c4d963c271f7e68 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Add QWaylandOutput to support multiple outputsPier Luigi Fiorini2015-02-0830-230/+1065
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new QWaylandOutput class to support multiple outputs. Each QWaylandOutput need a window for rendering. Rename OutputGlobal to Output and Output to OutputResource. Add support for physical size, mode and available geometry. Use better defaults for geometry and refreshRate from the QWindow if available. A window is no longer passed to QWaylandCompositor constructor and all output related methods are removed, however one or more outputs are required for hardware integration. QWaylandCompositor returns a list of outputs and offers an API to add or remove outputs. Hardware integrations can run headless. Change-Id: I742996571ddb78328f7bfa4f79b25a81995279e1 Done-with: Jan Arne Petersen <jan.petersen@kdab.com> Done-with: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Add a SHM format converter classJorgen Lind2015-02-054-2/+152
| | | | | | | | | | | | | | | | | | This class helps keeing one lookuptable for server and client It relies on that wayland-(client|server)-protocol.h being included before the qwaylandshmformathelper.h Change-Id: I12158126a80c8fef5c52427d35792f33716020f1 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Update the protocol to 1.4 and raise the required libwayland versionGiulio Camuffo2015-02-0310-22/+360
| | | | | | | | | | | | | | | | Wayland 1.4 introduces wl_subsurface which is quite an important addition. Change-Id: I48375f60adce556c9989872319f4d073e4a7b13b Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Remove unused headerPier Luigi Fiorini2015-01-301-1/+0
| | | | | | | | | | | | | | Remove qwaylandcompositor_p.h leftover. Change-Id: I2ede92db92894f14301c89cc28c896cfdc6d3563 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Namespace the platform pluginsGiulio Camuffo2015-01-29132-26/+575
| | | | | | | | | | | | | | | | | | | | | | | | There currently is a QWaylandInputDevice class both in the wayland QPA plugin and in the QtCompositor API. This causes the qwindow-compositor example to crash when running nested in a wayland session due to a mismatch between the two classes. By namespacing all the plugin code we make sure that name clashes will not happen anymore. Change-Id: I17497cff697599200bea68bf01dfde474526390f Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-196-6/+19
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I65c8503cf632699129ebb6b4f01721b74be78def
| * Recreate the surface textures after the scenegraph invalidationv5.4.1Giulio Camuffo2015-01-151-0/+1
| | | | | | | | | | | | | | | | | | When the scenegraph is invalidated we delete the surfaces texture. Set the update flag to true so that when the scene graph is again initialized and starts to draw a frame the textures will be recreated. Change-Id: I2fb171e4bed517e48fa2311c22651150f3e605f7 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Set the composing string of the wayland input methodGiulio Camuffo2015-01-132-0/+17
| | | | | | | | | | | | Task-number: QTBUG-43346 Change-Id: I9bc6d804ddca59a7a0173b8f0d3ec2f268fe9a59 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>