summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-254-21/+21
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/common/msvc-version.conf mkspecs/common/winrt_winphone/qmake.conf mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/qt.prf mkspecs/features/uikit/default_post.prf mkspecs/features/winrt/default_pre.prf mkspecs/winphone-arm-msvc2013/qmake.conf mkspecs/winphone-x86-msvc2013/qmake.conf mkspecs/winrt-arm-msvc2013/qmake.conf mkspecs/winrt-x64-msvc2013/qmake.conf mkspecs/winrt-x86-msvc2013/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/gui/kernel/qwindowsysteminterface.cpp src/network/kernel/qhostaddress.cpp src/plugins/platforms/mirclient/qmirclientplugin.cpp src/plugins/platforms/mirclient/qmirclientplugin.h src/widgets/util/qsystemtrayicon.cpp tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp tools/configure/Makefile.mingw tools/configure/Makefile.win32 Done-with: Jake Petroules <jake.petroules@qt.io> Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: I4be3262d3994e11929d3b1ded2c3379783797dbe
| | | * Cocoa: fix bug when left mouse button release event delivered as rightOleg Yadrov2017-01-201-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The regression was introduced during refactoring by 820e69d6c and the initial change that added this logic is adc3ef97d. This condition had become redundant and wrong after refactoring because m_sendUpAsRightButton flag is set in the proper way in QNSView::mouseDown() which later calls QNSView::handleMouseEvent() anyway. Task-number: QTBUG-58219 Change-Id: I1951cf4067af6f0c1837c1c15b8a09dfe7939493 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Pavol Markovic
| | | * Cocoa: fix regression preventing windows from showing upOleg Yadrov2017-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The regression was introduced by 593ab638609 which fixed another bug related to window modality. To determine whether the window needs to be (made key and ordered front) or just (ordered front), instead of calling currentModalSession() which might change internal state of event dispatcher we just check if cocoaModalSessionStack is empty or not. Task-number: QTBUG-57991 Task-number: QTBUG-56166 Change-Id: I6c4f92860d8c93decd44e572af1690ed7be6f1f0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | | * macOS: convey correct mouse coordinates on drag releaseOleg Yadrov2017-01-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-57129 Change-Id: I6eb60c35bfaf63199d0f637bf2d579fadab0a644 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
| | | * cocoa: Account for getting a keyboard using input methods correctlyAndy Shaw2017-01-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a keyboard is using an input method then the layout for it needs to be retrieved with TISCopyInputMethodKeyboardLayoutOverride(). For cases where it is not using an input method this will return null and in that case we can use the original approach as before. Task-number: QTBUG-53804 Task-number: QTBUG-57934 Change-Id: I6283785bf002602113e208bb38d5eb2a9a7ceb36 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | | * Accessibility macOS: check for valid interfacesFrederik Gladhorn2017-01-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a few places that did not check if the returned interface is valid. Task-number: QTBUG-52536 Change-Id: I56ca0952fec0b44dfd4b3991aa94554e9c829642 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | | * Accessibility macOS: fix parentElementFrederik Gladhorn2017-01-051-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Try to return the immediate parent first, nothing else makes sense. The original code relied on the window pointer usually being nullptr, which is not reliable. Make sure to check the validity of the handle returned, since it's possible to have the platform window being nullptr. It's not quite clear to me how to end up with a null window though. Task-number: QTBUG-52304 Change-Id: Id3e70cdab980fb0a86cebbb7c10d824d8a7dd80b Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | | | QCursor: Remove old pixmaps and use native cursor on macOSGabriel de Dietrich2017-01-314-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DragCopyCursor part is a regression from ed55c4a14c9e8b70b3947c. Change-Id: Id98a40c372e48f09d8c1824a4c2c1df2a3bdd052 Task-number: QTBUG-58378 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | | | Build Qt libraries with -fapplication-extensionJake Petroules2017-01-271-0/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures at compile-time that Qt libraries do not use any APIs that are not safe for use in application extensions, and fixes warning messages that appear when linking to Qt libraries that are not built with this flag, when used in an application extension. This is especially important on watchOS where *all* "applications" are actually application extensions, and on other Apple platforms if application extensions are developed using Qt. Task-number: QTBUG-40101 Change-Id: I022046f2584e0222253d33052b0abc221d7c93d6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* / / Fix deprecated API usageJake Petroules2017-01-244-19/+20
|/ / | | | | | | | | | | Change-Id: I62448507f80daf6be72994ee99f0fb1aa107eb78 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | macOS: Keep reference to NSScreen via index instead of pointerTor Arne Vestbø2017-01-173-20/+28
| | | | | | | | | | | | | | | | | | | | | | | | Manual revert of 73e68a9c0f8b6, which was flawed. macOS can, and will, dealloc and realloc NSScreen instances for a given screen index, for example when deallocing an NSWindow, which has the screen as an auxiliary resource. This is also documented for +[NSScreen screens], which states that "The array should not be cached". Task-number: QTBUG-58128 Change-Id: I926513a26cb7af52acd7fc5ee9380ef29ede65e6 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* | QCocoaWindow: Fix 10.10 sheet API deprecation warningGabriel de Dietrich2017-01-121-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 'beginSheet:modalForWindow:modalDelegate:didEndSelector: contextInfo:' is deprecated: first deprecated in macOS 10.10 - Use -[NSWindow beginSheet:completionHandler:] instead [-Wdeprecated-declarations] Similarly, although it won't emit any warning, we replace the usage of -[NSApplication endSheet:] wit -[NSWindow endSheet:]. Change-Id: Iae71247f818b7183d09c6831fa4cb1b71a54a87a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Remove compatibility code paths for macOS < 10.10 and iOS < 8.0Jake Petroules2017-01-092-3/+0
| | | | | | | | | | Change-Id: I11bec0efc2b4d86adf64a58990260fee70f050ac Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | macOS: Don't update screen for child windowsTor Arne Vestbø2017-01-041-7/+9
| | | | | | | | | | | | | | | | Results in 'Attempt to set a screen on a child window' warning from QWindow. Change-Id: Ib421bada07d2085c33a4dcb62e705b2c8e2ba1c4 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Add QPlatformTheme::standardButtonShortcut()Alexander Volkov2016-12-192-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | It allows to set shortcuts for the standard buttons in QDialogButtonBox. Restore Qt4's behavior for the "Don't Save" button on macOS by setting a shortcut for it (it was Cmd-D before Lion, now it's Cmd-Delete). Change-Id: I6b56f68f37670962178693a8983d9fe550540856 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-162-11/+16
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure configure.pri examples/widgets/painting/fontsampler/mainwindow.cpp examples/widgets/painting/fontsampler/mainwindow.h mkspecs/features/moc.prf src/corelib/global/qglobal.h src/gui/text/qtextdocument.cpp Change-Id: Ica65512e00871695190a14ccea5c275b0165f787
| * Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2016-12-162-11/+16
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/plugins/platforms/android/qandroidplatformopenglcontext.h src/plugins/platforms/android/qandroidplatformtheme.h Change-Id: I13d51cc66f708138ff4d667ceea7d515992e58a4
| | * QCocoMenu: Fix patch b2f78b796b5b73d4Gabriel de Dietrich2016-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A null pointer check was accidentally removed while refactoring the code. Change-Id: I547936671bd134bb7df710a4b123a0d731076bf2 Task-number: QTCREATORBUG-17438 Task-number: QTBUG-57404 Task-number: QTBUG-57657 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * QCocoaMenu: Don't rely on tags when we can get the actual NSMenuItemGabriel de Dietrich2016-12-081-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -[NSMenu itemWithTag:] clearly states that it'll return the first item with that tag. Furthermore, when and item has been synced more than once, it could be that more than one such item exists in the same menu (e.g. lately changing the role of Edit->Copy). Change-Id: I95a4f0a151659ae273ba03a3cab4a720b781fc3a Task-number: QTBUG-57404 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * QCocoaMenu: Avoid exception when inserting item already in this menuGabriel de Dietrich2016-12-082-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should not happen, but it's clearly not the user's fault. So we should try to carry on as gracefully as possible instead of letting Cocoa abort the application. The patch also factors the repeated calls to QCocoaMenuItem:: nsItem() in QCocoaMenu::insertNative() and improves a warning from QCocoaMenuIten::sync(). Change-Id: Id00135c219aaf40fb565b19a65cab68f6d9863b2 Task-number: QTBUG-57404 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-135-11/+61
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/Makefile.unix.macos qmake/Makefile.unix.win32 qmake/generators/win32/msvc_vcproj.cpp src/3rdparty/pcre/qt_attribution.json src/corelib/io/qsettings.cpp src/corelib/kernel/qdeadlinetimer.cpp src/platformsupport/kmsconvenience/qkmsdevice.cpp src/platformsupport/kmsconvenience/qkmsdevice_p.h src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h tests/manual/qstorageinfo/printvolumes.cpp tools/configure/configureapp.cpp Change-Id: Ibaabcc8e965c44926f9fb018466e8b132b8df49e
| * | Cocoa: Unbreak app activation on macOS SierraMorten Johan Sørvig2016-12-082-10/+18
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we would activate the application during QCocoaIntegration construction, which means at QApplication creation time. This now seems to interfere with application startup on macOS Sierra, where the application window ends up in an unfocused state. Move application activation to applicationDidFinishLaunching, at which point the Cocoa runtime should be completely initialized. Do this for 10.12+ only to avoid regressions/ test failures on previous versions. Change-Id: Ic5f150d53f06a302b53a3ba86a4a9b18bb2a1783 Task-number: QTBUG-57044 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-251-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qcoregraphics.mm src/gui/painting/qcoregraphics_p.h src/plugins/platforms/cocoa/qcocoahelpers.h src/plugins/platforms/cocoa/qcocoahelpers.mm Change-Id: Ibe5efcae73526b3d3931ed22730b13d372dcf54e
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-253-4/+7
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qml_module.prf src/corelib/tools/qdatetimeparser_p.h Change-Id: I5382cee3ddb33107dc61ee20f7a9188c4a68a882
| | | * If there are no available sizes, then fallback to the requested sizeAndy Shaw2016-11-233-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a case like the SVG iconengine there is no available sizes implementation. However in that case we don't need to provide different sizes as we can have SVG scale it for us to the one requested. So it is assumed that with no available sizes implementation that the icon engine will take care of this for us. This ensures that SVG files can be used as icons inside the menu on macOS. Task-number: QTBUG-40225 Task-number: QTBUG-55932 Change-Id: If01ca582c4c07834e6de16652924e0b7e118c87c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | | Document third-party code in Cocoa QPA pluginKai Koehne2016-11-252-0/+42
| | | | | | | | | | | | | | | | | | | | Change-Id: I2c30f5da25c83d6129403cb9b745a2f17fd6fd9e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | | macOS: Remove unused method QCocoaWindow::parentCocoaWindow()Tor Arne Vestbø2016-11-232-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Last used in 2011, to determine QCocoaWindow::globalGeometry(), which probably shouldn't have used transientParent in the first place. The parent is available through casting QPlatformWindow::parent(). Change-Id: I93fbcb41765944fbe0b79981ccf7d0062bb57719 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | | | macOS: Prevent stale references to NSScreen during screen removalTor Arne Vestbø2016-11-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-57223 Change-Id: I7cdc075a4afee5ad8c23fd3c43a04f2a258b81f9 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-1715-264/+268
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/uikit/default_post.prf Change-Id: I2a6f783451f2ac9eb4c1a050f605435d2dacf218
| * | | QCocoaMenu: Force NSMenuValidation when syncing itemsGabriel de Dietrich2016-11-161-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a menu item's enabled state changes after -[QCocoaMenuDelegate menuWillOpen:] is invoked, i.e., during or after QMenu::aboutToShow() is emitted, that state change may not be taken into account. This is because the automatic menu validation, upon which Qt relies, is not made aware of any such change. By calling -[NSMenu update] when syncing the QPA menu item, we induce Cocoa to invoke -[QCocoaMenuDelegate validateMenuItem:] and ensure that previously synced items, whose state may have changed, will be properly updated. This, however, has a small side effect, namely that menu-holding items will also go through the automatic menu enabling path and may appear disabled since, until now, they were not properly configured. In order to solve this, we set the action on those items as well, and make sure that both of QCocoaMenuDelegate's relevant methods, validateMenuItem: and itemFired:, properly process menu-holding items. Menurama manual test updated accordingly. Change-Id: I62f955538b8be09b8494ea0ce87fca7910148d38 Task-number: QTBUG-56850 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | | Merge "Merge remote-tracking branch 'origin/5.7' into 5.8" into refs/staging/5.8Liang Qi2016-11-1612-41/+92
| |\ \ \
| | * | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-1612-41/+92
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/linux-android.conf src/gui/opengl/qopengl.h src/network/socket/qnativesocketengine_winrt.cpp src/network/socket/qnativesocketengine_winrt_p.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/api/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp sync.profile Change-Id: If70aaf2c49df91157b864cf0d7d9513546c9bec4
| | | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-1512-41/+92
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/plugins/platforms/eglfs/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp Change-Id: Id2da7c775439adb62646d5b741ee7c638042b34b
| | | | * Cocoa: Make dictation via speech recognition workMorten Johan Sørvig2016-11-141-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Returning NSNotFound from the NSTextInputClient selectedRange implementation when there is no selection prevents dictation from activating (for unknown reasons). Return an empty {0, 0} range instead. Text input methods such as Pinyin still work after this change. [ChangeLog][macOS] Speech to text dictation now works for Qt text input. Change-Id: Ibf1729bdd271e8ed5ce3c9d2a0373c8ab3613d8e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | | | * Cocoa: Make child window cursors work correctlyMorten Johan Sørvig2016-11-085-38/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing cursor logic had a couple of issues: - It made the faulty assumption that we could not use the NSWindow invalidateCursorRectsForView API for child NSViews. - It used NSWindow invalidateCursorRectsForView and NSView resetCursorRects. This API has been replaced by the more general NSTrackingArea API. - It did not implement falling back to the parent window cursor if the current window has no cursor set. Document that QWindow cursors work the same way as QWidget cursors in that a QWindow with no set cursor will fall back to the parent window cursor. Change the cocoa platform code to use NSTrackingArea exclusively and implement NSView cursorUpdate which sets the cursor. Handle immediate change on QWindow:: setCursor() manually. Add QWindow::effectiveWindowCursor() and applyEffectiveWindowCursor() which finds the correct window cursor. Add a manual test for the child window, child widget, and QWidget::createWindowChild cases. Task-number: QTBUG-33479 Task-number: QTBUG-52023 Change-Id: I0370e11bbadb2da95e8632e61be6228ec2cd5e9d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | | | * macOS: Clear event dispatcher interrupt stateGabriel de Dietrich2016-11-087-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A pending interrupt of a QEventLoop may interfere with native runModal calls, resulting in Cocoa's main event loop to be stopped unexpectedly. After commit 9ab60b9c processEvents() no longer resets the event dispatcher interrupt flag. Add QCocoaEventDispatcher::clearCurrentThreadCocoa EventDispatcherInterruptFlag(). Use it to clear the interrupt state before calling runModal and variants. Work around the inability to use platform API in the print support code. Change-Id: I52f26f99a63cbb46969db42f65b09a3c3119ad15 Task-number: QTBUG-56746 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
| * | | | Cocoa Dialog Helpers: Refactor OK-Cancel buttons viewGabriel de Dietrich2016-11-164-219/+163
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since virtually all the logic is shared between QNSColorPanelDelegate and QNSFontPanelDelegate, we extract the added buttons and layouting logic and move it into its own class. This requires the two afore mentioned Objective C classes to satisfy the QNSPanelDelegate protocol. Change-Id: Ie26e758f5db71920896d930a4f3644b51a1ce3fa Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | | Cocoa: Force sending key equivalent up eventsGabriel de Dietrich2016-11-151-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cocoa is known for not sending key up events for key equivalents, regardless of whether it's an actual recognized key equivalent. Notice that only Cmd-based shortcuts suffer from this feature. We decide to force fate and forward the key event to the key (focus) window. However, non-Qt windows will not (and should not) get any special treatment, only QWindow-owned NSWindows. Since we know that Cocoa will not send it to the key window, we can safely forward it and ensure no duplicated key events. Change-Id: I0449f7f5195a327eef6d792bd441fc3fd0882db1 Task-number: QTBUG-36839 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | | macOS: fix 32-bit buildsJake Petroules2016-11-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | amends e39a436d0ca00fbcbef1428e32f74266c7a8d34d and 1ad6ae21f015ead3dcc4bed21a988f0d7d5d0d2d. Change-Id: Ib5c0b516ea2e5ec8d89f3e2e9888ef3eb8de6de4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-0217-17/+63
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Blacklist tst_QMenuBar::taskQTBUG46812_doNotLeaveMenubarHighlighted() on macOS. Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/uikit/default_post.prf mkspecs/features/uikit/sdk.prf src/angle/src/libEGL/libEGL.pro src/platformsupport/fontdatabases/fontdatabases.pro src/platformsupport/platformsupport.pro src/plugins/platforms/cocoa/qnswindowdelegate.mm src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp src/plugins/platforms/ios/ios.pro src/plugins/platforms/ios/kernel.pro tests/auto/widgets/widgets/qmenubar/BLACKLIST tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp Task-number: QTBUG-56853 Change-Id: If58785210feee3550892fc7768cce90e75a2416c
| * | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-019-8/+51
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/win/msvc_version.cpp configure.pri mkspecs/macx-ios-clang/features/default_post.prf mkspecs/macx-ios-clang/features/resolve_config.prf mkspecs/features/uikit/default_post.prf mkspecs/features/uikit/resolve_config.prf src/corelib/io/qsettings_mac.cpp src/corelib/json/qjsondocument.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/cocoa/qnswindowdelegate.h src/plugins/platforms/cocoa/qnswindowdelegate.mm src/plugins/platforms/ios/ios.pro src/plugins/platforms/ios/kernel.pro src/plugins/platforms/ios/qiosintegration.h src/plugins/platforms/minimalegl/qminimaleglintegration.cpp tests/auto/gui/painting/qpainter/tst_qpainter.cpp tools/configure/environment.cpp Change-Id: I654845e54e40f5951fb78aab349ca667e9f27843
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-312-2/+2
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/minimalegl/qminimaleglintegration.cpp Change-Id: Ia6ab42a6daadbf8abc085c971545904d49ea4b56
| | | * QNSColorPanelDelegate: Don't restore stolen view on deallocGabriel de Dietrich2016-10-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We may not be playing nice with Cocoa's internals when we decide to reparent NSColorPanel's contents to add QColorDialog's own OK/Cancel buttons. In order to reduce issues, we should avoid poking at things during the application's shutdown sequence. Simply releasing the stolen view should be enough at that point. A similar pattern exists in QNSFontPanelDelegate. Change-Id: I678c236e0c57c4d08a1109a479d965f924288c54 Task-number: QTBUG-56448 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-272-1/+28
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/ios/ios.pro src/plugins/platforms/ios/kernel.pro src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileenginefactory.h src/plugins/platforms/ios/qiosintegration.h src/widgets/widgets/qcombobox.cpp tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp Change-Id: Ibaee7cbbba99e7c4b1d8926e55932ffa6030ce45
| | | * QCocoaMenuBar: Update even if no window is attachedGabriel de Dietrich2016-10-242-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Then we need to check if the current active (or focused) window has any menubar associated. In case there isn't, and the menubar has no window associated, then we should update immediately. The previous condition is still valid. Change-Id: I4532ccc87354d91c76b53f5433dc3944b9e29584 Task-number: QTBUG-56275 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
| | * | Cocoa integration - remove erroneous warningTimur Pocheptsov2016-10-241-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The conditional statement checks/allows only right/left mouse buttons in handleMouseDraggedEvent and generates a lot of useless/misleading warnings in case we press (for example) a middle mouse button (when we're also moving mouse cursor, intentionally or not). Task-number: QTBUG-54160 Task-number: QTBUG-42846 Change-Id: I5c54b6204cb90036c7d98724537f1c985b40d9cc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-224-1/+20
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/eglfs/qeglfshooks.cpp Change-Id: I483f0dbd876943b184803f0fe65a0c686ad75db2
| | | * macOS: Only show menu and allow dragging on proxy when a file path is setAndy Shaw2016-10-194-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is no file path set then it should not be possible to see a menu or to drag from a proxy icon in the titlebar. Task-number: QTBUG-56082 Change-Id: Ib8305bcab5717bc8cb7ddabbb079f152debbdded Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * | | port to modularized platformsupport librariesOswald Buddenhagen2016-10-158-9/+12
| | | | | | | | | | | | | | | | | | | | Change-Id: I20eb0e33abfd70b6a5240e7b6b0aa0425f2d2ee7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | | macOS: Allow windows to be created on any screen within the virtual desktopTor Arne Vestbø2016-10-282-17/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting the geometry of a window to a position outside of the primary screen, but within the virtual desktop, would not result in the window being created on the secondary screen, as macOS does not seem to translate the global screen position when creating new windows. We work around this by translating the position ourselves, and using the overload of [NSWindow initWithContentRect:] that takes the NSScreen to create the window on. Due to a bug in the macOS window manger, this fails for windows that are created within a certain region of rotated screens. This is not an issue for setting the geometry after creating a window, so we should investigate making the window-creation code set its geometry via the same code path, after creating the window (without having the window momentarily show up in the wrong position). Change-Id: Iba8eefe65e2c91667856299d90a8606e361ceacb Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>