summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Windows native dialogs: Handle libraries.Friedemann Kleint2013-02-251-5/+114
| | | | | | | Task-number: QTBUG-29447 Change-Id: I4e68e546a4eb6b5f9c3dbe6d98905109e72e600a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Fix primary screen selection.Alain Boyer2013-02-251-1/+1
| | | | | | | | | | | When selecting the primary screen, the m_primaryScreen value obtained from the xcb_connect() call should be respected. This ensures that the proper primary screen is selected when specifying the DISPLAY environment variable. Task-number: QTBUG-27220 Change-Id: I60aa207f13d919087d4d2913141c804928684731 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Make toplevel transparent windows work on Mac OS XGunnar Sletta2013-02-235-4/+32
| | | | | | | | | | | | | | This patch includes a few different fixes to make transparent toplevels work on cocoa. - When setting alpha on the toplevel, it also needs setOpaque:NO - The OpenGL context needs a separate flag for this to work. - Make sure setOpaque fighting between setMask, setFormat and setOpacity ends up correctly Task-number: QTBUG-28214 Change-Id: Ic3a2d71193bb653e181c98787b4ebda002424092 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Pass the surface format to qglx_surfaceFormatFromGLXFBConfigGiuseppe D'Angelo2013-02-232-3/+3
| | | | | | | | | Instead of creating a default-constructed format and filling its field in, pass a pointer to an instance. This way we won't lose the renderable type set on the surface, but just fill in the other parameters. Change-Id: I1fd403671f9c677cc74aaf3c116a05f213d5d556 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Enforce OpenGL context creation under WindowsGiuseppe D'Angelo2013-02-231-3/+11
| | | | | | | | | | We don't support other context types, so fail in those cases. Also, return OpenGL as the rendereable type of our surface. Change-Id: I22792a913b78b837da3d27cef69145076579b949 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Enforce OpenGL context creation under XCBGiuseppe D'Angelo2013-02-231-3/+8
| | | | | | | | | We don't support other context types, so fail in those cases. Also, return OpenGL as the rendereable type of our surface. Change-Id: Ic7b5ed0ec5eaf5c0f88f50f5bceb697ea414c696 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Enforce OpenGL context creation under CocoaGiuseppe D'Angelo2013-02-231-2/+10
| | | | | | | | We don't support other context types, so fail in those cases. Also, return OpenGL as the rendereable type of our surface. Change-Id: I3d5632eb8555d73ed14837b662c7450589a8681f Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Add support for forced VSYNC using the EGLFS platform plugin.Milian Wolff2013-02-223-22/+30
| | | | | | | | | | | | | | | | | | | | | | | | Before a buffer swap the new QEglFSHooks::waitForVSync method is called which looks at QT_QPA_EGLFS_FORCEVSYNC and - if that is set and non-null - calls ioctl with the FBIO_WAITFORVSYNC request on the framebuffer device. This is required on some embedded platforms where the driver does not support VSYNC yet the Kernel provides a generic implementation. I tested this using QML_RENDER_TIMING=1 which proofs that the frame rate for an example of mine drops from >125fps to a straight ~60fps with a few frames that take ~33ms (i.e. 30fps) as expected for VSYNC. To prevent excessive open/close calls on the frame buffer device per frame, the file descriptor is now cached. To keep the QEglFSHooks interface as clean as possible this is done via a global static in qeglfshooks_stub.cpp and initialized and freed in platformInit and platformDestroy. Change-Id: I4d31b227c65ff22aa089db0fbc62c89a59cbb6c7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-203-2/+17
|\ | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/unix/separate_debug_info.prf src/gui/kernel/qwindow_p.h src/plugins/platforms/cocoa/qcocoacursor.mm tests/auto/tools/moc/tst_moc.cpp Change-Id: Ieb57834c00f961a747ffe51e6eb9fc9612cebccf
| * Clean up the cached cursors inside the destructor of QCocoaCursorAndy Shaw2013-02-202-0/+5
| | | | | | | | | | Change-Id: I4e1222832efa29680b4e658a5c9109641599a2b9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Fix the default handling of cursor shape when there is no standard oneAndy Shaw2013-02-201-0/+5
| | | | | | | | | | | | | | | | | | When the cursor specified is a bitmap one we cannot cache it based on the shape as the pixmap set on the cursor may be different. Therefore we should always create a new cursor in this instance. Change-Id: I2c201590ff632490d76c1b423908ae32aa584eb6 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Fix focus handling of native child widgets in xcb.Gunnar Sletta2013-02-193-2/+25
| | | | | | | | | | | | Change-Id: If4d596195624011142bff6853849a23064e478df Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> (cherry picked from commit fc663b5f9aae16fe6a03160e3eb148a5f742ac58)
| * QNX: Don't crash with 0 by 0 sized windowsSergio Martins2013-02-191-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | In the rare event of an invalid sized window, the application crashes because libscreen doesn't like creating empty buffers. Not creating the buffers at all would also be a solution, if we didn't have QPainter crashes due do null paint devices. Change-Id: I561d0082576b6226dd52129f9640952ba46273c8 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * QNX: Print the buffer size before crashing, for debug purposes.Sergio Martins2013-02-181-0/+1
| | | | | | | | | | Change-Id: I2d423ee3717bb09b7bb2c63f645e5315be1fa611 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Fixed EGLFS reporting impossibly high physical dimensions.Samuel Rødal2013-02-191-13/+62
| | | | | | | | | | | | | | | | | | If FBIOGET_VSCREENINFO doesn't give us sensible values we need to default to something instead. Refactor the code that queries the resolution and depth to behave the same way. Change-Id: Id2b3fc41349a74610856273b10281f744612890b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-02-183-29/+26
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-183-29/+26
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/styles/qmacstyle_mac.mm Change-Id: If8326db9e7da3cbf45dbf7475fdff9915c7723b1
| | * Fix the GL_CONTEXT_FLAG_DEBUG_BIT checkFredrik Höglund2013-02-152-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | Use the correct enum. GL_CONTEXT_FLAG_DEBUG_BIT does not have the same value as GLX/WGL_CONTEXT_DEBUG_BIT_ARB. Change-Id: I7d90da54ca1ff526c8b00669b486a68424fc8dfb Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Fix globalPos() in scrollwheel events on OSX.Josh Faust2013-02-141-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The window position was getting passed as both the window and global positions. QTBUG-29543 Change-Id: I24746675e5ba45adbd054742877bd2fe783d6608 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | * Fix the GL_CONTEXT_PROFILE_MASK checkFredrik Höglund2013-02-132-19/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A bit mask can have more than one bit set, so we can't use a switch statement here. Also use the correct enums, and make sure that the profile is set to QSurfaceFormat::NoProfile when the OpenGL version is less than 3.2. Change-Id: I6d2c4e35d4fb3d87fd47c9724cb415f8619a7b95 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Fix the GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT checkFredrik Höglund2013-02-132-2/+2
| | | | | | | | | | | | | | | Change-Id: I83dc92085c81b8b0c71502ea71878b5e85cbbacc Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Check for GLX_ARB_create_context_profile before specifying a profileFredrik Höglund2013-02-131-1/+2
| | | | | | | | | | | | | | | Change-Id: Idc4982c039f8a6a304d9ce5ce6736d518fb0ef00 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | | QScreen::refreshRate would return 0 on Mac OS XGunnar Sletta2013-02-181-1/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | The function we use to get the actual vsync on cocoa is documented to return 0 if the monitor is not a CRT monitor. A refreshrate of 0 means we have vsync deltas of 1000/0 which cause problems elsewhere. It is better to use the "default" value in this case as it will be closer to correct than 0. Change-Id: Id08007e40a9af5e42f13a07628fcad5fd3a7d0dc Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Cocoa QPA: Make QCocoaMenu::menuItemAt() more robustGabriel de Dietrich2013-02-181-1/+4
| | | | | | | | | | Change-Id: I2c68f87eb1a4926ca5bd0bfcc842ab9c56c99cd7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Added QOffscreenSurface class.Yoann Lopes2013-02-187-12/+118
| | | | | | | | | | | | | | | | | | | | | | | | Inherits QSurface and allows to use OpenGL from an arbitrary thread. Platform plugins can implement QPlatformOffscreenSurface, otherwise an invisible QWindow is used by QOffscreenSurface. This patch includes an implementation of QOffscreenSurface for XCB and EglFS platform plugins using pbuffers. Change-Id: I57b4fc1db417331f34826dcfa754b7698782fde4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | KMS QPA Plugin: use preferred mode when selecting modeanknight2013-02-181-4/+8
| | | | | | | | | | | | | | | | | | | | This should select the best mode (likely the currently running mode) for the display instead of the first one found. The built-in mode was left as a fallback. Change-Id: I4e1bc798df6f310b001566ab76cb9def3224a7ed Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | KMS QPA Plugin: use GBM cursor writeranknight2013-02-182-56/+19
| | | | | | | | | | | | | | | | | | GBM provides a way to write directly to a buffer object that gets set as the drmMode cursor. This eliminates the need to create a GL texture and opens this class up to platforms that support GBM but not OpenGL. Change-Id: I7297827387ef9a717a5287b5484f14c9987b4158 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | KMS QPA Plugin: .pro file improvementsanknight2013-02-181-2/+3
| | | | | | | | | | | | | | | | - Use qtHaveModule to check for OpenGL - Add __GBM__ to pick up the correct native types in the Mesa EGL headers Change-Id: Idfc0e81e95672b08ba8f259b9d7edf2b25fd1bad Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Remove ifdefs for supporting Mac OS <= 10.5Tor Arne Vestbø2013-02-1810-84/+4
| | | | | | | | | | | | | | | | Qt5 requires Mac OS 10.6, so we can remove checks such as if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 Change-Id: Iea21727a277291148704ecf9677ed0b68c24920f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Giuseppe D'Angelo2013-02-1739-138/+351
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-1439-138/+351
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/concurrent/doc/qtconcurrent.qdocconf src/corelib/doc/qtcore.qdocconf src/corelib/global/qglobal.h src/dbus/doc/qtdbus.qdocconf src/dbus/qdbusmessage.h src/gui/doc/qtgui.qdocconf src/gui/image/qimagereader.cpp src/network/doc/qtnetwork.qdocconf src/opengl/doc/qtopengl.qdocconf src/opengl/qgl.h src/plugins/platforms/windows/qwindowswindow.cpp src/printsupport/doc/qtprintsupport.qdocconf src/sql/doc/qtsql.qdocconf src/testlib/doc/qttestlib.qdocconf src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf src/widgets/doc/qtwidgets.qdocconf src/xml/doc/qtxml.qdocconf Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
| | * Don't ignore QSurfaceFormat::Options in the XCB pluginFredrik Höglund2013-02-121-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The XCB plugin requested a forward-compatible context regardless of whether QSurfaceFormat::DeprecatedFunctions was set, and also ignored the QSurfaceFormat::DebugContext option. Change-Id: I81c737447b554b3b6f61c2725bce7583e0e887ab Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * QNX: Fix QInputMethod::keyboardRectangleChanged() signalOleg Shparber2013-02-122-0/+7
| | | | | | | | | | | | | | | Change-Id: Iad3ee07ba85854d2eb0cf36710643b75993bf61c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * QNX: Fix qFatal() statements.Sergio Martins2013-02-121-5/+5
| | | | | | | | | | | | | | | | | | "QQNXQBBWindow" doesn't make sense. Change-Id: I0e56d5be4a9bb7a0336f71ea3348621be730dee1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Cocoa: Export QImage <-> CGImage conversion funcs.Morten Johan Sørvig2013-02-125-23/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For implementing to/fromMacCGImageRef in QtMacExtras. These do not depend on internal Qt state. The main reason for exporting them is to keep the implementation in one place to ease maintenance. Refactor qt_mac_cg_context to support QImage. Add qt_mac_toQImage. Change-Id: Ia9c226ed52d087b2c6b47aa8210ed8f2645b9cf2 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| | * Fix devicePixelRatio getter for embedded QWindows.Morten Johan Sørvig2013-02-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | m_nsWindow is not set for non-toplevel QWindows, causing devicePixelRatio to always return 1. Use [m_contentView window] instead. Change-Id: I6689a70812c9484f103b5e706fe4c1b76406b750 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| | * QNX: Add support for QInputMethod::keyboardRectangle()Oleg Shparber2013-02-085-5/+32
| | | | | | | | | | | | | | | Change-Id: Ie23aa06fed5778e228abf0f35fc1136a86661771 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Cocoa: Make tool window receive mouse events also when its parent is modalGabriel de Dietrich2013-02-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | We need to check for the Cocoa window class because of the way currently QDockWidget works. Change-Id: If69c7327c168518614fe884defa79deb358e260d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
| | * Fix broken fading of menus.Friedemann Kleint2013-02-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Breakage introduced by b3820b12fbded1f173837eee7f7559783e92b46b Set layered in backing store for frameless windows as was before. Task-number: QTBUG-29010 Task-number: QTBUG-28531 Change-Id: I13f8f0d58d71b6612430c7048056f672e23b8095 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Do not force top level flag on embedded windows.Friedemann Kleint2013-02-081-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression introduced by cd7ba89a07f794b17fc66ba29515b104c4d21f27. Task-number: QTBUG-29564 Task-number: QTBUG-28872 Change-Id: I6402a971af89321d18afb42dc25e54b1c88df129 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Fixed QT_NO_DRAGANDDROP build for the windows pluginBjoern Breitmeyer2013-02-074-7/+30
| | | | | | | | | | | | | | | Change-Id: Ieb987105bdcc08118a1b83cf3b74a93fa402264a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Fixed QT_NO_CURSOR build for windows/CE plugin.Bjoern Breitmeyer2013-02-075-2/+34
| | | | | | | | | | | | | | | Change-Id: I02f13b2af2d8c285fbca46917ff77826720857be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Removed User32.dll usage on WINCEBjoern Breitmeyer2013-02-071-2/+6
| | | | | | | | | | | | | | | | | | Change-Id: Id65dc0a9a829d66d0a2cc7bd40c5ba3190d9ecba Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com>
| | * Factorize code for formatting window titles into QPlatformWindow.David Faure2013-02-062-23/+2
| | | | | | | | | | | | | | | Change-Id: I0dcccd08916fc2ea1b795681e9b98a9550ef51b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Windows: Fix setting of layered windows.Friedemann Kleint2013-02-063-18/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The setting/clearing of WS_EX_LAYERED in the backing store interfered with the setting/clearing in setWindowOpacity when combining translucent and non-opaque windows. Introduce QWindowsWindow::setWindowLayered to handle it consistently. Task-number: QTBUG-29010 Task-number: QTBUG-28531 Change-Id: Ib6e2740aae417bdf7b3db9ef7deb646be98df1d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| | * Do not crash if the child index is out of range.Jan Arve Saether2013-02-061-3/+4
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-29077 Change-Id: I934101cdc121e9ef99de2e9eeaef154dd4cae0d8 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * Cocoa QPA: Fix compilation errorGabriel de Dietrich2013-02-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error appeared with latest clang as of Feb. 5, 2013. Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.2.0 Change-Id: I8df8cccc941ac03a7a997bdd5afe095b7b6f65d3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * QNX: Fix one more code path that led to having no QScreens.Sergio Martins2013-02-051-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt dereferences QGuiApplication::primaryScreen() inside, for example, QColormapPrivate::initialize(). libscreen always returns at least one display, even it it's not connected, so lets not ignore it if it's primary. Change-Id: I2f14a187c979ca0c7ad39149ceb0b2b7e61e9ba6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Show default shortcut menu when user right click window's captionJian Liang2013-02-052-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In windows platform, Qt5 will not show the system default shortcut menu when the user right click in the window's caption. This is a regression from Qt4. This patch will let DefWindowProc() to handle the message WM_CONTEXTMENU if the mouse pointer is in the non-client area of the window. Thus the default Windows shortcut menu will show up. Change-Id: I88638ad1d4f0e73b088204b83c3f7ec0fe2033f0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * QNX: Don't crash if we unplug the primary display.Sergio Martins2013-01-311-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QPA plugin assumes in several places that we have at least one QScreen. Even if patching the plugin to support 0 screens, Qt itself crashes when dereferencing a null paint device while synching the backing store. Change-Id: I2ac504a447aff811d6c07ab857340a3433557cdc Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>