summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* OSX: Drag and Drop QMimeData.Christoph Schleifenbaum2012-08-251-4/+17
| | | | | | | | | | | | When dragging and dropping within the same application, the QDropEvent should contain exactly the same instance of QMimeData as it was set to QDrag. This solves the problem in https://bugreports.qt-project.org/browse/QTBUG-26953 Change-Id: I3bc4da845ff4293c509343c1c8c62fc331416ec0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* xcb: fix unused static warningMarc Mutz2012-08-231-0/+2
| | | | | | | | | The variable ptrXcursorLibraryLoadCursor is only used in code wrapped in XCB_USE_XLIB. Change-Id: If0b4997ac6e80a3709263d9793d1ca0dfd5907f3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* linuxfb: remove unused functionMarc Mutz2012-08-231-10/+0
| | | | | | | | debug() isn't even referenced in commented-out code, and GCC warns about it being unused, so remove. Change-Id: I2830b7932e18cdd3643925973995bea7fea9f277 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed missing window decorations on compiz.Samuel Rødal2012-08-231-3/+1
| | | | | | Task-number: QTBUG-26954 Change-Id: I6981338d4bbc9cf1440c9d67e9d034e0553dfeae Reviewed-by: Jason Barron <jason.barron@nokia.com>
* Fix transformation in eglfs backingstoreLaszlo Agocs2012-08-221-2/+2
| | | | | | | | | | | | While not visible with forced-fullscreen windows, the formula used to set up positioning on the Y axis is wrong. (with the GL coordinate system Y goes 1..-1 when moving top-to-bottom) Taken from kms' version of the backingstore which had the formulas corrected. Change-Id: I460a4eec925e47b08453af4e093d719567af22ea Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fixed non-GL applications crashing when GLX/EGL initialization fails on xcb.Samuel Rødal2012-08-221-15/+20
| | | | | Change-Id: I5a08d6067272575aa56074aaebe308c3d49299bb Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add hint for touch -> mouse event synthesizingMorten Johan Sorvig2012-08-221-0/+3
| | | | | | | | | | | | | | | | | Commit 7808ec79 changes QApplication to synthesize mouse events from (unhandled) touch events. On Mac OS X this creates a conflict for two-finger scroll swipes, which generates both touch events and mouse wheel events: scrolling in QTextEdit will also select the text. Add a SynthesizeMouseFromTouchEvents platform style hint that enables the event synthesising. Set to true by default and false in Cocoa. Change-Id: I1ffa5a141476aa38b81ce92a87eff676c7ec2276 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Fix a bunch of Mac/clang specific warningsJiang Jiang2012-08-215-4/+6
| | | | | Change-Id: I0ecc67d58fb7e727a88a5f546eeca01ff7554502 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Cocoa: use filterNativeEvent instead of the deprecated filterEventThiago Macieira2012-08-201-3/+3
| | | | | Change-Id: I76259d1a0d978fb2f7fb60cd0d05990365691b7e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix C++11 mode compilation with MinGW-w64 4.7.1Yuchen Deng2012-08-201-2/+2
| | | | | Change-Id: I8b840ece7341877fb6f5d6a85d8714517034e319 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix freetype font rendering for Windows CEAndreas Holzammer2012-08-201-0/+47
| | | | | | | | | | Windows CE does not have support for GetGlyphOutline. So addGlyphToPath will not work. QML uses it for their distance field rendering. One option to bypass this issue is to use freetype as rendering backend. Change-Id: I965254344945cbdad771a5d505fb61c1cc2087df Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fix in-process QAxServers inside modal windows.Miikka Heikkinen2012-08-202-0/+17
| | | | | | | | | | | | | | | | The main window of in-process QAxServers doesn't have QWindow parent, but it does have native parent that is part of the native window tree of the application. The lack of Qt parent makes embedded controls look like toplevel windows, which causes problems e.g. with modality. Introduced new optional method QPlatformWindow::isEmbedded() to detect if a window is an embedded window and utilized it in proper places during modality handling. Task-number: QTBUG-26871 Change-Id: Iac9a51dae06b8fc15410de7838857e203e4275b8 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix drag curor visibility on Windows.Janne Anttila2012-08-201-2/+0
| | | | | | | | | | | | | QDrag has an API to set both pixmap (QDrag::setPixmap) and drag cursor (QDrag::setDragCursor): http://qt-project.org/doc/qt-5.0/qdrag.html. We cannot return from createCursors if there is no pixmap, but we need to go through also dragCursor and use those if one is set. Change-Id: If2b2139ad193a4ab5b25c65400c595dc7c33de2c Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Clean up QScreen::grabWindow()aavit2012-08-182-3/+9
| | | | | | | | | | | Handle 0 WId parameter as meaning "desktop window"/whole screen. Also, re-add the default values for the grab area, both for convenience and compatibility with QPixmap::grabWindow() in Qt4. Update the screenshot example so it doesn't comlain about usage of deprecated QPixmap::grabWindow(). Change-Id: I2ad229113ddb8ded0388f2ebc0e8c703c6657f1f Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Doc: Fix spelling errorsSergio Ahumada2012-08-171-2/+2
| | | | | Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
* QNX: Allow app to run when spurious 2nd screen is reportedSean Harmer2012-08-171-4/+4
| | | | | | | | | | | | | | On the PlayBook, libscreen always seems to report the presence of a 2nd display even when none is connected. This of course leads to the failure to query this display for its physical size. This patch relaxes the demand for a physical size to being for the primary screen only. Change-Id: If30b1fd704e7a194a426a0a9f0b85557478105f7 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* WinCE: Fix call of GetAncestor in setParent_sys()Kevin Funk2012-08-171-0/+9
| | | | | | | | | | There is no GetAncestor under Windows CE. Use GetParent instead. Change-Id: I87b86961dade0d5c7c8bf6a470f777d32188dcd2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix setParent_sys() to use native methods when checking for toplevelMiikka Heikkinen2012-08-171-1/+8
| | | | | | | | | | | QWindowsWindow::setParent_sys() was checking if window was toplevel using non-native method, which caused wrong result in some cases involving native windows. Changed the toplevel check to utilize native method instead. Task-number: QTBUG-26826 Change-Id: I72ca17c53c1ed7611f141cee17b2edaaa80c6c17 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix GDI object leakMiikka Heikkinen2012-08-171-1/+1
| | | | | | | | DeleteObject parameter must be a handle, not a pointer to a handle. Task-number: QTBUG-26835 Change-Id: Id5de2b0b067bd9fc45c1c8ead4f7d67f0162f070 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Made eglfs work with backing store based applications again.Samuel Rødal2012-08-153-4/+10
| | | | | | | | | Make sure we pick the same config for the context and window surface, and do not create unnecessary window surfaces for the desktop widget. Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* QtGui: use new qEnvironmentVariableIsEmpty()Marc Mutz2012-08-142-2/+2
| | | | | | | | In particular, static bool showRasterOverlay is safer. Change-Id: I9df6c9a9a56d2e61b13391b6889c0ac6e259e801 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* (QNX) Make it possible to set physical screen sizeAndreas Holzammer2012-08-141-8/+51
| | | | | | | | | | | | | | | | It can happen that the system is reporting a screen width or height of zero, if the system does not know the size instead of returning an error. You can either set a define QQNX_PHYSICAL_SCREEN_WIDTH/QQNX_PHYSICAL_SCREEN_HEIGHT or set it as environment variable QQNX_PHYSICAL_SCREEN_SIZE. The preference order is: 1) Take detected size 2) Take size from env var 3) Take defined size if any define is set Change-Id: I493a2c8988a225224587a6c323efeb9e9b7b5a54 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add Linux Accessibility BridgeFrederik Gladhorn2012-08-141-1/+2
| | | | | | | | This is a plugin that bridges the QAccessible world to AT-SPI 2 on Linux. Change-Id: I7af22621ee6a3cefc723b137b7f227a611cf6641 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* kms: Restore VT settings when crashedLaszlo Agocs2012-08-102-2/+29
| | | | | | | | | | This does the job of keeping the terminal keyboard working when the application segfaults but is somewhat unsafe because ioctl() is not async-signal safe. Change-Id: Ie6728a4252e18c29bba8f8308e6c00d4a1eb6a8e Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Use native handles for parent change check in QWindowsWindow.Miikka Heikkinen2012-08-091-13/+17
| | | | | | | | | | | | | QWindow::setParent() sets the parent to zero instead of the desired parent, if platform window has not yet been created for the parent. This caused QWindowsWindow::setParent() to skip setting the parent later, when correct window was specified, as the QWindow parent-child relationship hadn't changed. Fixed by changing the the check to use native handles instead. Task-number: QTBUG-26791 Change-Id: I292a1ddf746583a7268f2d07c20166995c0dd7d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Need to have the XI2 import to detect XI_TouchBeginMaskShawn Rutledge2012-08-091-0/+1
| | | | | | | | | | Followup to I5c925ae3e191244c7ab9415e4ba2fe49b93dd2af : touch was not actually working by default. A major symptom was getting double-clicks instead of clicks on buttons and such, making it quite hard to interact with anything. There are some problems remaining. Change-Id: I09fa5965036bac242ccc1f4db71f6d912445ca01 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Properly manage window geometry in kmsLaszlo Agocs2012-08-072-4/+9
| | | | | | | | | | | If QWindow::setGeometry() is called before QWindow::create(), QKmsWindow::setGeometry() is not called at all. This is wrong because there is some special size restricting happening there which must never be skipped. Change-Id: I321632d4fdb327b0a75e6791c019b3f4c2793888 Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Only use glXCreateContext if glXCreateContextAttribsARB did not succeed.Zeno Albisser2012-08-071-16/+13
| | | | | | | | | | | | If glXCreateContextAttribsARB does not succeed or is not available, we should fallback to using glXCreateContext. But we should not just create a context with glXCreateContext by default that is being thrown away if glXCreateContextAttribsARB succeeds. Otherwise glXMakeCurrent with context 0 might cause an unexpected context change when dealing with multiple contexts. Change-Id: I7627abbe2500b4006180653a1b3b074fe7aca1d3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* fix maximize -> fullscreen -> maximize on WindowsJoerg Bornemann2012-08-061-1/+1
| | | | | | | | Using a reference changes the value of oldState within this function, which is undesired. Change-Id: I9fb66e488015d6b3e586ffa2f0b05a40c095e16b Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
* XCB: Correction to OpenGL version check for profile supportSean Harmer2012-08-041-1/+1
| | | | | Change-Id: I2f2bf877b1e2e628806f22fe66180b05090f4b3e Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QNX: Ensure that m_requestedBufferSize is properly initialisedSean Harmer2012-08-031-1/+2
| | | | | | | | | | | | This solves a new corner case resulting from the recent refactoring of QQnxWindow::setGeometry() that occurs when using a plain OpenGL backed window in a single threaded environment and the user code calls QOpenGLContext::makeCurrent(this) in the QWindow subclass ctor. Change-Id: Iaf07fbff1cb2743f5706020a8d657a82cb9f2255 Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Fix FullScreen for Windows CEAndreas Holzammer2012-08-032-0/+26
| | | | | | | | | For Windows CE the taskbar needs to be hidden manually. Change-Id: Ife69a2a91457ba0c162e4e1be88f87ad22c61190 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Revert "Move QWindowSystemInterface out of qpa."Paul Olav Tvete2012-08-0334-34/+34
| | | | | | | | | | | | | | This reverts commit 784a877d3cd9a1a75aca9c83146389503a966071. Conflicts: src/plugins/platforms/cocoa/qcocoawindow.mm src/testlib/qtestkeyboard.h src/testlib/qtestmouse.h src/testlib/qtesttouch.h Change-Id: Iebfed179b3eb7f30e4c95edcae5a8ad6fd50330e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix mimedata updating and signal emision issues in xcb clipboard.Gatis Paeglis2012-08-021-26/+38
| | | | | | | | | | | | | Clipboard should reacquire the clipboard whenever the content or metadata (e.g the list of supported targets) changes. Patch enables us to monitor changes to the clipboard through help of XFixes extension. Cleanup xlib xa_* naming conventions Task-number: QTBUG-26709 Change-Id: I9d47766ad9859b5628b0358b1c47e8af8fecef73 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix badAtom issues introduced by behavior changes between Xlib and xcb.Gatis Paeglis2012-08-021-22/+7
| | | | | | | | | | | | In Xlib, the 'length' variable gets updated with the the actual number of 8-bit, 16-bit, or 32-bit items stored in the returned data, but xcb returns the actual number of bytes read through xcb_get_property_value_length, therefore the logic of calculating offset was broken. Task-number: QTBUG-26709 Change-Id: I04de3b5c5631cfaf9b3c2c3d4513be73c569f61f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QNX: Do not send geometry change events to Qt too earlySean Harmer2012-08-012-22/+31
| | | | | | | | | | | We explicitly do not send geometry change events to Qt from QQnxWindow from the constructor. This prevents us from ending up in resizeEvent() reimplementations from the QWindow ctor. Change-Id: I045b35aa7eb23890772fe131c3d19314252f6a5a Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QNX: Ensure that the QQnxWindow has a valid size for EGL surfacesSean Harmer2012-08-011-0/+4
| | | | | | | | | | | | | | | | If QWindow::create() gets called before resize() or setGeometry() then the rect argument passed into QQnxWindow::setGeometry() by the ctor is null. This could potentially result in 0 sized buffers and EGL surface creation being attempted. We bail out in this case and tell user how to fix their application. Change-Id: Ia709dba617fa266bd66b61409bdb1c980acfb1a2 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QNX: Remove dependency on QtWidgets from QNX QPA pluginSean Harmer2012-08-015-304/+4
| | | | | | | | Change-Id: I52027752630beee81a97644983dbccf973c0c2c2 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* don't change a widget's active state in QWindowsWindow::setWindowStateJoerg Bornemann2012-08-011-31/+18
| | | | | | | | | | | | | QWindow::setWindowState is not supposed to set the window active. The method requestActivateWindow() should be used for that. When switching from and to fullscreen mode we're always passing SWP_NOACTIVATE to SetWindowPos to not change the activation state of the window. This is inverse to the old behaviour, which did not have an effect. Change-Id: I339337935cdad76b3ef252202e92177f37543038 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fix showFullScreen for QWindowAndreas Holzammer2012-07-311-1/+2
| | | | | | | | | | | | | If the setWindowState is called in a early stage, where the window is not yet shown, the fullscreen flag is cached in the QWindow. Then in the call to setVisible(true) the window gets generated, but the fullscreen is not handled there. So set the state while window is generated. Change-Id: I0ea53ed8a2465da6a9973d84fb4579381543e89b Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Implement synchronous WS events by flushing.Friedemann Kleint2012-07-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Previously synchronous window system events were implemented by bypassing the queue and processing the event immediately. This is not ideal since the event order is not preserved - there might be "happened before" events waiting in the queue. Add QWindowSystemInterface::flushWindowSystemEvents and change all handleSynchronous* to 1) queue the event 2) call flushWindowSystemEvents. flushWindowSystemEvents is almost identical to the already existing sendWindowSystemEvents with the exception that it does not call QApp::sendPostedEvents. Move the common implementation to a new private function. Task-number: QTBUG-20778 Change-Id: Ie98a83875bc0a14e335e36bed0dd9e0ed4a1dea0 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QNX: Reduce dependency on QtWidgetsKevin Krammer2012-07-292-6/+2
| | | | | | | | Use QObject::inherits() to check if the current input focus object is a numerical input instead of trying to cast. Change-Id: Ie476fba3d2f9f20a1ce0328043430cb6a96a8a3d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add QCocoaAutoReleasePool to QCocoaMenu::setTextMorten Johan Sorvig2012-07-271-0/+1
| | | | | Change-Id: Ia47d79d400c6c4dcd7a49595f05ddafb5a256fad Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* Disable tty keyboard in kmsLaszlo Agocs2012-07-255-2/+150
| | | | | | | | Set QT_KMS_TTYKBD=1 to prevent this and keep vt switching, ctrl-c, input appearing on the tty, etc. working. Change-Id: I0071685205ae9e02536dcb71f6fef6495c48f8fb Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Fix keyboard input in kmsLaszlo Agocs2012-07-251-1/+3
| | | | | | | The window was not made active. Change-Id: I20c323201be71fa4deb758e4a8fc32297d6faf0c Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Update only dirty areas in kms backingstoreLaszlo Agocs2012-07-252-3/+36
| | | | | | | | | | Do not upload the entire (typically fullscreen) image all the time. Taken from eglfs' backingstore implementation. Change-Id: I53db5cf54577ebea715d6cbd7215b9d2154e8960 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* QXcbWindow::setMask(): Check for SHAPE extensionUli Schlachter2012-07-251-0/+2
| | | | | | | | | | | If the SHAPE extension is not available and we try to use it, the xcb connection will shut down and go into an error state. This is bad because there would be no error message that would give a hint on what went wrong. Change-Id: I1a6734bd146ca179a990b6ce896813bf76007b66 Signed-off-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Reimplement QXcbWindow::setMask() with xcbUli Schlachter2012-07-253-39/+19
| | | | | | | | | This functionality does not need libXext. The bindings for the shape extension from libxcb-shape is enough and is available without Xlib. Change-Id: I9f1927024c64df00ace1666998c6c6deda2ef782 Signed-off-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QNX: Remove mouse events synthetized from touch eventsKevin Ottens2012-07-241-17/+0
| | | | | | | | | This behavior is now implemented in a finer way in QtQuick and QtWidgets, it's not needed anymore in the platform plugin. Change-Id: Iacdcd313253627fbba094abe4e9a9c1d23a431e1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
* Remove winEventFilter, replaced with installNativeEventFilter.David Faure2012-07-242-3/+4
| | | | | | | | | No reason to keep a virtual method for Windows when all other similar methods (macEvent and x11Event) have been removed, and when installNativeEventFilter provides a much nicer solution (no need to derive from QApplication). Change-Id: Ia2a7960e320fcbd04cef91f467900861dbb377c1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>