summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-295-13/+27
|\ | | | | | | Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
| * Cocoa: avoid a crash in QCocoaDragLiang Qi2013-11-292-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | NSEvent needs to be copied. Reference: http://lists.apple.com/archives/cocoa-dev/2007/Dec/msg00678.html Task-number: QTBUG-33533 Change-Id: I73709545573e59aab6875a8c3dd903cb171e858f Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| * Allow resetting Qt::WindowFullscreenButtonHintZeno Albisser2013-11-271-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently Qt::WindowFulscreenButtonHint is only respected on window creation. But flags can also be adjusted later on. Further setWindowShadow can be removed from within createNSWindow, as it operates on a Nil object in that case. It is however called by recreateWindow / setWindowFlags subsequently. Change-Id: I507d6fde5ad2f0ee5b9db322325ede99b70e151e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| * QCocoaFileDialogHelper: Cache directory until delegate has been createdGabriel de Dietrich2013-11-272-2/+5
| | | | | | | | | | | | | | | | Task-number: QTBUG-34393 Change-Id: Idee9e879e586afe25fd099d157ed7af88c17c4a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | cocoa: Use swapInterval from QSurfaceFormatLaszlo Agocs2013-11-291-1/+1
|/ | | | | | | | | | xcb and windows already do this. The default value is 1 so the behavior on cocoa does not change when setSwapInterval() is not called. Task-number: QTBUG-31939 Change-Id: Id9d9204c9324f1cc187c6aee4286e7da42583759 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix compiler warnings.Erik Verbruggen2013-11-261-3/+4
| | | | | | | | | | | | | | As seen with Xcode 5.0.2. qmacclipboard.mm:108:30: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast] promiseKeeper(paste, (PasteboardItemID)promise.itemId, flavor, this); ^ qmacclipboard.mm:316:56: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast] PasteboardPutItemFlavor(paste, (PasteboardItemID)itemID, QCFString(flavor), 0, kPasteboardFlavorNoFlags); ^ Change-Id: I94b8ea2ff32d606d4cab28981b26c2ef516035dc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-11-262-2/+5
|\ | | | | | | Change-Id: I83ff8f4d7dffd7385013a1bd8a1732a89ee20d56
| * Handle the Qt::FramelessWindowHint correctly in CocoaAndy Shaw2013-11-211-2/+4
| | | | | | | | | | | | | | | | | | | | This fixes a regression introduced by be405c86f8efac7c6bc8b749725d6d0e0499314d. Task-number: QTBUG-34988 Change-Id: Id825b51d4d94826819d2405bb711886db3db8bc8 Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Fix crash regression for ApplicationWindow on MacJens Bache-Wiig2013-11-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a recent regression following the integration of change: 7cc1656fef21e6bdc044968a79f0a41155357c29 (Make sure menu bar has a parent window ...) As it now consistently crashes on mac in several of the Qt Quick Controls examples, it is critical that it gets into the release branch. Change-Id: If3db1025229a7f7fd4e7ecc703d5f655db73964d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Remove empty QAccessible2 headerFrederik Gladhorn2013-11-203-5/+3
| | | | | | | | | | Change-Id: Ia5e9b1adf9280e6b7d7aaf8cb5b5167b694a6070 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-11-204-9/+146
|\| | | | | | | refs/staging/stable
| * Fix the window flags for Cocoa windowsAndy Shaw2013-11-161-7/+5
| | | | | | | | | | | | | | | | | | | | This ensures that the possible window flag combinations are respected where possible in Cocoa. Task-number: QTBUG-34645 Task-number: QTBUG-31616 Change-Id: I6be8ca666b7cbc397575e97cd95ea298f52a7113 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
| * Fix compiler warning for cast from int to id.Erik Verbruggen2013-11-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | qcocoaapplication.mm:118:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast] id a1 = ([args->arg1 isKindOfClass:[NSNumber class]]) ? (id)[args->arg1 intValue] : args->arg1; ^ qcocoaapplication.mm:119:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast] id a2 = ([args->arg2 isKindOfClass:[NSNumber class]]) ? (id)[args->arg2 intValue] : args->arg2; Change-Id: Ibcf3d5d5698ff863f3c9bd65e0388ccca147f419 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * Remove stray debug outputLars Knoll2013-11-151-1/+0
| | | | | | | | | | | | | | | | This was actually causing test failures in qtdeclarative and blocking the CI there. Change-Id: I4538342f16b6468ad60b283c19948863b20ad5d4 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| * Update QSurfaceFormat when creating a GL context in the cocoa qpaSean Harmer2013-11-142-0/+140
| | | | | | | | | | | | Task-number: QTBUG-34471 Change-Id: I99f643280b8a4aaa8d63329232c0c3f4b2faed4b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Keep the dockwidget with the mouse when moving to another screenAndy Shaw2013-11-201-1/+11
|/ | | | | | | | | | | | When you move a dockwidget from one screen to another then it needs to be kept at the same position on the new screen, i.e. with the mouse pointer. This fix ensures that this is happening including when the screens may not 100% align up with each other. Task-number: QTBUG-33369 Change-Id: If414effdd0e0415629ca31a86f8bbe382dd29f80 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Cocoa File Dialog: Remove sandbox-ufriendly file system watcherGabriel de Dietrich2013-11-081-44/+49
| | | | | | | | | | | | | | | | | QFileSystemWatcher causes sandboxing errors since its backend uses POSIX API in a relatively liberal way. Also, Cocoa already acts as a file system watcher, and calls -[QNSOpenSavePanelDelegate panel:shouldShowFilename:] on each file. From a logical point of view, caching the directory content can be replaced by testing the current file against the filter setting. We expect Cocoa to cache results, and by using NSFileManager things should remain relatively fast. Task-number: QTBUG-34107 Change-Id: Ia872b9b1244f7b390d173a498011379b9309b3c6 Reviewed-by: Cyril Oblikov <munknex@gmail.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: fix a crash in QCocoaFileDialogHelperLiang Qi2013-11-081-1/+1
| | | | | | | | | Current directory can't be nil. Task-number: QTBUG-34561 Change-Id: I58c84da4928bd9081c916b6e5541bb86cf75ed47 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa (OpenGL): If no view is attached, makeCurrent() should return falseGabriel de Dietrich2013-11-051-0/+2
| | | | | Change-Id: Ie2869fae1549c3b0a8ef78702410e6ca0c980737 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Don't hide views when reparentingGabriel de Dietrich2013-11-051-0/+3
| | | | | | | | | Commit a2bdda8e3ba32 was meant for creation only. We should not hide views on our own, particularly when Qt had not asked for that. Task-number: QTBUG-33581 Change-Id: Ib35fc78a27be1498f80aabd385e7a2185475b949 Reviewed-by: Morten Johan Sørvig <morten.sorvig@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>
* Cocoa: Improve cursor setting.Morten Johan Sørvig2013-11-015-44/+88
| | | | | | | | | | | | | | | | Implement cursor setting in terms of [NSCursor set] and [NSView cursorUpdate] using the window tracking area. Refactor cursor conversion into QCocoaCursor:: convertCursor. Rename QCoocaWindow::m_underMouseWindow to m_enterLeaveTargetWindow since it's set according to spesific enter/leave logic. Add m_windowUnderMouse which tracks mouseEntered/mouseExited state. Task-number: QTBUG-33961 Change-Id: Id5e12594f5db365e09c9926a4c08d748a9afb935 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac: Modify Qt::SizeAllCursor to look like arrowsKari P2013-10-313-3/+3
| | | | | | | | | On Mac, Qt::SizeAllCursor showed a spreadsheet cell selection cursor. It has been changed to look like it looks in the Qt Documentation. Task-number: QTBUG-27577 Change-Id: I2d50ab0d813137366b56cb30b8784ecf70392d4e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Different native Cocoa menu fixes.Christoph Schleifenbaum2013-10-292-11/+19
| | | | | | | | - Fix location of NSMenu when no NSView is given. - Fix shortcut when given in text with tab. Change-Id: Iec21cf3d12084db1e70c1a8779d5482c78285796 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Fix mouse event coordinates transform to window spaceGabriel de Dietrich2013-10-291-22/+21
| | | | | | | | | | | We pass the mouse screen coordinates that we convert to window space instead of the other way around. This makes sure the original mouse coordinates are not bound to any moving window. Task-number: QTBUG-29583 Task-number: QTBUG-32221 Change-Id: I8f9ada6e8c0d20af8e85e88ee39190d23e58977f Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Fix compile warnings on 10.6Morten Johan Sorvig2013-10-253-0/+3
| | | | | | | | Apple clang 3.0 complains about missing function declarations. Add them. Change-Id: Ib9c3c238c94e8649844cf3e67a659875ad549ecb Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Accessibility: Make it possible to send events with no QObjectFrederik Gladhorn2013-10-251-7/+3
| | | | | Change-Id: Icbb9d15ec52ff5f7718eaf3600cab140971274aa Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Cocoa: Allow popups to grab mouse and keyboardGabriel de Dietrich2013-10-182-1/+9
| | | | | | | | | According to the QWindow documentation this should happen regardless of the window type. (It also mimics the current behavior on Linux and Windows). Change-Id: I1b0959ad8cf19bce452fd79a13b07d0a3a3c49e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Implement native gestures on OS X.Morten Johan Sørvig2013-10-171-0/+96
| | | | | | | | | | | | | | | Add QWindowSystemInterface::GestureEvent and QNativeGestureEvent to QtGui. These events are copies of Qt4's QNativeGestureEvent, where it was an implementation detail of QGestureManager. Add gesture message handlers to QNSView and bring back the Mac gesture recognizers for QGestureManager. Task-number: QTBUG-28126 Change-Id: I1304e09e776fa7c44d133d54ca8b895ca2f544c5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Ensure that context menus show even if the window is not active on MacAndy Shaw2013-10-162-4/+14
| | | | | | | | | | | When using the mouse to show a context menu on Mac then even if the window is not active then it will show the menu for native applications. So this ensures that this is respected for context menus in Qt too. Task-number: QTBUG-31497 Change-Id: Ibfcb4b893b0e31d4ce36926a83c9214d130d8fa2 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* OS X: a dialog should always have an enabled titlebar close buttonShawn Rutledge2013-10-161-5/+11
| | | | | | | | | regardless of modality. Task-number: QTBUG-28385 Task-number: QTCREATORBUG-9264 Change-Id: Iaa608f6e742686d4068547766ec596e37c696a07 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Deliver key event to top-level QWidgetWindowGabriel de Dietrich2013-10-161-12/+21
| | | | | | | | | | | | | Having several QWidgetWindow in our hierarchy translates as as many NSViews. Clicking will make the NSView under the mouse cursor key, meaning it will receive all the Cocoa key events. In order to make sure the QWidgets hierarchy sees the key event "as usual," we climb the QWindow hierarchy in search for the top-level QWidgetWindow. (Something similar is already being done in -[QNSView becomeFirstResponder]). Task-number: QTBUG-32914 Change-Id: Idc700309d202820de326d4e2990fad24d7b692ae Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-2/+2
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@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>
* Cocoa: Properly unhide views after they're moved to their own windowGabriel de Dietrich2013-10-041-2/+5
| | | | | | Task-number: QTBUG-32221 Change-Id: I12a475c7a5abdc5ba4d7359d694dd62ea97e67c4 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-302-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix regression in trackpad scroll event handling.Morten Johan Sørvig2013-09-271-10/+11
| | | | | | | | | | | | | | | | | | | | | | bab29dd76 changed scroll event handling to update the keyboard modifier state during scroll event streams and brought back the bug where Qt Creator would suddenly change the font size if you pressed the command key while scrolling. Use momemtumPhase to detect scroll event streams. momemtumPahse will be NSEventPhaseNone as long as there are fingers on the trackpad. After liftoff it will have a different value, and at this point we freeze the keyboard modifier state until the scroll event stream has ended. This approach does not interfere with normal mouse scroll wheels since momentumPhase is PahseNone for all such scroll events. Change-Id: I668ade8e794a97491487c9465366a316a7d6a9c8 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Clear m_activePopupWindow on popup close.Morten Johan Sørvig2013-09-271-7/+9
| | | | | | | | | | | | | | | | QCocoaWindow keeps track of popup windows in order to close them when appropriate, for example on mouse clicks outside the popup. In this case the mouse click will be used to close the popup, and will not be send to the QCocoaWindow. Clear m_activePopupWindow when the popup is closed to fix a bug where the first mouse click after closing a popup would have no effect. Change-Id: I7a3e850e4fbf4686540d5d89dac6d7b613ed10a4 Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Allow widgets to receive events event when no app is runningGabriel de Dietrich2013-09-262-2/+11
| | | | | | | | | | This is necessary for QMacNativeWidget, where there exists a QApplication, but is never executed. This directly translates in calls to the event dispatcher's processEvents() function, whose calls we keep track. If no calls have been made, we always allow timer and posted events to be processed. Change-Id: Ia0062ee8c59a2572082f520a2eb85ed44a9856a7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QCocoaBackingStore: Initialize non-opaque images with transparent colorGabriel de Dietrich2013-09-261-0/+2
| | | | | | | | In particular, this is needed when a QWidget has WA_TranslucentBackground set and nobody is painting anything behind it (except maybe some native view). Change-Id: Ib1f0714f85fa7eeced527617ecd09bb2ed6ddfc9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* [QNSView viewWillMoveToWindow:] remove observer from previous windowShawn Rutledge2013-09-261-2/+2
| | | | | | | | Even if there is not a new window, the notifications from the old one are not needed. Change-Id: I9c1858d25e49379ca4737e23beec06623e91b69c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac: QWizard default background pixmap works againLiang Qi2013-09-262-0/+32
| | | | | | | | Task-number: QTBUG-26722 Change-Id: I579111b5d34f8e3cdc6bb016d9c0e42ec3ffb8c9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Stephen Chu <stephen@ju-ju.com>
* Fix QT_NO_PRINTER build on MacVitalii Shastun2013-09-264-2/+10
| | | | | | | | On Mac the QT_NO_PRINTER build was not implemented. Task-number: QTBUG-33565 Change-Id: I118472f9400aa0a0d0e192ae39a11ea38a66f340 Reviewed-by: John Layt <jlayt@kde.org>
* QCocoaApplicationDelegate: Play nice with the user's application delegateGabriel de Dietrich2013-09-251-7/+6
| | | | | | | We tended to ignore the original application delegate a bit too often. Change-Id: I0844c8658d128e4fbb9a6fc5000025f55e5293c2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Use internal style mask to disable resizing popup parentsGabriel de Dietrich2013-09-242-5/+10
| | | | | | | | | Using QCocoaWindow::windowStyleMask() resets some private flags Cocoa sets when showing sheets. Task-number: QTBUG-33126 Change-Id: I34f0713f98e81e7010b0b7620ee24ea30f04dcff Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Remove some qBinaryFind usages from the Cocoa helpersGiuseppe D'Angelo2013-09-241-4/+4
| | | | | | | | This is done per the mailing list discussion at http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I374ee2c88ee18d20fb2b295c936adaca1d696199 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Merge branch 'stable' into devSergio Ahumada2013-09-212-1/+9
|\ | | | | | | Change-Id: I37d85631ab1165ab91457d8880c4da907a9df73b
| * Keep Cocoa screen list in sync on screen connect.Morten Johan Sørvig2013-09-172-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 recent attempt to fix Invalid Drawable error on Mac.Chris Meyer2013-09-132-7/+3
| | | | | | | | | | | | | | | | This reverts commit 59fd36bb914cae248d3c5100dd734d6d90a58dca, which caused other drawing problems. Change-Id: I3bb75fd3ca1cd21ffbb9ef5474266f4cd615a64a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Revert "Fix Invalid Drawable error when using createWindowContainer on Mac."Gunnar Sletta2013-09-202-7/+3
| | | | | | | | | | | | | | | | | | This reverts commit 04325bdd26810cd9067ad4b0b9e458b06ce2a3db. This change breaks qtdeclarative on Mac. Change-Id: I77b121cc6b283cf7498e93e4b914d2fb68808ab6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>