summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/release' into stable" into ↵Frederik Gladhorn2013-06-037-33/+24
|\ | | | | | | refs/staging/stable
| * Use [NSEvent characters] to retrieve the input character.Gatis Paeglis2013-05-301-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is how it was done in Qt 4. An issue with the current approach was that it did not consider modifiers when setting a Qt::Key_* value, which would assign the same Qt keycode for: a = a(65) Alt + a = ā(65) [here it should return a unicode value for 'ā'] This is inconsistent with the other platform plugins. Also in the combination with a dead keys it was returning nothing in the output. Task-number: QTBUG-29005 (cherry picked from commit 6730413fcac1d7eb39af3683b87f965c5823cb6c) Change-Id: Ic28eb55b3a9798ecb6012cc2e3fb18589b8b0392 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Move QBasicDrag and QSimpleDrag to QtGui.Samuel Rødal2013-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | These are useful as default implementations of QPlatformIntegration::drag(), instead of having it return 0 which will lead to crashes in Qt Quick 2 and widgets applications that use drag and drop. Task-number: QTBUG-31288 Change-Id: I70efa139306ced5d879def0f74e3a72d3bcd64f7 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * QMenu: Remove last references to QMacWindowFaderGabriel de Dietrich2013-05-302-15/+3
| | | | | | | | | | | | | | | | | | It was never ported to Qt 5, and 10.7 has simple API for that. Task-number: QTBUG-31336 Change-Id: Ie00c4ed3af9cd098c9e63eba1c654f1801aa83aa Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Cocoa: Allow delayed title setting in menu itemsGabriel de Dietrich2013-05-301-2/+3
| | | | | | | | | | | | | | | | | | | | | | This is what happens in uic generated code. Therefore, we should not mark an item as text-synced until it's got its text set. Task-number: QTBUG-31378 Change-Id: I7bb7db8abad922b50546c7669d285369ebf01394 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Cocoa: Hide empty menus from the menubarGabriel de Dietrich2013-05-301-0/+11
| | | | | | | | | | | | | | | | Task-number: QTBUG-31378 Change-Id: I33ab2979a26166fb07e836c85dfc8089af5e1fda Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Cocoa: Use actual modifiers when sending ShortcutOverride eventGabriel de Dietrich2013-05-281-1/+1
| | | | | | | | | | | | | | Probably a typo since keyCode clearly has no modifiers encoded. Change-Id: I1c7908b06a759baf7b2c3462861a5d61f8c52b9f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* | Fix leak in QNSView.Ivan Komissarov2013-05-311-0/+2
| | | | | | | | | | Change-Id: Ide0e826bf068340c86d87a8ccbb3bd58b60f6d8c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Support Mac key equivalent Cmd+PeriodGatis Paeglis2013-05-312-0/+18
|/ | | | | | | | | | On Mac Cmd+Period isa special key combination which never got delived to Qt application. We can intercept these special keyboard shortcuts in the performKeyEquivalent function. Task-number: QTBUG-11386 Change-Id: I680385bde07b2810e8bde86ec9fbbe7e09156c84 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix transparent toplevels on Mac OS X again..Gunnar Sletta2013-05-283-7/+18
| | | | | | | | | | | | | | | | | We're using QWindow::format() to decide opacity or not in a few places, but this used to resolve to QPlatformFormat::format() which would in turn return a default format without alpha set. Instead, return the format requested by the user. Masked windows were always broken as converting a 32-bit image to an Indexed8, doesn't give a grayscale image, but rather a randomly spreadout set of indices based on the colortable generated by the converToFormat function. Task-number: QTBUG-28531 Change-Id: I537288f85c70b1e6194785b9ebcb5ea1f9581cee Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix crash in QCococaWindow::childWindowAt().Friedemann Kleint2013-05-231-9/+5
| | | | | | | | Task-number: QTBUG-31297 Change-Id: I96f4652e410334fae54a0012ed917a965becfe5c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Amend 5d07a4d9448f60 to avoid an assert in QWidget::mapTo()Gabriel de Dietrich2013-05-231-1/+2
| | | | | | | | For now, we only call 'flushWindowSystemEvents()' for top-level QWindows. Change-Id: Ie6f6d3f9b70241820d9c38bcc0caf832d521268b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Process initial expose events immediately.Morten Johan Sørvig2013-05-231-0/+1
| | | | | | | | | | | | Required to prevent qmlscene flicker on startup. Also brings back that qWait() in tst_QGL::graphicsViewClipping() that seems necessary after all. Amended-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Change-Id: I14ba6e18ac98e5df1ce8ecbc263b30176b67d111 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Make QWindow update its screen when moved to a different oneGabriel de Dietrich2013-05-233-1/+26
| | | | | | | | Also implements the Cocoa backend for that. Change-Id: I32977e12a04e1cf48b12333442482746c69ce133 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Cocoa: Make sure main window gets focus after closing modal dialogGabriel de Dietrich2013-05-231-3/+15
| | | | | | | | | | As explained in the code, this is due to our event dispatcher. This could also make applications crash due to the way we bind windows to the menubar in the Cocoa QPA plugin. Task-number: QTBUG-30451 Change-Id: I6dd190d5b3b83f1216caec0b14414efa771634a5 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa: Remove "Incomplete implementation" compilation warningGabriel de Dietrich2013-05-231-1/+1
| | | | | Change-Id: I1db62c2504b55ef1451cb147d745c19cbef7de1e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* A Dialog should not hide when the application is deactivatedShawn Rutledge2013-05-231-1/+3
| | | | | | | | To get this behavior, use Qt::Tool. Task-number: QTBUG-31133 Change-Id: I4811b5fe7e180a63bcdfe8018b35a56b370d9b61 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Ignore mouse enter/leave on non-exposed windowsShawn Rutledge2013-05-221-1/+2
| | | | | | | | | | | | | | | If you put two OpenGL widgets in two tabs, you will have several QNSViews on the Mac (because using OpenGL forces a lot of the widgets to be non-alien). The GL widget on the non-visible tab will not be exposed, but QCocoaWindow::childWindowAt is recursive and was returning the last window found which contained the mouse location; but the children are not reordered when switching tabs. It should ignore the invisible windows and report that the mouse entered the one which is visible. Task-number: QTBUG-30934 Change-Id: Iae28db56e15815671bf39e1b1f382c8c285532bd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Prevent windows from jumping when changing geometry on OS XTor Arne Vestbø2013-05-151-2/+1
| | | | | | | | | | | | | | | We were setting the frame origin and content size as two separate steps. The frame origin was asynchronous, while the content size was synchronous. This resulted in the window visually jumping/moving, instead of applying the new geometry in one single step. We now set both in one go using setFrame, by manually calculating the frameRectForContentRect. This makes the whole process asynchronous. Task-number: QTBUG-31039 Change-Id: Iaba46106b9f200c707507f330fa801c99e2e7d89 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Cocoa: Fix Open GL resolution in high-dpiGabriel de Dietrich2013-05-152-12/+10
| | | | | | | | | | | | We permanently enable 'wantsBestResolutionOpenGLSurface' when creating an Open GL window/surface. We were enabling it once we would detect a high-dpi Cocoa backend, whitout ever turning it off. Leaving it 'on' on non-high-dpi displays should not change anything. Task-number: QTBUG-31000 Change-Id: I3d0c77f7b36f3c22dacd04a50fcc5a7d88af32c0 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix breakage of tst_qquickwindow::grab(invisible)Andy Nichols2013-05-142-12/+9
| | | | | | | | | | | | Instead of waiting for -drawRect to call -setView on the NSOpenGLContext, we go ahead and attempt to set the context as soon as possible. If it is indeed required that we call -drawRect first then will try to call -setView again during -drawRect with the new NSOpenGLContext. Change-Id: I33d9f2ba241b49e8cfa6c9156dd5bf5e4cc6b164 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Cocoa DND: respect QDropEvent::setDropAction()J-P Nurmi2013-05-131-2/+5
| | | | | | Task-number: QTBUG-31061 Change-Id: Id3275a0510bfa619a52d17cf48a3e48b3bae5354 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Ensure the hovered signal is emitted for the action and menu for CocoaAndy Shaw2013-05-131-0/+10
| | | | | | | | | | In the Cocoa platform plugin the hovered signal() was not being emitted for the corresponding QMenu. This now ensures it is emitted for the action itself and its QMenu. Task-number: QTBUG-30841 Change-Id: I3cfe634a71de7b55550e2561eb1c6a939536216d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix Invalid Drawable error for QGLWidget on MacAndy Nichols2013-05-102-1/+19
| | | | | | | | | | You are not supposed to call NSOpenGLContext -setView: for a view that has not yet called drawRect. We we attempted to do this, we would get the invalid drawable error, leading to QGLWidgets just drawing garbage. Task-number: QTBUG-28175 Change-Id: I47aef07b4676f2db8591f98fc1661f6f447bdef9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Revert "OSX: obey the Qt::WindowTransparentForInput flag"Gabriel de Dietrich2013-05-081-2/+0
| | | | | | | | | | | | | This reverts commit 79e729e111dd799ddbe281aaddfbc0e1ec0e7bc0, which partially fixed QTBUG-30122 and will need to be reopened. On the Creator side, we think using the Qt::ToolTip flag is a bit unsafe since tooltips are supposed to have very limited interactivity. We would like to propose to use a similar pattern as in QComboBox instead. Task-number: QTBUG-30702 Change-Id: I245b7d8b16ac870564ea44f24f481ebfec8ca9a1 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Cocoa: Add support for ForeignWindow window typeGabriel de Dietrich2013-05-082-2/+10
| | | | | | | Necessary to make QWindow::fromWinId() work on Mac. Change-Id: I0dc3a1b0d63cff61d484693aee711dc54fea6b2f Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Cocoa: Port QCocoaTheme::fileIconPixmap() to CocoaGabriel de Dietrich2013-04-301-19/+10
| | | | | | Task-number: QTBUG-30907 Change-Id: Ie460db63413ab9c8e0fb5fb85af907e1c7f12759 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Don't crash on null QCoocaMenuItem.Morten Johan Sørvig2013-04-261-2/+4
| | | | | Change-Id: Ia70f616983141134afe874b69a5957e31f6f5ed9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix ignoring close events on OSXJosh Faust2013-04-264-5/+10
| | | | | | | | | | | | | QNSWindowDelegate was not handling windowShouldClose, which is how you can tell Cocoa that your window should not close if the close button is pressed. This change moves the close handling from windowWillClose to windowShouldClose, and adds an optional "accepted" pointer to QWindowSystemInterface::handleCloseEvent so that QNSWindowDelegate can return a true/false value for whether the window should actually close Task-number: QTBUG-28965 Change-Id: I67c6296ad42cbeeb71413e05411467d4e558adb4 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Don't use the SubWindow flag for windows embedded in foreign windowsShawn Rutledge2013-04-265-7/+30
| | | | | | | | | Instead, add QCocoaWindow::setEmbeddedInForeignView which can be called via QPlatformNativeInterface::NativeResourceForIntegrationFunction Task-number: QTBUG-30805 Change-Id: I05861e80ca664ddb430216388cf0fec573a4d32b Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Increase the loopLevel when activating menu items.Morten Johan Sørvig2013-04-262-0/+6
| | | | | | | | | | | | | | | | | Apply 0293aff5c44202e5c62e229b74d8bd0bf9206185 from Qt 4. Without this, calls to deleteLater() may create delete later events with a loopLevel of 1. Those events will not be processed until QApplication::exec() returns. Add a QScopedLoopLevelCounter that increases the loopLevel for the duration of the activated() call. Task-number: QTBUG-30660 Change-Id: I7ab3bb3a53243691b8f7f64e025150e5cc7da2c8 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix shortcut override for menusFrederik Gladhorn2013-04-263-9/+104
| | | | | | | | | | | | | | | | | | Since we use native Cocoa menus, we cannot rely on the normal shortcut handling. Shortcuts can be overridden by the currently focused object in Qt. In order to make that possible we need to send a QShortcutOverride event before accepting any key event. For menus the key event goes from the NSApp directly to the menu, so the shortcutOverride would not work. This is mostly an adaptation of the Qt 4 code. Task-number: QTBUG-30695 Change-Id: Icb4979309d2d6f9606eb9c8abc4130dc79926593 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Respect the hotspot when creating the cursor in CocoaAndy Shaw2013-04-251-7/+7
| | | | | | | | | | The hotspot was not taken from the QCursor so if one was set then it was reset to 0x0. Change-Id: Ie81f1c2ac15a16f10436738367e612c44dc42d38 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Improve text heuristic menu item syncing logicGabriel de Dietrich2013-04-256-13/+51
| | | | | | | | | | | | | | | Don't try anything after the original syncing, particularly after changing the menu item's text. Also, don't try anything if the menu item cannot be linked up to a menubar (see QTBUG-30756). This latter point requires extra syncing after adding a menu in the menubar. Finally, to be able to find the menubar, we need to clean the code for moc's eyes. Task-number: QTBUG-30756 Task-number: QTBUG-30812 Change-Id: I88fad663f1c35d03a0cb167d1723d16f590918c0 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Reflect menu hierarchy in QCocoaMenu* objectsGabriel de Dietrich2013-04-253-0/+11
| | | | | | | | | | | | | | QCocoaMenu is child of either a QCocoaMenuBar, a QCocoaMenuItem as a submenu, or nothing as a standalone menu. QCocoaMenuItem is child of its containing QCocoaMenu. The parent is set during insertion and cleared during removal. QMenu needs to be updated to avoid double deletion and leaking its own platform menu. Change-Id: Iadf60d8062d7466fa616f84f3761fe322fc9aa2e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Remove dead code in QCocoaMenu*Gabriel de Dietrich2013-04-253-22/+2
| | | | | Change-Id: I56136594f073295ced645d06f657187a54e84384 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Fix disabled minimize button on main windowsGabriel de Dietrich2013-04-231-1/+1
| | | | | | | | Task-number: QTBUG-30775 Change-Id: Idec64f2cc6181e6889498171ead676d33c66e537 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Don't crash on a null window pointer.Morten Johan Sørvig2013-04-231-0/+3
| | | | | | | Task-number: QTBUG-30731 Change-Id: Id256b915012b43d1eb85bba62cbc1d42cfb58b34 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Add setAlertState(), isAlertState(), beep() functionsGabriel de Dietrich2013-04-234-0/+30
| | | | | | | | Also, fix operator precedence error in QApplication::alert(). Change-Id: I140ccfba29638d24bc1c97f5f9a9611f66eb6b8f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Move Mac translations to .cpp file for lupdate to pick them up.Friedemann Kleint2013-04-235-39/+170
| | | | | | | | Task-number: QTBUG-30125 Change-Id: I4e56fd3021b4ef5f344d4d36ae594dd88e2aa1bd Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Return GroupRole for unknown accessibility roles.Morten Johan Sørvig2013-04-231-2/+5
| | | | | | | | | UnknownRole draws attention from the screen reader and makes it focus on the unknown item. GroupRole is ignored and passes focus to child items. Change-Id: If7b4cd9ec02b1890929a709b84d897f452c39587 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Accessibility Mac: Implement accessibilityFocusedUIElementFrederik Gladhorn2013-04-221-0/+18
| | | | | | Change-Id: I17b5b1f741a8b340d8f4b16f4ec39cc9a8159bfa Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Revert "Don't warn on 0x0 sized windows."Morten Johan Sørvig2013-04-221-1/+1
| | | | | | | | This reverts commit 88272d6c04f0f67fa9612dc7bdb2a5f8ba8d0314, which accidentally re-introduced a crash. Change-Id: Ie60bcf55f940b24f982eed4f20c6af3320b040a7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Convert the CGImage into a QPixmap after reading from clipboardAndy Shaw2013-04-221-4/+2
| | | | | | | | Now that the relevant function is available we can do the conversion inside QMacPasteboardMimeTiff when obtaining an image from the clipboard Change-Id: Ie41b0fffedf4dd3f8ef49431482bd075a69722b1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Disable QTBUG-30266 hack in full screenGabriel de Dietrich2013-04-191-1/+10
| | | | | | | | | That would set the full screen window in a weird state, where is was full screen (but unable to exit that mode) and showing the title bar at the same time. Change-Id: I3ac913876f3b326504dd5af18c34181d002509d0 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Let platform plugin decide if accessibility is activeFrederik Gladhorn2013-04-193-12/+13
| | | | | Change-Id: I881a8ff3fedf3db73ee37046a4363c70960a92a6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Make password mask characters themeable.Mitch Curtis2013-04-191-0/+2
| | | | | | | | Task-number: QTBUG-29871 Change-Id: I3cf739a321d7917f8f8431992e29bba0871b1934 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove nativeResourceForWindow warning.Morten Johan Sørvig2013-04-181-3/+1
| | | | | | | | | | The warning is useful for pointing out the the return value will be null. However, code that correctly checks the return value (such as qt_macWindowIsTextured), still causes the warning to be printed. Change-Id: I3828992b3d5e7b08451cf0e051b937fa9d9536d3 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Mac: Fix various memory leaksGabriel de Dietrich2013-04-183-5/+7
| | | | | Change-Id: Id554be11ffcf9a506c217b0dc5b96cb37c4dd57c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa Menu: Remove unnecessary retain, release/retain in the right orderGabriel de Dietrich2013-04-181-5/+2
| | | | | | | Also, make sure platform menu item is deleted on ActionRemoved event. Change-Id: Ic07a81cb77833bdffd1464abf1c81ebdee4d16e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>