summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Unify input device hotplugging support for embeddedLaszlo Agocs2015-01-212-26/+2
| | | | | | | | | | | | | | | | | | | | | | On embedded the mouse cursor will now appear and reappear regardless of how the input handling code is loaded (via a generic plugin or compiled-in to the platform plugin). Instead of passing around QDeviceDiscovery instances that only works when compiling-in the code into the platform plugin, introduce a new internal central QInputDeviceManager. The single instance of this provides a place to store any future input device related signals and properties. Also introduce mouse hotplugging support to linuxfb. [ChangeLog][QtGui] The mouse cursor on Embedded Linux is now handling hotplugging correctly with eglfs and linuxfb regardless of how the input handling code is loaded (via a generic plugin or built in to the platform plugin). Change-Id: I147c1b04a193baf216598015264f2c06e1b20f84 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Added new private API for Android and onNewIntentPeter Rustler2015-01-211-1/+7
| | | | | | | | | | | | | On Android the foreground activity can get intents with onNewIntent. Those intents can not be received in any other way. This is especially true in Android nfc. This patch adds a way to receive those intents in Qt. This patch heavily leans on the implementation of onActivityResult. Change-Id: Ic4dca301f34afe9a528149c3653e545ed3265a3c Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-2127-97/+322
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| * Respect the hotspot passed in for the cursorAndy Shaw2015-01-191-3/+5
| | | | | | | | | | | | | | | | | | | | | | When the hotspot is set to be QPoint(0,0) then QPoint will see this as being a null QPoint. However, it is a valid position as far as the hot spot for the cursor is concerned, so we default to QPoint(-1,-1) instead and check for that. Task-number: QTBUG-43787 Change-Id: Ibf6253033016c4b556b8a2a79c89819a4d5825cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Only call ShowWindow() once when going from FullScreen to MaximizedAndy Shaw2015-01-191-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since going from FullScreen to Maximized is taken care of inside the FullScreen block then we don't want to call ShowWindow() again in the Maximized block. Therefore the Maximized block is moved so it is only invoked if it is not coming or going to fullscreen. As the minimized case is not accounted for in FullScreen that is left as is in its own if block. Task-number: QTBUG-43849 Change-Id: I3141347e072c50b2a4475098d7b8ee0b207578a7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
| * Turn off font hinting when we do high DPI scalingPaul Olav Tvete2015-01-164-2/+16
| | | | | | | | | | | | | | | | | | Font hinting depends on the specific pixel size, and ends up very wrong when the painter is scaled. Change-Id: I2007ec7e7ad8d52358d76e88e030ea4df7e91455 Task-number: QTBUG-43809 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * Fix constantly growing window bug with devicePixelRatioPaul Olav Tvete2015-01-161-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | Rectangles need to be mapped differently depending on what they are used for. Expose events need to cover the entire geometry, so they must be rounded up, potentially increasing the size. If we use the same conversion for window geometries, it is possible to end up with a feedback loop if the window reacts to the new size. Task-number: QTBUG-43743 Change-Id: I7881cc77bf2148fed2ae743c4226617a61197434 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Windows: Use DND effect chosen in DragEnter/Move for Drop.Friedemann Kleint2015-01-161-1/+1
| | | | | | | | | | | | | | | | | | The value of pdwEffect passed to IOleDropTarget::Drop() is always the one with which the drag was initiated. Task-number: QTBUG-43466 Change-Id: I045fef634b55d4f113b393aa0ad4aa15d37db372 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * Fix namespacing of QNSViewMouseMoveHelperFrederik Gladhorn2015-01-162-5/+5
| | | | | | | | | | | | Task-number: QTBUG-43061 Change-Id: Ied8cdf49c34ef155b0f0bbc7e547b7c01bcd1d11 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * iOS: guard text responder from clearing selectionRichard Moe Gustavsen2015-01-152-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When programatically setting a text selection on iOS, we call [UITextInputDelegate selectionWillChange] to report the change. If auto correction is enabled, UIKit will then reset the current tracking, and for some reason tell us to clear the selection. This is contradictory to us saying the the selection is about to change, and will cause an unwanted recursion back to Qt. Since there seems to be no way to stop UIKit from doing this, this patch will instead add a guard that refuses to change the selection recursively while processing a selection change from Qt. Task-number: QTBUG-43716 Change-Id: Id487a57cdda55d7e2d09c3efc14c7f03f566f15a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * Multi-screen DPI support for X11Paul Olav Tvete2015-01-121-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculate the logical DPI independently per screen, but only when auto dpr is enabled. Using a constant DPI value for all screens, based on the combined geometry is arguably incorrect, but changing this now will cause pixel-size fonts to behave visibly different from point-size fonts when moving the window to a different screen. However, with QT_DEVICE_PIXEL_RATIO=auto, the pixel size fonts are already changing when the devicePixelRatio changes. Without this change, the point-size fonts will *not* adapt, which is a clear bug. Task-number: QTBUG-43713 Change-Id: I3e71618f9d55b7828ccd70b69a7b7ce656c69d65 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * X11 devicePixelRatio screen mapping fixPaul Olav Tvete2015-01-124-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix screen detection and window geometry when screens have different displayPixelRatios. We must use the native coordinate system to figure out which screen a window belongs to. Also, when a window moves to a screen with a different devicePixelRatio, we must recalculate the Qt geometry. Task-number: QTBUG-43713 Change-Id: I93063e37354ff88f3c8a13320b76dfb272e43a9c Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * xcb: build fix when XCB_USE_XLIB is not defined.Tomasz Olszak2015-01-111-0/+8
| | | | | | | | | | | | | | | | | | | | | | When XCB_USE_XLIB was not defined QXcbXSettings still used XIproto.h. This change removes XIProto.h dependency and leaves QXcbXSettings uninitialized when XCB_USE_XLIB is not defined. QXcbXSettings::initialize() is already used in other parts of code e.g. qxcbcursor.cpp. Change-Id: I48eb82e39c5c091b41e8ec19e742a21d41de2610 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
| * Fixes for surface creation/destructionBogDan Vatra2015-01-105-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - After reset a surface we must call makeCurrent before we are usign swapBuffers. - No need to set the surface in QPA when surfaceCreated are called in QtSurface.java, some time the OpenGL surface is not fully initialized at this stage. Is better to wait for surfaceChanged which is always fired at least once. - DO NOT reset m_surfaceId to 1 when there is no surface. The problem is that if we have one surface and when we distory it we don't (need to) wait for its surfaceChanged/surfaceDestroyed notifications, and if we create another one quicly it will have the same id (1). Task-number: QTBUG-39712 Change-Id: I2aa31e5b59d81ef3b03624d4636a4381eea6d543 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * iOS: Prevent recursion when updating/syncing QIOSViewController propertiesTor Arne Vestbø2015-01-091-0/+12
| | | | | | | | | | | | Change-Id: I22f1eaa892cba23c498ae210a9a483e468268581 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * iOS: Fix QWindow::reportContentOrientationChange on iOS6+Tor Arne Vestbø2015-01-094-17/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | On iOS 6 and above, [UIViewController supportedInterfaceOrientations] needs to return 0 for [UIApplication setStatusBarOrientation] to work. This means once you report a content orientation other than the primary orientation, you'll disable auto-rotation. Reporting the orientation as Qt::PrimaryOrientation restores the auto-rotation behavior. Change-Id: I1b8c765c507728fdbc5b828e0b4215324014e221 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * iOS: Move implementation details of QIOSViewController to class extensionTor Arne Vestbø2015-01-082-6/+10
| | | | | | | | | | | | Change-Id: I602d8f1c9f20d3bfed4db3405460021146b546d8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * Fix physical DPI and size for rotated screens on X11Paul Olav Tvete2015-01-082-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rotated screens would use the unrotated physical geometry, causing the calculated physical DPI to be completely wrong. In RandR, the output does not rotate, so the physical size is always for the unrotated display. The transformation is done on the crtc. http://www.x.org/releases/X11R7.6/doc/randrproto/randrproto.txt Task-number: QTBUG-43688 Change-Id: Ifde192fcc99a37d0bfd6d57b4cdeac124a054ca3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Uli Schlachter <psychon@znc.in>
| * Fix use-after-free bugGatis Paeglis2015-01-081-2/+2
| | | | | | | | | | | | | | | | | | | | xcb_image_destroy() calls free on m_xcb_image and then few lines down we access member of m_xcb_image. Swap order of these two actions. Change-Id: I01fb43a066459cce462df6af22161c35cef524eb Task-number: QTBUG-43623 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * iOS: Raise window level instead of hiding statusbar during VKB scrollTor Arne Vestbø2015-01-072-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hiding the statusbar using the normal iOS APIs result in QScreen reporting new availableGeometry, which is not what we want. The scroll of the screen is a purely visual effect, and shouldn't have any effect on observable Qt APIs besides the keyboard rect changing. Instead of actually hiding the statusbar, we achieve the same effect by raising the key window (and any other application windows, including the keyboard) to the level of the statusbar, effectively putting them above the statusbar. This still leaves popups and alert windows above the key window, as normal. Change-Id: Ib7694240ca86cfb9000de35bf0c49343ffb37e32 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * Prevent buffer overrun when getting the glyph imagesAndy Shaw2015-01-072-2/+16
| | | | | | | | | | | | | | | | | | | | The change 35bc3dc45aacaf36a8bdfccc7627136cc2e5b185 moved some padding out of QTextureGlyphCache into the font engines directly, however this was not done for the DirectWrite font engine so it caused a buffer overrun. Task-number: QTBUG-41782 Change-Id: I4e643159036f06c5edd8a742dc6694d517a47826 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * Windows: Remove check for minimum/maximum size constraints.Friedemann Kleint2015-01-071-14/+0
| | | | | | | | | | | | | | | | | | | | The warning was triggered when increasing the fixed size of a window. If there is a real violation of the size constraints, the below warning will show. Task-number: QTBUG-43420 Change-Id: I85d7d0a91d040aa3ddeff8c3d105351efd5e14a9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * Windows: Release mouse capture when window is blocked by modal window.Friedemann Kleint2015-01-071-0/+2
| | | | | | | | | | | | | | | | | | The capture needs to be cleared when for example a modal dialog is opened from a timer slot or similar while moving the window. Task-number: QTBUG-43308 Change-Id: Id0c01080d67d1057004a7f85b037dce5e220de42 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * iOS: Remove QIOSKeyboardListener self-change assert/guardTor Arne Vestbø2015-01-061-2/+0
| | | | | | | | | | | | | | | | | | We're fairly confident self won't change in that case, and the assert was causing warnings in release builds. Change-Id: I4a826579bb4cedef8423e8d43cb370e1f3b80407 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Introducing QPlatformGraphicsBufferJørgen Lind2015-01-172-0/+46
| | | | | | | | | | Change-Id: Idcf8f75bd151a877c7097b79df998c1ffd56871c Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | eglfs: Split kms integration into multiple filesLaszlo Agocs2015-01-159-901/+1245
| | | | | | | | | | | | | | | | | | | | | | Now that it's a plugin, the restrictions for the compiled-in hooks do not apply. Make it maintainable and prepare for future development by splitting up properly. The actual functions are not touched at all in this patch. Change-Id: I4c666817afe15b31a63c1f9fc01413e9a2376a3b Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* | eglfs: Fix hardware cursor with kmsLaszlo Agocs2015-01-151-1/+5
| | | | | | | | | | | | | | | | | | We have to set a default arrow cursor on startup because non-widget apps will not request one. This is how we behave with non-kms backends too. Change-Id: I11b7bf96e46f570bc49f3e8701616b13c480fda6 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
* | Do not build kms platform plugin by defaultLaszlo Agocs2015-01-151-4/+0
| | | | | | | | | | | | | | This plugin is deprecated and replaced by eglfs. Change-Id: Ib559ed411b145b2cb992cc475772894ecd936c07 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Avoid warning about QString from char in xcbLaszlo Agocs2015-01-151-1/+1
| | | | | | | | | | Change-Id: I013f0caa8aba7fef07c7dbe90ed01dfb85347223 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Add QWheelEvent::sourceShawn Rutledge2015-01-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is analogous to 0a92295ca829a62125c9f122fd3daec991993855 which added QMouseEvent::source. For now, we say that a wheel event is synthetic when it comes from a trackpad or other device that provides scrolling by some means other than an actual wheel. Change-Id: I0452ca2080b551b18b9c2f6e42db925d14ae339e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Support threaded OpenGL on linux again.Gunnar Sletta2015-01-102-0/+9
| | | | | | | | | | | | | | Broken since 8758f532ae6209bcf9447e27edc4fd412c0f173d. Change-Id: Ifadf37252cc7c1ca68b0a82320b12833f97bf302 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | eglfs: Update screen destruction to follow the new approachLaszlo Agocs2015-01-093-2/+13
| | | | | | | | | | | | | | | | Call destroyScreen(), like other platform plugins do since 9b4fbe85d2e00c625c3d4abd975faf555000f685. Change-Id: Idbddb026d7a964f15c00acfacf70064405dc3f16 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
* | Support threaded OpenGL on XCB/EGL.Gunnar Sletta2015-01-091-0/+2
| | | | | | | | | | | | | | Broken since 8758f532ae6209bcf9447e27edc4fd412c0f173d. Change-Id: I04cb9a36088ab6753c9519a911d065617f88fe08 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Compile in evdev code to linuxfbLaszlo Agocs2015-01-052-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it compatible with eglfs. The behavior is the same: By default mouse, keyboard and touch will all be initialized and, when having libudev support, discovered automatically. The environment variables QT_QPA_FB_DISABLE_INPUT and QT_QPA_FB_TSLIB can be used to used to disable the built-in input handlers and to force tslib instead of evdev, respectively. This allows embedded systems and applications to easily fall back from eglfs to linuxfb on devices that are not rendering via OpenGL. Dynamic hiding/showing of the mouse cursor is to be done separately, here we provide the necessary device discovery hooks only. [ChangeLog][QtGui] The linuxfb platform plugin's input device handling is now compatible with eglfs. The evdev keyboard, mouse and touch code is compiled in by default. Change-Id: I44bc661c53ae78c39b0f30486a475b4e639ab2d6 Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@theqtcompany.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* | Add a platform function to enable setting the touch flags on WindowsAndy Shaw2015-01-054-10/+34
| | | | | | | | | | | | | | | | | | This makes it possible for the flags that RegisterTouchWindow takes to be specified after the window has been created. Task-number: QTBUG-41433 Change-Id: I166143875ef54ab6a249cffb31d017845a694a01 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devSimon Hausmann2014-12-305-17/+10
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-295-17/+10
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/kernel/qplatformsystemtrayicon.cpp src/gui/kernel/qplatformsystemtrayicon.h src/plugins/platforms/xcb/xcb-plugin.pro Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
| | * Revert "OS X: rename special menu items instead of duplicating"Timur Pocheptsov2014-12-222-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8c538d10da618add00aba1acbc8d8dc2f24445b4. This patch, unfortunately, do not combine well with another problematic code producing, as a result, a serious regression. While the proper/better fix in Cocoa menu not found, I'm reverting this patch. Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16 Task-number: QTBUG-43471 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| | * Remove direct linkage to dbus and qdbusSimon Hausmann2014-12-181-5/+0
| | | | | | | | | | | | | | | | | | | | | It appears that there is no code in the plugin that actually uses dbus. Change-Id: I654cf0b8f5ecc018f2c6ae8701220f7496915a60 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QNX: Handle the case where screen returns a refresh rate of 0.Roger Maclean2014-12-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Screen sometimes returns a refresh rate of 0. This has been observed on VMWare though it is unknown if this is always the case and whether it happens on other platforms as well. Returning a refresh rate of 0 causes animations to fail so we're better off returning a value that might be wrong than returning 0. Change-Id: I4846017bcb0d6bd52faad727df4ef6dac1a6250f Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| | * xcb: Don't return 0 from QXcbKeyboard::possibleKeysAlexander Volkov2014-12-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's possible to get 0 for baseQtKey in case Caps Lock is used as a layout switcher. So don't include this value in the result. Similar fix was in commit d904533acba1267431ca2c5f0d3e85cc59a20a26. Task-number: QTCREATORBUG-9589 Change-Id: I46fc91f9faf6fd0699f062a72fd2ca3187232f5a Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | | Fix crash when running QtWayland compositor on xcb-egl.Erik Larsson2014-12-291-2/+3
|/ / | | | | | | | | | | | | | | | | | | | | When running the compositor on xcb the compositor backend will call nativeResourceForWindow with EglDisplay as resource. When this is done the window->handle() will be null and result in a crash. By returning just the eglDisplay() when the window->handle() is null solves the problem and also makes the compositor work. Change-Id: I72f4341402facc8c44a41151c4f76d6447bd8070 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Fix potential memory access violation issuesKonstantin Ritt2014-12-244-29/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LOGFONT docs clearly states `lfFaceName` member is a null-terminated string of length not longer than LF_FACESIZE, including trailing null. This patch covers two cases at once: 1. If family name is longer than LF_FACESIZE - 1, it would be truncated and terminated with null, to prevent memory access beyond the LOGFONT instance. 2. If family name is a fromRawData QString, we don't assume it is null-terminated either and guarantee trailing null ourselves. Change-Id: I8f607efc7d0901537a4179e36cc51df94203f08d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Fix build when using -egl and -no-xcb-xlibGiulio Camuffo2014-12-233-0/+8
| | | | | | | | | | Change-Id: I533f1d989b5f4b427ce572620e27c3870a64c2ae Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Add a function for QPA plugins to explicitly destroy QScreensGiulio Camuffo2014-12-2313-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPlatformScreen was automatically deleting its QScreen in ~QPlatformScreen(). That means that we cannot use QScreen's methods when the screen is being removed, because doing so would call virtual methods of QPlatformScreen. By that point the QPlatformScreen subclass object does not exist anymore, and we call the default implementation instead of the subclassed one, or get a crash for the pure virtual methods. This happens for example when removing a screen which contains a QWindow with some QML item using QQuickScreenAttached. This patch adds a QPlatformIntegration::destroyScreen() function, which deletes the QScreen and later the QPlatformScreen. ~QPlatformScreen will still delete the QScreen if it was not deleted with destroyScreen(), so code not ported to the new approach will continue to work as before, with only a warning added. Task-number: QTBUG-41141 Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Add some missing nativeResourceForIntegration imlementationsJørgen Lind2014-12-226-1/+61
| | | | | | | | | | | | | | | | The EglDisplay and the Display is normally a PlatformIntegration wide resource Change-Id: Ie5382a2a0b34fbe1c506b5134bf581afbd7f5d99 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Use Qt 5 signals & slot syntax in the Windows QPA plugin.Friedemann Kleint2014-12-202-14/+14
| | | | | | | | | | Change-Id: Ide8f79e82c9d22e40577e6fb0116ebaa2a6d90d9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devGiuseppe D'Angelo2014-12-2011-42/+68
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-1811-42/+68
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| | * Fix PDF when embedding fonts with large internal leadingEskil Abrahamsen Blomfeldt2014-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting lfHeight to a positive value in LOGFONT requests the font with the given cell height, which is em square size + internal leading. When setting this to the em square size, it means we will get glyphs that are actually sized for an em square with sides that are (emSquareSize - internalLeading). For most fonts, this was not noticeable, but for some fonts with large internal leading, the resulting glyphs would be very small. When setting lfHeight to something < 0 instead, we are selecting the font with the given character height instead, which is not including the internal leading. [ChangeLog][PDF] Fix embedding glyphs from fonts with large internal leading. Task-number: QTBUG-43082 Change-Id: Id74cf2279df2062804e9431fe305d803cb0b19d2 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>