summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaintegration.mm
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Session management for OS X"Olivier Goffart2014-07-131-8/+0
| | | | | | | | | Broke tst_QMenu::statusTip by closing the menu while it should not. (and therefore, a QTimer::singleShot that fires while following test are running is making the test fail) This reverts commit 50c04d631858639c630e85456e7e003a80e33493. Change-Id: Ib4ef8190f945b915fe268745cc64d471994c5e2d Reviewed-by: Richard J. Moore <rich@kde.org>
* Session management for OS XSamuel Gaist2014-07-101-0/+8
| | | | | | | | | | | | | | This patch aims to implement the session management available on OS X. Currently applicationShouldTerminate is just a go through that closes everything and ends the application. The new implementation calls first appCommitData and cancels the termination properly if required. This means that if a user wishes to logout, Qt applications can now cancel that like e.g. answering to Safari asking whether it is ok to close because of a number of opened tab/window. Task-number: QTBUG-33034 Change-Id: Icedc8590a1c0934d9bc87d3a43d6702a9903bfb8 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-011-11/+30
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/qnx-x86-qcc/qplatformdefs.h src/corelib/global/qglobal.h src/network/socket/qnativesocketengine_winrt.cpp src/plugins/platforms/android/androidjniaccessibility.cpp src/plugins/platforms/windows/qwindowswindow.cpp Manually adjusted: mkspecs/qnx-armle-v7-qcc/qplatformdefs.h to include 9ce697f2d54be6d94381c72af28dda79cbc027d4 Thanks goes to Sergio for the qnx mkspecs adjustments. Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
| * Cocoa: Re-implement QCocoaScreen::topLevelAt()Morten Johan Sørvig2014-06-061-11/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation used [NSApp orderedWindows] which does not return NSPanel subclasses, which is used by Qt dialogs and pops. Use [NSWidow windowNumberAtPoint:belowWindowWithWindowNumber] instead, which hit-tests on all window types. This can potentially include windows from other processes and non-Qt windows which needs to be filtered out. Add EXPECT_FAIL to tst_MacGui::nonModalOrder. The correct topLevelAt() implementation now exposes that this test is failing. Task-number: QTBUG-39322 Change-Id: I81afa3da964e08fe682802220d8fe81e9284205e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | OS X: Fix build with QT_NO_OPENGLSergio Martins2014-06-301-0/+4
| | | | | | | | | | | | Task-number: QTBUG-31151 Change-Id: I7ed8117ae05ba0eebaf85731c7fdd2bb51d6ed04 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Support adapting an existing NSOpenGLContext in cocoaLaszlo Agocs2014-06-251-1/+5
| | | | | | | | | | Change-Id: I61b4055020c82dd5ac40850fe7def91d26ffb6fe Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devJ-P Nurmi2014-06-051-12/+5
|\| | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt.prf src/plugins/platforms/xcb/qxcbwindow.h src/tools/qdoc/qdocindexfiles.cpp src/widgets/kernel/qwidget_qpa.cpp Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
| * Cocoa: Remove the NSWindow -> QCococaWindow hash.Morten Johan Sørvig2014-05-261-12/+5
| | | | | | | | | | | | | | | | Cast the NSWindow to a QNSWindow instead. Now there is no way we can fail to maintain the hash properly. Change-Id: I5fd03b6fad964a61fadb3460b7063fd43ff25c79 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | OS X: Add support for ApplicationState capabilitySamuel Gaist2014-04-241-2/+1
|/ | | | | | | | | | | | | | | | Currently a click on e.g. the dock icon is not propagated to the application so if for example the main widget is hidden, it can't be brought back. Also neither applicationDidBecomeActive nor applicationDidResignActive do anything. This patch fixes it [ChangeLog][QPA][OS X] Add support for ApplicationState capability. Application can now detect when an application states has changed as well when the dock icon has been clicked. Task-number: QTBUG-10899 Change-Id: I53d3e6eed4adc62b343e7aa3e3d8068d3248e7df Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Make QScreen::topLevelAt() work correctlyMorten Johan Sørvig2014-04-051-0/+28
| | | | | | | | | | | | | | | | | The QPlatformScreen::topLevelAt() default implementation is flawed in that it does not check z-ordering but simply returns the first window in the window list that contains the test point. Add QCocoaScreen::topLevelAt(). Use [NSApp orderedWindows] to iterate through the window list in z order. Add a NSWindow->QCococaWindow mapping hash to QCocoaIntegration for getting the corresponding QWindow once a NSWindow is found. Task-number: QTBUG-37597 Change-Id: I7af70163a32528cb56f8d6caa037b98f580ee191 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Fix crash when disconnecting an AirDisplay monitor.Dyami Caliri2014-04-031-2/+7
| | | | | | | | | | | | | | | | | There are some cases where unplugging a monitor temporarily leaves a QCocoaScreen object with an invalid m_screenIndex. Debugging shows that the OS does not report the screen update before Qt attempts a repaint. This calls devicePixelRatio(), which calls osScreen(), and the index for the screen is out of bounds. By temporarily exiting updateGeometry() when the screen is unavailable, we avoid the crash. The OS quickly reports the monitor state change and everything returns to normal, unnoticed to application. Task-number: QTBUG-37606 Change-Id: Iacb2ff22bd3df72a5d87b2289242fb393625af57 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* NSScreen screens may be empty so add the main screen in that caseAndy Shaw2014-03-291-2/+8
| | | | | | | | | | In some circumstances NSScreen screens can be empty yet there is still a valid main screen so we prevent any problems arising by ensuring we work with the main screen in that instance. Task-number: QTBUG-37876 Change-Id: I5827009a9894eb8c1d4f5addc6c6f59e1c50c3d0 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa: Enable QQuickWidget on Mac OS X.Morten Johan Sørvig2014-03-201-0/+1
| | | | | Change-Id: I0635bf0bfcd49c20987a81c6f8895fc3343fbd20 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Cocoa: added queryKeyboardModifiers() in platform pluginLiang Qi2014-03-151-0/+5
| | | | | | Task-number: QTBUG-37181 Change-Id: I9256d0c9b83d6e5982864dc747586cbe2322b60c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: remove qmacmime includes where not neededRichard Moe Gustavsen2014-03-061-1/+0
| | | | | | Change-Id: Id20df8b80f3064ac0d193124fb790a075a89e53c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: create QCocoaMimeTypes for Cocoa-only mime-typesRichard Moe Gustavsen2014-03-061-0/+2
| | | | | | | | | | | | Prepare to move qmacmime out of the cocoa port and into QPlatformSupport for sharing with iOS. This patch will start by moving tiff out, since it depends too much on old carbon image manipulation code that will not compile on iOS (depends on ApplicationServices etc). Change-Id: Id7a9b919c8f51fa9beb2f4ee2f13cca96894f6a6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Don't crash at toolbar cleanup time.Morten Johan Sørvig2014-02-261-0/+1
| | | | | | | Add missing iterator increment. Change-Id: Id663c38859b89c29009f67205da0fdd404a455c0 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Add setNSToolbar(QWindow *, NSToolBar *)Morten Johan Sørvig2014-02-101-0/+25
| | | | | | | | | | Calling this function associates the given native toolbar with the QWindow. QWindow will then set it on the native NSWindow at the appropriate time during window creation. Change-Id: I2a50f79b2a0453cc739f8d68e965e37b95998083 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Establish pattern for accessing globalsMorten Johan Sørvig2014-02-041-8/+20
| | | | | | | | | | Use a static QCocoaIntegration pointer instead of QGuiApplication. This removes the need to call out of the platform plugin as well as the casting from "platform" to "cocoa" types. Change-Id: If432b3567811223b73a67548e475e07d63635b73 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix static builds on Mac.Morten Johan Sørvig2013-12-181-2/+2
| | | | | | | | | | | | | QMacPasteboardMime is a public class in Qt 4. Qt 5 has two copies, one public QtMacExtras and an internal one in the cocoa plugin. This causes a symbol collision when building statically. Rename the internal copy to QMacInternalPasteboardMime. Task-number: QTBUG-35310 Change-Id: I891787b451a0b342ed85aa7196e606bc11623e21 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Remove Q_INIT_RESOURCE_EXTERNTor Arne Vestbø2013-11-051-1/+0
| | | | | | | | | | | It's not providing any convenience over using Q_INIT_RESOURCE, which does its own extern, were never documented, and was added back in 2010 without any commit message justifying its existence. Change-Id: I1ca9a042d3f4fca34007d28b140661c50064f11b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix QScreen::grabWindow for multiple screens on MacAndy Shaw2013-10-071-1/+2
| | | | | | | | QScreen::grabWindow() would only with the primary screen on Mac, if you tried to grab a secondary one then it would end up with a blank pixmap. Change-Id: I24f604051835db96286c693f5ed60a2633b6528e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QPA: Fix semantics of GUI event dispatcher ownership in platform pluginsTor Arne Vestbø2013-09-301-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QPlatformIntegration::guiThreadEventDispatcher() function acted as an accessor to event dispatchers created in the constructor of each platform plugin, but the logic and semantics of event-dispatcher handling in Qt itself (QCoreApplication/QGuiApplication) still assumed both ownership and control over the event dispatcher, such as when to create one, which one to create, and when to delete it. This conflicted with the explicit calls in the platform plugins to QGuiApplication::setEventDispatcher(), as well as left a possibility that the event-dispatcher created by the platform plugin would never be deleted, as none of the platform plugins actually took full ownership of the dispatcher and deleted it in its destructor. The integration function has now been renamed back to its old name, createEventDispatcher(), and acts as a factory function, leaving the logic and lifetime of event dispatcher to QtCoreApplication. The only platform left with creating the event-dispatcher in the constructor is QNX, where other parts of the platform relies on having an event-dispatcher before their initialization. We then need to manually take care of the ownership transfer, so that the event-dispatcher is still destroyed at some point. Change-Id: I113db97d2545ebda39ebdefa865e488d2ce9368b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-09-211-0/+8
|\ | | | | | | Change-Id: I37d85631ab1165ab91457d8880c4da907a9df73b
| * Keep Cocoa screen list in sync on screen connect.Morten Johan Sørvig2013-09-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The backtrace in QTBUG-33012 indicates that the screen list is getting out of sync on plugging/unplugging an external monitor. This happens on 10.9 only. Check if we are about to out of bounds access the screen list; call updateScreens() which will add the new screen. Task-number: QTBUG-33012 Change-Id: Id1acc3baca9e60e7f2a83188d66cdf9d322a582c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Revert Mac event loop changes.Morten Johan Sørvig2013-09-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Make QGuiApplication::exec() run within NSApplicationMain()" "Make Qt process native and timer events on Cocoa applications" "Cocoa: Fix QFontDialog, QColorDialog auto-tests" This reverts commits 1e14762b8d79118540bd09a84dd3e48f4f5e113e e4b2a0b4bab2a17a65fedafe9bae50af1fe019f6 df7944e7d7dd8b2bbccbd639eff0ab09745d6cc3 Change-Id: I80b65b5ee0297b090f807bd420664233dfc44f7b Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Make QGuiApplication::exec() run within NSApplicationMain()Gabriel de Dietrich2013-08-291-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We follow the same pattern as for iOS and Windows ports, making sure the user's main() runs in a platform friendly environment. In this particular case, it means calling the user's main() during the call of NSApplicationMain(), and calling the user's main() function (renamed to qMain() as in Windows) after receiving NSApplicationDidFinishLaunchingNotification. In practice, this means that NSApp is running when qMain() is called, and therefore when QCoreApplication::exec() is called. For those command-line utilities running on QGuiApplication, or any deriving class, and that do not provide a bundle, we override the main bundle's dictionary and get NSApplicationMain() to run as usual. Added cocoa/cocoamain "subdir" to build libqtcocoamain.a (together with cocoa/cocoaplugin -- plugins/platforms/cocoa is made a subdirs project). This library is linked against all GUI Qt apps and provides the actual main() function. It also catches the launching NSApplication notifications, and calls the user's qMain() function. Note that this will happen in the same cases when the user's application will run with the Cocoa QPA plugin. Launch related code in QCocoaApplicationDelegate is moved to libqtcocoamain, QNSApplication is removed (but sendEvent: redirection still there), and code in QCocoaEventDispatcher dealing with calling [NSApp run] and related has been removed since it's become unreachable. ChangeLog: [Qt for Mac] Make QGuiApplication::exec() run within NSApplicationMain() Change-Id: I790e5138c29aac2e0215a9147d0148fece40ca22 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-271-1/+1
|\| | | | | | | | | | | | | | | Conflicts: configure mkspecs/features/create_cmake.prf Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
| * Fix typo QCocoaAccessibilityFrederik Gladhorn2013-06-231-1/+1
| | | | | | | | | | Change-Id: Ib3fe4e30097af9c5c577757594196710c0998184 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-05-231-0/+1
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qdatastream.cpp src/corelib/io/qdatastream.h src/corelib/json/qjsonwriter.cpp src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbkeyboard.cpp Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
| * Cocoa: Add support for ForeignWindow window typeGabriel de Dietrich2013-05-081-0/+1
| | | | | | | | | | | | | | Necessary to make QWindow::fromWinId() work on Mac. Change-Id: I0dc3a1b0d63cff61d484693aee711dc54fea6b2f Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Improve Qt-in-namespace implementation in the Cocoa platform pluginRomain Perier2013-05-161-4/+4
|/ | | | | | | | | | | | | Objective-C++ does not support namespaces. In order to make this work, we decorate each symbol with suffix using the macro QT_MANGLE_NAMESPACE. However, with such a technic each public symbol needs to be explicitly exported through this macro. The use of @compatibility_alias allows to define alias to use it automatically and transparently. Task-number: QTBUG-23946 Change-Id: Id521b8160bab126fda40a9d960277b1c04cc8b66 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac: Fix various memory leaksGabriel de Dietrich2013-04-181-1/+3
| | | | | Change-Id: Id554be11ffcf9a506c217b0dc5b96cb37c4dd57c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cache QAccessibleInterfaces.Frederik Gladhorn2013-04-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since there already is a one-to-one relationship between QObject and QAccessibleInterface it makes little sense to create and destroy the interfaces on each call to queryAccessibleInterface. Add a cache and keep created interfaces around for the lifetime of the corresponding QObject. This changes the memory management rules: accessible interfaces must no longer be deleted. If you get an QAccessibleIntrface pointer that pointer will stay valid as long as the corresponding QObject is not deleted. This also re-enables accessibility for Mac. We limit the range of the IDs so that they are useable for Windows directly. That means we can get rid of the event cache there. This is based on: Iebf2f374916fc70a9dd29e95f45a6444b85f6cee Change-Id: I9fe6531812c0dbc5b41101ac05830a6dd75e13a3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QCocoaScreen: Properly align secondary screens w.r.t. primary screenGabriel de Dietrich2013-03-271-5/+22
| | | | | | | | | | | | When using different resolution screens, one can arrange them around the primary screen. However, the vertical offset has to take into account the fact that NSScreen origin is bottom-left, whereas QScreen origin is top-left. This usualy impacts the geometry's y coordinate, and can result in popups showing in the wrong screen. Task-number: QTBUG-30348 Change-Id: I159e6be2b590bd2d9a31f3f36c3785afcc62123e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-051-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/generators/mac/pbuilder_pbx.cpp src/corelib/kernel/qtimerinfo_unix.cpp src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
| * Cocoa: Make grabWindow work on retina displays.Morten Johan Sørvig2013-02-251-3/+3
| | | | | | | | | | | | | | | | | | Not taking the devicePixelRatio into account causes us to either grab a quarter of the screen or do a low-resolution grab. Change-Id: Ie6b681e3a089f17b63554c8158bb471a14963d7a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@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>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Cocoa: Fix zombie NSScreen crashGabriel de Dietrich2013-01-041-7/+12
| | | | | | | | | | | | While the Cocoa documentation says we should not cache [NSScreen screens], it seems that we should not cache its referenced objects either. This caused a crash in desktop components when using Dial because, given the way it is being rendered, we need to know the screen pixel ratio. Task-number: QTCOMPONENTS-1279 Change-Id: If5c3c6f14d04925215b9dca011143a2056a68846 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Implement Cocoa KeyMapper.Morten Johan Sorvig2012-12-071-0/+6
| | | | | | | | | | Port Qt 4 implementation. Shortcuts such as shift-5 should now work. Change-Id: I1d8c4c6c4a903142361996b558ee31c8549fcef6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Basic high-dpi "retina" support for Qt 5.Morten Johan Sørvig2012-12-011-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Bring Qt 5 on par with Qt 4, prepare for more comprehensive support later on. Introduce device independent pixels (dips), device pixels, and devicePixelRatio. Add high-dpi support to QPainter, QGLWidget, the cocoa platform plugin, mac and fusion styles. Dips are similar to CSS pixels, Apple points and Android density-independent pixels. Device pixels are pixels in the backing store/physical pixels on screen. devicePixelRatio is the ratio between them, which is 1.0 on standard displays and 2.0 on "retina" displays. New API: QImage::devicePixelRatio() and setDevicePixelRatio() QPixmap::devicePixelRatio() and setDevicePixelRatio() QWindow::devicePixelRatio() QScreen::devicePixelRatio() QGuiApplicaiton::devicePixelRatio() Change-Id: If98c3ca9bfdf0e1bdbcf7574cd5b912c9ff63856 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Cocoa: Disable accessibility.Morten Johan Sørvig2012-12-011-2/+2
| | | | | | | | | The accessibility implementation is unstable and causes application crashes. Disable until it has been stabilized. Change-Id: Ic34361a0ad599c6f92df722499d274fe0655646b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Implement EditableText accessibility for Mac.Morten Johan Sorvig2012-11-151-1/+2
| | | | | Change-Id: Ibe03975bafc5a6a420b3bd69dfaa93dbf65c9958 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Support native event filter for Mac OS XLiang Qi2012-11-091-1/+4
| | | | | | | | | | | Ported from Qt 4 implementation, updated with QAbstractEventDispatcher::filterNativeEvent() call. Tested with an example. Change-Id: I3271f8a565d06d80b7b48ba81728bcdb7b1c32e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Fix fonts on retina displays.Morten Johan Sørvig2012-11-021-4/+3
| | | | | | | | | | | | | | | | | | | Hardcode logical dpi to 72 again. NSDeviceResolution gives us the physical dpi (144) and results in double- sized fonts in Qt. QPlatformScreen does not currently have a physicalDpi virtual, perhaps this can be added later on. Unfortunately the usefulness of a per-screen correct DPI metric seems questionable to me: 1) The value returned by the system is not correct, pixels per inch on the rMBP is around 220. 2) Qt always uses the dpi for the main screen, via qt_defaltDpiX/Y. Change-Id: Ia35804be62ee7f1c623bad854f65d744dc9075d4 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Added MultipleWindows platform capability.Samuel Rødal2012-11-021-0/+1
| | | | | | | | | | | | | | Several platform plugins, like eglfs, kms, etc don't support multiple windows as there's no system compositor, they're rendering directly to a single back buffer. By adding a platform capability we'll be able to provide better error reporting when an application tries to create multiple QWindows on a single-window platform. Also, QML apps can use this capability to figure out whether they should create a QWindow for dialogs / popups / menus, or whether to just create items in the same scene, that are shown on top of the rest of the content. Change-Id: I15b8d21ee2bc4568e9d705dbf32f872c2c25742b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Compile cocoa with QT_NO_ACCESSIBILITYJan Arve Saether2012-11-021-0/+6
| | | | | Change-Id: I82b5dbf1bce94bd928eee207992c0036edc527ad Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Mac: Add support for WindowMasks platform capabilityGabriel de Dietrich2012-11-021-5/+8
| | | | | | | | Also brings back a working QWidgetPrivate::setMask_sys(). Change-Id: Idde9eea15d28bb0299258df81322a5a3ff0b9493 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* osx: support for QScreen changes at runtime, and physical dimensionsShawn Rutledge2012-10-081-19/+81
| | | | | | | | | | | | | QScreen's physical size and logical DPI come from the operating system. Physical DPI is calculated as pixel size / physical size. Whenever the user changes the display settings, applicationDidChangeScreenParameters is called; QScreens are created and destroyed when displays are added and removed, and each QScreen which continues to exist gets updated properties from the OS. Change-Id: I7f2e9e32a3ad53d73ea987f39a0c62fa8dd22b05 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>