summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
Commit message (Collapse)AuthorAgeFilesLines
* Don't set platform input context if it's not properly created.Samuel Rødal2011-08-162-4/+7
| | | | | | | | | | Prevent xcb applications from failing to launch when IBus is not initialized correctly. Change-Id: I8425403e02d0eb5401f8d8bb0d012b53ab9400d9 Reviewed-on: http://codereview.qt.nokia.com/3044 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* Don't try to use IBUS when dbus is not configured.Samuel Rødal2011-08-102-1/+5
| | | | | | | Change-Id: I315ef3d834e923b649e4306866666549852c254f Reviewed-on: http://codereview.qt.nokia.com/2825 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* Removed unnecessary debug output in xcb plugin.Samuel Rødal2011-08-102-6/+0
| | | | | | | Change-Id: I3b354a8649971a5d8c68a0b4f6bbdf6475116d65 Reviewed-on: http://codereview.qt.nokia.com/2808 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* build without dbusMatthew Cattell2011-08-091-0/+2
| | | | | | | Change-Id: I5af35ff094bea08c83f0e65e72efa59adac2581c Reviewed-on: http://codereview.qt.nokia.com/2790 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Removed Q_XCB_NOOP's from QGLXContext.Samuel Rødal2011-08-091-13/+1
| | | | | | | | | | QGLXContext might be used from different threads than the gui thread, so don't trigger any XCB logging from there. Change-Id: I96a51ebf6987749d209b447c9ae2ac8b7298bd4c Reviewed-on: http://codereview.qt.nokia.com/2782 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Properly initialize window properties in xcb plugin.Samuel Rødal2011-08-051-2/+3
| | | | | | | | | Since 833090abb9a277 these need to be called manually. Change-Id: Iabc263d499e724d4d39c3d8350563feb57749879 Reviewed-on: http://codereview.qt.nokia.com/2704 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Make QPlatformIntegration not have a factory for eventdispatcherJørgen Lind2011-07-284-24/+18
| | | | | | | | | but rather an accessor for the guiThreadEventDispatcher Change-Id: I1b9ba14efc9f338c5a67e3e24ddb0caf76c07413 Reviewed-on: http://codereview.qt.nokia.com/2321 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Added workable QScreen API on top of QPlatformScreen.Samuel Rødal2011-07-259-197/+189
| | | | | | | | | | | | | | | | | | | | | QPlatformIntegration::screens() no longer has to be implemented, implementations should call QPlatformIntegration::screenAdded() for each screen instead. This is for being able to support adding screens at run-time later on, by connecting it to a signal in QGuiApplication. The QGuiGLContext API has changed a bit, by not sending in all the parameters in the constructor but instead having a create() function. The createPlatformGLContext() factory in QPlatformIntegration takes a QGuiGLContext * instead of a QSurfaceFormat and a share context, similar to how the window and backing store factory functions work. The XCB plugin has experimental support for connecting to multiple X displays simultaneously, creating one or more QScreen for each. Change-Id: I248a22a4fd3481280710110272c04a30a8021e8f Reviewed-on: http://codereview.qt.nokia.com/2103 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Handle failed SHM attach in XCB backing store.Samuel Rødal2011-07-211-15/+39
| | | | | | | Change-Id: I5f97c0c6030d13b68cfc17d19ba969cd78f79c3f Reviewed-on: http://codereview.qt.nokia.com/1943 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Rename QPixmapData to QPlatformPixmap.Samuel Rødal2011-07-192-3/+3
| | | | | | | | | Makes the API symmetric with the other Lighthouse APIs. Change-Id: I8a399f3c968ea35d4624711b31f2ac5bb94b7893 Reviewed-on: http://codereview.qt.nokia.com/1735 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* ibus IM support for the xcb backendLars Knoll2011-06-274-0/+35
| | | | | | | | Test code to check input methods using the ibus backend used on e.g. ubuntu. The IM code is not very sophisticated, but enough to test that things are working. Reviewed-by: Jørgen Lind
* Get declarative and wayland EGL backend working for Qt compositor.Samuel Rødal2011-06-232-5/+24
|
* Make xcb work again after event dispatcher changes.Morten Johan Sorvig2011-06-223-9/+15
| | | | | | The platform plugin/event dispatcher creation order has now been reversed and the event dispatcher cannot be accessed during plugin construciton.
* Add libxcb-xfixes0-dev to xcb depsMorten Johan Sorvig2011-06-221-1/+1
|
* Add lighthouse event dispatcher API.Morten Sorvig2011-06-222-0/+8
| | | | | | | | | | Platform plugin creation is now moved forward in order to have a platform plugin instance at event dispatcher creation time. Plugins are now responsible for implementing PlatformIntegration::createEventDispatcher and returning an QAbstractEventDispatcher subclass.
* OpenGL API refactor.Samuel Rødal2011-06-2110-67/+160
| | | | | | Rename QGuiGLFormat to QSurfaceFormat, and make QWindow sub-class of QSurface and QPlatformWindow sub-class of QPlatformSurface, instead of having QPlatformGLSurface accessor in QWindow.
* Rename QWindowSurface -> QBackingStore and split into platform / public.Samuel Rødal2011-06-216-36/+33
| | | | Also get rid of GL window surface and related classes.
* Compile fixes.Samuel Rødal2011-06-211-1/+1
|
* Don't crash if Clipboard and Selection hold the same mimedateLars Knoll2011-06-201-1/+2
| | | | | | | | Cliboard and Selection can hold the same QMimeData object. Don't delete the mimedata in this case before when clearing only one of them. Reviewed-by: Samuel
* use selection changed events from XFixesLars Knoll2011-06-204-22/+58
| | | | | | | | properly initialize the XFixes extension and then use the selection changed events to notify Qt apps. Reviewed-by: Samuel
* Enhance Xcb clipboard codeLars Knoll2011-06-203-77/+149
| | | | | | | | | | Some cleanup on the data structures. Properly implement support for timestamps on each selection. Transfer selections to the clipboard manager on exit if it exists. Properly clear our selection when X11 asks us to do so.
* Remove leftover xkb member variable in QXcbKeyboard.Laszlo Agocs2011-06-171-3/+0
|
* Autodetect the xcb backendJørgen Lind2011-06-101-5/+8
|
* Use XCB_GRAVITY_STATIC in XCB plugin for frame independent geometry.Samuel Rødal2011-06-101-0/+2
|
* Added frameMargins() API and support in XCB plugin.Samuel Rødal2011-06-102-0/+97
|
* Fix QtPlatformSupport when compiling with glx and xcbJørgen Lind2011-06-102-3/+3
|
* Update dependency list in xcb READMEJørgen Lind2011-06-101-1/+1
|
* QtPlatformSupport: A helper library for platform pluginsJørgen Lind2011-06-104-17/+11
| | | | | | | | QtPlatformSupport is a static library. Platform plugins are meant to link against this library to pull in dependencies such as fontengines and convenience functions for finding the right GL configs. The linker will only pull in the symbols used, so the size of the library doesn't really matter
* QWindowContext / QWindowFormat refactor.Samuel Rødal2011-06-107-67/+85
| | | | | | | | | | | | | To enable having a single GL context used for multiple drawables we need to de-couple the context class a bit more from the window class in the plugin API. Now contexts are created stand-alone based on a GL format and a share context, and when calling makeCurrent() a desired surface is specified. This maps well to GLX, EGL, Cocoa, AGL, and WGL, which all support this use case. QWindowContext is renamed to QGuiGLContext, and QWindowFormat is renamed to QGuiGLFormat. We have the ability to introduce a pbuffer or similar other offscreen GL drawable abstraction in the future.
* Use XLookupString for translating key events.Laszlo Agocs2011-06-093-35/+82
| | | | | | | | | There seems to be no easy equivalent in the XCB world and the fallback we currently have is really incomplete. Hence we will call XLookupString with a fake XKeyEvent if XCB_USE_XLIB is enabled. Reviewed-by: Samuel Rødal
* Bail out from cursor creation when malloc fails.Laszlo Agocs2011-06-091-0/+6
|
* Get modifier mapping using standard X, no need for libxkbcommon here.Laszlo Agocs2011-06-092-33/+52
| | | | Reviewed-by: Samuel Rødal
* Create custom cursors via XRender.Laszlo Agocs2011-06-096-15/+120
| | | | Reviewed-by: Samuel Rødal
* Cursor support in xcb plug-in.Laszlo Agocs2011-06-0812-119/+912
| | | | | | | Custom cursor pixmaps with depth greater than 1 are not yet supported and will be converted to monochrome always. Reviewed-by: Samuel Rødal
* cosmetic changesLars Knoll2011-06-082-5/+5
|
* Fix behaviour after WM_TAKE_FOCUSLars Knoll2011-06-081-1/+0
| | | | | | | We should not call requestActivateWindow() in reaction to WM_TAKE_FOCUS. Looks like it should only be done if the focus should in fact go to a modal child of the widget.
* revert accidental commitLars Knoll2011-06-071-1/+1
|
* remove unused codeLars Knoll2011-06-071-118/+0
|
* cleanups codeLars Knoll2011-06-079-166/+147
| | | | | | | Make QXcbClipboard and QXcbDrag a QXcbObject to simplify the code. Use the predefined atoms in xproto.h instead of our own defines.
* Fix some remaining issues with DnDLars Knoll2011-06-074-93/+10
| | | | | | | | | Do not set the event mask of the window we drop onto to NO_EVENT. Always use the clipboards requestor window to convert selections. Reviewed-by: Samuel
* add WM support classLars Knoll2011-06-079-15/+285
| | | | | | | | | Add a QXcbWMSupport class to better integrate with NET_WM compliant window managers. Suppport NET_WM_USER_TIME on windows. Reviewed-by: Samuel
* Implement XDnD in the xcb pluginLars Knoll2011-06-076-698/+601
| | | | | | | | | Ported most of the code to support dragging from qdnd_x11.cpp to xcb. Some features are still not working 100% correct, but it's becoming usable. Reviewed-by: Samuel
* X11 DnD implementationLars Knoll2011-06-0710-26/+1883
| | | | | | | | | | | Initial code for DnD on X11. Only Xdnd based, Motif DnD is being ignored. The code is currently limited to dropping stuff onto the application. Starting drags is not yet implemented. Reviewed-by: Samuel
* Made tst_QWidget::updateWhileMinimized() pass.Samuel Rødal2011-06-063-2/+15
| | | | | | | | | | This requires adding a couple of window system interface events, namely Map, Unmap, and Expose. When a widget is minimized on X11 it is unmapped, and thus update requests should not be delivered. Instead the event will delivered when the widget is mapped, which causes an Expose event to be sent. The Unmap and Expose event thus need to be handled in QWidgetWindow, and Map is also added for the purpose of API symmetry (and for future needs).
* Make building of platform plugins indifferent if its out of sourceJørgen Lind2011-06-061-14/+8
| | | | | This requires some source files to be shipped with the Qt install They are now copied into QT_INSTALL_DATA/platform
* Avoid setting the active window to null when there is a FocusIn queued.Laszlo Agocs2011-06-063-1/+40
|
* Implemented QXcbScreen::topLevelAt(const QPoint &p).Samuel Rødal2011-06-064-3/+52
| | | | This makes the tst_QWidget::widgetAt() auto-test pass.
* Make XCB plugin work better in combination with auto-tests.Samuel Rødal2011-06-061-0/+1
| | | | | | | | | When an auto-test calls processEvents() indirectly via QTest::qWait(), QAbstractEventDispatcher::aboutToBlock() doesn't get emitted since the processEvents() implementation gets called without the QEventLoop::WaitForMoreEvents flag set. Since the auto-tests depend on all events getting delivered, we need to process the XCB events on awake() as well.
* Basic QDesktopWidget support.Samuel Rødal2011-06-031-0/+9
| | | | | Makes it possible to use grabWindow on the desktop widget with the xcb plugin, which gives us a few more passing tests in tst_QWidget.
* Prevent crash in QXcbIntegration::grabWindow().Samuel Rødal2011-06-031-2/+1
| | | | Copy the image explicitly before calling QPixmap::fromImage().