summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
Commit message (Collapse)AuthorAgeFilesLines
* xcb: Don't try to detect cases where the WM restricts geometry changesTor Arne Vestbø2015-12-141-8/+5
| | | | | | | | | This caused issues in upstream tests that didn't expect to have their geometry requests not being respected by the WM. Task-number: QTBUG-49912 Change-Id: Iec99f341d81488de6026f04c99dff45a0d3f8587 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* xcb: Use a placeholder QScreen when there are no outputs connectedBłażej Szczygieł2015-12-116-171/+210
| | | | | | | | | | | | | | | | | | | | | | If no screens are available, windows could disappear, could stop rendering graphics, or the application could crash. This is a real use case in several scenarios: with x11vnc, when all monitors are physically disconnected from a desktop machine, or in some cases even when the monitor sleeps. Now when the last screen is disconnected, it is transformed into a fake screen. When a physical screen appears, the fake QScreen is transformed into a representation of the physical screen. Every virtual desktop has its own fake screen, and primary screens must belong to the primary virtual desktop. It fixes updating screen geometry on temporarily disabled screens in the middle of the mode switch. Expected results: Windows don't disappear, the application doesn't crash, and QMenu is displayed on the appropriate screen. This reverts patch 51ada7734ad780178ecced11e0dff454dfc2e5f2 Change-Id: I6e8eb682b0c8425d08ffdaecbd4c6c7700c914b4 Task-number: QTBUG-42985 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* xcb: Don't cache the screen for a windowAlexander Volkov2015-12-112-12/+6
| | | | | | | | | | | | | | | | | | | | | | | QXcbWindow::m_xcbScreen was introduced in 4e1b09fa8ff1a9ab42c0a29a2efe1ae7f4700d71 (Keep screen geometries from overlapping) to map the window geometry for the right screen, because it wasn't possible to rely on QPlatformWindow::screen(). But we don't need it since a705b4ec1f6f7133390054f8b6b8077ef0550311 (Introduce cross platform high-dpi scaling), because QGuiApplication triggers GeometryChangeEvent right after processing WindowScreenChangedEvent. So just use QPlatformWindow::screen() instead of cached m_xcbScreen. m_xcbScreen was also used in d4bc56cb4218f6f8378f04c23865156b349b037d (Fix screen detection on configureNotify) to compare the new screen after receiving ConfigureNotify to the correct old screen. Just send WindowScreenChangedEvent event and leave making the comparison to QGuiApplication. Change-Id: Ibe717ae4bf4c40b0a04cd62fe2ecaee5df5f4060 Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* xcb: compare to previous state when sending geometry and expose eventsTor Arne Vestbø2015-12-101-6/+27
| | | | | | | | | | | | | | | | | | | By calculating the previous geometry and passing it on when calling handleGeometryChange we can detect cases where setGeometry() on a QWindow didn't result in the expected geometry. The new (actual) geometry is delivered as a resize event. This also allows us to only send expose events when the size of the window has actually changed (instead of also sending when the window has just moved). Due to the async delivery of geometry changes on the xcb platform we need to avoid using QWindowPrivate's cached state of the geometry, as that will result in duplicate resize events when events are not flushed in between two system resize events coming in with the same size. Change-Id: I3d4abe4a1095dd96e6e354288d5b646c623c30dd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* XCB: prevent a fp division by zeroGiuseppe D'Angelo2015-12-101-4/+7
| | | | | | | | | | | For certain devices vci->resolution is zero, which causes a SIGFPE if FE_INVALID exceptions are enabled. Try to prevent that. Task-number: QTBUG-42717 Change-Id: I388735f5dfb6218496787dbb74cf0c0f43cc928f Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru> Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* Avoid dynamic switching between backingstore composition pathsLaszlo Agocs2015-12-011-0/+1
| | | | | | | | | | | | | | | | | | Make it opt-in because doing a normal backingstore flush does not seem to work on Cocoa once we use OpenGL on the window. Windows and Linux should be able to cope with this. This means that platforms outside Windows and Linux will continue to have the problem of having GL-based compositing enabled for ever after having a QOpenGL/QuickWidget shown in the window once, but the issue is most prevalent on Windows anyway, OS X machines can deal with OpenGL better in general. Task-number: QTBUG-49172 Change-Id: I30fd2efa95cc4f6eed9cf7f7613d0750355c775c Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* QtBase: remove explicit function info from qWarning() etcMarc Mutz2015-11-281-2/+2
| | | | | | | | | | | This information is already registered by the QMessageLogger ctor. Where, by dropping the << Q_FUNC_INFO in ostream-style qDebug(), only a string literal remained, converted to printf-style qDebug() on the go. Change-Id: I3f261c98fd7bcfa1fead381a75a82713bb75e6f3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix potential division by zero.Nicolas Capens2015-11-261-1/+2
| | | | | | | | | | | In a Chrome Remote Desktop session the htotal and/or vtotal timings can be zero and lead to a SIGFPE exception. Task-number: QTBUG-49322 Change-Id: Id530335cc760d1938ed888ad095427fcf32c651d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Nicolas Capens <nicolas.capens@gmail.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
* xcb: Don't assume creating a window will result in ConfigureNotify eventTor Arne Vestbø2015-11-242-13/+3
| | | | | | | | | | | | | | | | | | | | | | | We assumed that creating a window would always result in a configure notify event, so we delayed sending the initial expose event until receiving the configure notify. That strategy fails in cases where the window does not need a reconfigure after being created, such as when not running a window manager, or when creating child windows. In those cases the window is just mapped, and we ended up never sending an expose event. The problem was masked by sometimes receiving an explicit expose event from X, just after the mapped notification, which we then sent without waiting for configure. Unfortunately we can't rely on this behavior and need to remove the deferred expose event logic, so that we always ensure that at least one expose event is sent to Qt. Change-Id: I702be7f24de2a1e89c085fb6bd95bb8ff7792a27 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* xcb: Fix windows opened from keyboard are not active on Marco or Xfwm4Błażej Szczygieł2015-11-231-1/+5
| | | | | | | | | | | Windows opened from keyboard (e.g. keyboard shortcut) are not active on Marco or Xfwm4. These windows are under the window which received the key event. This patch fixes the problem by updating XCB timestamp on every key press like Qt4 does. Task-number: QTBUG-49567 Change-Id: I9ea483784ac361d0b645d0f11f643868b367ac2c Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Fix slow widget resizingBłażej Szczygieł2015-11-192-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | It can speed up window resizing using on XCB platform (like in Qt4 or GTK). It doesn't affect QRasterWindow, but it affects all QWidget-based windows and OpenGL windows. This code uses XCB Sync Protocol on all windows when it is supported. In previous code the XCB Sync Protocol was used only when window doesn't support OpenGL (on QRasterWindow),but QWidget can use OpenGL, so it doesn't use the XCB Sync Protocol. With XCB Sync Protocol which is implemented in Qt XCB plugin, windows can be resized smoother/faster. You can see bigger difference when you use non-composited window manager to test it: - Kwin without compositing and fast style, - Marco, - Xfwm4, - Openbox. Task-number: QTBUG-46641 Change-Id: Ia18dee94616e64ba7e11bd4b062d2326ec530748 Reviewed-by: Martin Gräßlin <mgraesslin@kde.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Process _NET_WORKAREA and screen geometry changes separatelyAlexander Volkov2015-11-174-25/+64
| | | | | | | | | | | | | | This commit allows to avoid superfluous calls to the X server. We don't request _NET_WORKAREA values when the screen geometry changes, and we avoid RandR calls on each _NET_WORKAREA change. Besides, update the available geometry of all screens with the same root window, rather than only that one which corresponds to Qt::Desktop window. Change-Id: I5ec624717f5f261c986cd9aaf2425f22985e11c0 Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* xcb: Handle screen siblings in QXcbVirtualDesktopAlexander Volkov2015-11-173-15/+17
| | | | | | Change-Id: I2f3c3ad75bb3914667cf6f27dc2d91aac103607b Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* move addition of libdl to right projectOswald Buddenhagen2015-11-162-2/+2
| | | | | Change-Id: Ifae8b906ef3767d9c21f09953076bd640829858f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* remove abuse of module include path overridesOswald Buddenhagen2015-11-161-7/+0
| | | | | | | | these modules simply have no "proper" include paths (they are used only within qtbase, with explicit INCLUDEPATH statements). Change-Id: Iec6aa6ae0bc449eb8cac2fa1c86a791755eec06e Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Xcb: fix crash on screen power savePaul Olav Tvete2015-10-263-4/+14
| | | | | | | | | | | | Handle various cases where we have null QScreen or QPlatformScreen pointers. With this change, I can run Qt Creator for several days. Before, it would crash multiple times per day with a two-monitor setup. Change-Id: I0923d886ae2a4199ac37edd711ddd4f6f99df93d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* xcb: better error reporting when shmget() failsShawn Rutledge2015-10-261-2/+2
| | | | | | Change-Id: I160ebc07f25fd08b86ca5494cb149c5fc7c70086 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Use XShape for DnD when a compositing manager is not runningAlexander Volkov2015-10-146-25/+87
| | | | | | | | | Otherwise transparent areas of the drag'n'drop pixmap are painted with the black color. Task-number: QTBUG-45193 Change-Id: I55b7c7caababe13584fa1c7a52835f112e20f920 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Add default argument to QPlatformWindow::isEmbedded()Tor Arne Vestbø2015-10-141-1/+1
| | | | | | | Removes magic 0-pointers at the call sites. Change-Id: I6740f6b8cc75004ab5f2ebcb3b3c95cbbdc43153 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Avoid triggering OpenGL initialization for RasterSurfaceJohn Lindgren2015-10-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | Application that do not require OpenGL need a way to opt-out of GLX/EGL calls completely. The initialization can be expensive and what is more, some systems may not have functional GLX at all (some VMs are known to crash when trying to get FBConfigs for the window). QApplication already has AA_ForceRasterWidgets, which causes the use of plain RasterSurface everywhere instead of RasterGLSurface. Combined with a trivial check in the xcb backend to skip all the Xlib+GLX/EGL path, the attribute will allow apps to ensure that no GLX/EGL calls are ever made. This however implies a change in QWindowContainer: the embedded window must use the same initialization path as the parent otherwise we will end up with a BadMatch. QWindowContainer can do this transparently to the applications, unless the QWindow is already created. Change-Id: I846af7edb8b92b9836cdbd93c6a5eec5a6147a49 Task-number: QTBUG-46765 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Libraries: Fix single-character string literals.Friedemann Kleint2015-10-132-2/+2
| | | | | | | Use character literals where applicable. Change-Id: I8e198774c2247c1cc1d852a41b59b301199b7878 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* xcb: Fix DnD for separate X screensAlexander Volkov2015-10-097-53/+53
| | | | | | | | Recreate QShapedPixmapWindow when the cursor goes to another X screen. Change-Id: Ifd4c4281971b23abc45a9f6c0509832a45c31521 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* xcb: Add support for Qt::WA_ShowWithoutActivatingAlexander Volkov2015-10-081-2/+15
| | | | | | | | Also re-enable and update the tst_showWithoutActivating test. Change-Id: Ic7fa9b1bf7637e4661c593aaeabb3220cd4204ff Task-number: QTBUG-46098 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* xcb: Show buttons on the title bar for QWindowAlexander Volkov2015-09-251-0/+3
| | | | | | | | | | | | | | | QWindow by default doesn't have the window flags to display buttons on the title bar and it's up to the window manager whether they will be shown. For example, fluxbox doesn't show the maximize button. The cocoa plugin and the windows plugin adjust the window flags in this special case of QWindow to show some buttons, so do the same in the xcb plugin. Change-Id: Idc2575cfeaced524dd67eb5ba99126663626e2b0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: fix touchscreen input with certain capabilities onlyWolfgang Bremer2015-09-251-0/+2
| | | | | | | | | | | Touch screens without the "Abs MT Position X" but "Abs X" capability weren't detected correctly so far. This patch fixes the detection and enables these tochscreens. Change-Id: I32fdb4d56c106717c90904a6632c2838bd55a255 Task-number: QTBUG-48279 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* xcb: fix yet another crash when screens are disconnectedShawn Rutledge2015-09-241-2/+4
| | | | | | | | | Can't assume that m_screens is not an empty list. Task-number: QTBUG-42985 Change-Id: I6f9422638c219123dc898813910d03c7afbd1450 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: get Genius/Waltop tablets working againShawn Rutledge2015-09-241-0/+6
| | | | | | | | It was working at some point, but not in 5.5.0. Task-number: QTBUG-48370 Change-Id: I8a0e09d4dfa9ace3d69c10c5f88129958d226a9a Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Silence the _COMPIZ_TOOLKIT_ACTION warning.Gatis Paeglis2015-09-223-2/+5
| | | | | | | | | | It is still unclear how to act on those messages. We are already doing this for other Compiz messages -_COMPIZ_DECOR_*. Change-Id: I45f76b5f56ee1b07eb4c7398cc85b5d7bed86c4c Task-number: QTBUG-46954 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Compress mouse motion and touch update eventsGatis Paeglis2015-09-223-134/+208
| | | | | | | | | | | | | | | | | | | | | | The current version of the mouse motion event compression algorithm does not work with certain configurations - situations where we get one XCB_GE_GENERIC event between every XCB_MOTION_NOTIFY event. The new implementation tries to be less fragile. The previous approach checked "is *the next* event the same type as the current event", the new check asks "have we buffered more events of the same type as the current event". We buffer events of the same type only when the main thread is unresponsive. This patch adds event compression for XI_TouchUpdate in addition to the fix for motion even compression. Change-Id: Ie215eb5969e2060e463ebe48e3d3007390a30deb Task-number: QTBUG-40889 Task-number: QTBUG-47069 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* xcb: Always send dnd events to the proxy window if it existsAlexander Volkov2015-09-222-6/+13
| | | | | | | | | The standard http://www.newplanetsoftware.com/xdnd/ says: "The only place where the proxy window should be used is when checking XdndAware and in the calls to XSendEvent()". Change-Id: I62e504ba52ec7ec2a941c53a84889bb3eb4b4cc1 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* xcb: Use the correct property type when requesting virtual rootsAlexander Volkov2015-09-211-2/+2
| | | | | | | | | Virtual roots are windows, so we should request XCB_ATOM_WINDOW instead of XCB_ATOM_ATOM. Change-Id: I59558b1a3c37cb9bcad42bc0695d420f59088eb9 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Notify when the primary screen changesAleix Pol2015-09-081-6/+3
| | | | | | | | | | | | | Makes it possible to notify that the QGuiApplication::primaryScreen has changed. XCB backend adopts the new API, as it was accessing QGuiApplication private API directly. Change-Id: Icde05c44138265f865fa42d2cd6974c552fdc5e2 Task-number: QTBUG-38404 Task-number: QTBUG-40659 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-08-262-12/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/doc/snippets/code/doc_src_qmake-manual.pro qmake/doc/src/qmake-manual.qdoc src/corelib/io/qstorageinfo_unix.cpp src/corelib/tools/qbytearray.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/io/qprocess/tst_qprocess.cpp tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp tests/auto/network/access/qnetworkreply/BLACKLIST Change-Id: I9efcd7e1cce1c394eed425c43aa6fce7d2edf31c
| * xcb: send QTabletEvent before QMouseEventShawn Rutledge2015-08-192-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | It was a regression: drawing applications which can handle both mouse and tablet events should not need to wait to see whether a mouse event will be followed by a corresponding tablet event. The tablet event is preferred because it has all the tablet parameters (pressure etc.) Also, show the timestamp of each mouse event in the log message, which helps to verify the correspondence. Task-number: QTBUG-47702 Change-Id: I9e832c19de935ec1243138eb4c1484284f61cbfc Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Harmonize input context selectionBernd Weimer2015-08-252-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Input context selection works differently across platforms. On some platforms it is not possible to request a specific context at all (e.g. Wayland). This will be unified, depending on the environment variable "QT_IM_MODULE", you will get: - null: default (platform) context, if defined (otherwise no context) - empty: no context - set: set one, if it exists and is valid (otherwise no context) [ChangeLog][Platform Specific Changes] Haromnized input context selection. QT_IM_MODULE environment variable will be taken into account. Change-Id: Ic8f826fbc6ace25941cd19b9b086943e848fbe01 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com>
* | xcb: set QTabletEvent's timestamp from the window system eventShawn Rutledge2015-08-241-9/+8
| | | | | | | | | | | | | | | | | | | | The intention is for it not to include any delays that Qt's event processing has introduced. And we are already doing it this way for touch and scroll events. Task-number: QTBUG-39459 Change-Id: Ie01cc2f8c6290ab66ef1b9180471afaa3da2e9da Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into devFrederik Gladhorn2015-08-065-39/+65
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/3rdparty/forkfd/forkfd.c src/corelib/codecs/qtextcodec.cpp src/corelib/kernel/qmetatype.cpp src/corelib/tools/qset.qdoc src/gui/accessible/qaccessible.cpp src/gui/image/qpixmapcache.cpp src/opengl/qgl.cpp src/tools/qdoc/generator.cpp src/widgets/kernel/qwidget.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
| * xcb: Make it compile on systems with xinput2 < 2.2Martin Koller2015-07-301-11/+13
| | | | | | | | | | Change-Id: I7e98d3540cd7717ac8af8d1993618d18320f811a Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
| * Let the linker find xcb_poll_for_queued_event for usThiago Macieira2015-07-281-6/+9
| | | | | | | | | | | | | | | | It's more efficient than we are. This also enables the code to work in the unlikely case of an ELF platform without RTLD_DEFAULT. Change-Id: Ib306f8f647014b399b87ffff13f12f8aeeb2589a Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
| * Make the function pointer to xcb_poll_for_queued_event not a memberThiago Macieira2015-07-282-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | In the normal case, this change is a no-op. In case RTLD_DEFAULT isn't defined, this makes the job of the optimizer easier to detect that the static variable is never modified and that it can do a lot of dead code elimination. This also enables the optimization in the next commit. Change-Id: Ib306f8f647014b399b87ffff13f12f40a359233b Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
| * xcb: Fix build with QT_NO_CURSORAndrew Knight2015-07-281-0/+2
| | | | | | | | | | Change-Id: I2391c2921274b7a178fbdde1d0f59f7fbaa3048e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * xcb: fix tablet proximity againShawn Rutledge2015-07-281-5/+4
| | | | | | | | | | | | | | | | | | Patch 53d289ec4c0f512a3475da4bbf1f940cd6838ace caused it not to select property change events, which are needed separately for each tablet device. It's not enough to select them on the master device. Change-Id: Ibb6c7990d2edd865019eacfa7eed4bf818f7557e Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * xcb: Ignore disabling of outputs in the middle of the mode switchAlexander Volkov2015-07-221-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | X server may send RROutputChangeNotify event with null crtc and mode, when it switches an output mode. Request RROutputInfo to distinguish this case from the case when the output is explicitly disabled. Change-Id: I4c2356ec71dbcc8013009ea8a6f46dd11f19d6bb Task-number: QTBUG-44158 Task-number: QTBUG-46786 Task-number: QTBUG-46822 Reviewed-by: Daniel Vrátil <dvratil@redhat.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
| * When a screen comes back online, the windows need to be told about itRalf Jung2015-07-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On my system, this fixes the misbehavior of Qt applications when the (only) active screen is switched, e.g. from an external screen to the laptop. This behavior is caused by the screen() of widgets to be set to NULL when their screen goes away. When a new screen comes online, the widgets *should* be told about it, but they are not. The only place that "maybeSetScreen" is called is when an existing screen changes its geometry, but not when a screen gets enabled without its geometry being affected in any way (e.g. because it was just disabled via xrandr, but has been connected all along). This makes sure that "maybeSetScreen" is also called when a screen gets enabled. Task-number: QTBUG-47041 Change-Id: Ic72d6beaa544bf9a4efdbea0830b1bc0d6ce5362 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
| * Fix GCC 4.9 warning about repeated attributesThiago Macieira2015-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | qxcbscreen.cpp:701:21: error: ‘QDebug operator<<(QDebug, const QXcbScreen*)’: visibility attribute ignored because it qxcbscreen.h:149:21: error: conflicts with previous declaration here [- Werror=attributes] Change-Id: Ia0aac2f09e9245339951ffff13c77c23cb9430c5 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* | Fix highdpi drag-n-drop for X11Paul Olav Tvete2015-07-302-33/+34
| | | | | | | | | | | | Task-number: QTBUG-46615 Change-Id: Iad548e62a580d6fbd15b7a826116a53ce23b4b8b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | X11 changes for highdpiPaul Olav Tvete2015-07-304-16/+29
| | | | | | | | | | | | | | | | | | | | | | Adapt the xcb plugin to work with the new cross-platform high-DPI scaling. Fixes for drag and drop is done in a separate change. Task-number: QTBUG-46615 Change-Id: I29002721169750b9de59edb0f3e9134adabc4855 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Remove QT_DEVICE_PIXEL_RATIO support from xcbPaul Olav Tvete2015-07-299-292/+74
| | | | | | | | | | | | | | | | It will be reintroduced as a cross-platform feature. Task-number: QTBUG-46615 Change-Id: Ia6d03275018b2a25ebed438fe51f15e491f1c3ff Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into HEADSimon Hausmann2015-07-175-37/+77
|\| | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowsopengltester.cpp Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
| * xcb: set SM_CLIENT_ID propertyStefan Becker2015-07-085-37/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | SM_CLIENT_ID is required by kwin for proper session management. - move client leader initialization from screen to connection - add SM_CLIENT_ID property to client leader Change-Id: I19fb0d098811c865f6f13d5bc3e59a173c596a65 Task-number: QTBUG-46310 Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru> Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>