summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
* Fixed license headersJani Heikkinen2015-02-1736-36/+36
| | | | | Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Use C++ <cmath> instead of <math.h>Allan Sandfeld Jensen2015-02-161-2/+2
| | | | | | | | | | | | | | Including math.h can pollute the default namespace, and break some compilers if cmath versions of the method are declared as using. Switching to C++ math functions also greatly simplifies handling of float qreal as C++ automatically chooses the right method. [ChangeLog][QtCore][QtMath] qmath.h no longer includes math.h, so any sources depending on that indirect inclusion may fail to build. Change-Id: I4d0e331dafba354ec05dc5052e61ef4ff8d387fe Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* OSX: Avoid !strcmp() anti patternMathias Hasselmann2015-02-131-1/+1
| | | | | | | | | | | People often complain that strcmp() like functions are confusing because they return false on equality and true on difference. Rightfully, because strcmp() like functions return three distinct values, not a boolean value. But I guess dear reviewer, you already know that story... Change-Id: Ie69093f61b55448010dc324d14c62faa27214238 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Pass params of shareable type by const-ref rather than by valueKonstantin Ritt2015-02-132-2/+2
| | | | | | | | ...where passing them by value was not intentional. Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* OS X Accessibility: fix role descriptionBoris Dušek2015-02-131-1/+1
| | | | | | | Now we take into account also the subrole of the element. Change-Id: I471e7c6620e704780cef48266ef302ec8b56466d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* OS X Accessibility: implement AXStyleRangeForIndex in QTextEditBoris Dušek2015-02-131-1/+6
| | | | | | | | Not tested as I have no idea what VoiceOver uses it for (it seems to never query this attribute during any operation I tested). Change-Id: Ie5e2b765a9956bcf2be9b659b8914e393ed1ea90 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* OS X accessibility: implement AXRangeForPositionBoris Dušek2015-02-131-0/+5
| | | | | | | | | | | | | | | | This enables users with "Speak text under mouse after delay" set in VoiceOver Utility > Verbosity > Announcements to hover mouse over text in QTextEdit and have it spoken by VoiceOver. It also allows users with Trackpad Commander on to interact with the text area (VO-Shift-arrow down) and "touch-explore" the text while holding their finger on the trackpad and moving it around. [ChangeLog][QtWidgets][Accessibility][OS X] VoiceOver users of QTextEdit can now use mouse and touch exploration on trackpad to point at text to have spoken to them. Change-Id: I6cfaa8b1ff2179cce027b22539ba9ee4f3ee7f3f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Fix AXBoundsForRange in OS X accessibilityBoris Dušek2015-02-131-2/+11
| | | | | | | | | | | | | | | | | | | | | | When returning a rect for AXBoundsForRange, we always incorporated one more character. Along with this one more character being often either a newline or the first character of new softline, visual bounds often got wrongly and unnecessarily multiline when in fact only single line was correct. Also noticeable when moving character by character (VO-Shift-arrow left/right) - now only one character is being shown (as opposed to two before). Still due to VoiceOver bug, for bounds of width less than 8 points, it will draw bounds width with of 8 points (reported as <rdar://problem/19370707>). But still this is an improvement for cases with bounds of width more or equal to 8 points. [ChangeLog][QtGui][Accessibility][OS X] Visual bounds returned by QTextEdit were singificantly improved, this enables VoiceOver to draw properly positioned VoiceOver cursor. Change-Id: Idc50310f8016fbcc01b061d27b655c72922a4807 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Fix crash-on-exit when embedding QNViewMorten Johan Sørvig2015-02-123-0/+17
| | | | | | | | | | | | The QWindow and QCocoaWindow may be deleted before the QNSView (which Cocoa keeps a reference to). Clear pointers to the Qt windows on QCocoaWindow destruction and add null-pointer check to QNView::isOpaque. Change-Id: I71764886c27bf1d14fb4e684c15e7c72e1c0a17c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* Fix accessibility lines on OS XBoris Dušek2015-02-121-16/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make QTextView accessibility on OS X mirror that of NSTextView in terms of translating between positions and line numbers. Most significantly, we report softlines (i.e. "lines" resulting from visual wrapping induced by text view's width) as individual lines, not just hardlines (i.e. "lines" delimited by newline characters, a.k.a. paragraphs). This fixes keyboard echo when using just arrow up and down (without VO prefix) as now in such case VoiceOver reads the softline that the text cursor moved to; before this fix it read again the whole paragraph (which it read no matter to which softline of paragraph we moved to). This enables the user to search more effectively for the softline they need (which they do very often when navigating text). Further, we changed the behavior to report the trailing newline character of a line as the last character of the line. This is consistent with how NSTextView (and TextEdit) does things (and makes the newline character be displayed on a braille display for the user to be able to distinguish that this is really the end of paragraph), but could be debated and changed as some important Apple apps do not include the newline character in the line range (most notably Pages and Mail, both in the document (or email text) text area). I asked about this here: http://lists.apple.com/archives/accessibility-dev/2015/Jan/msg00000.html This also fixes the case where empty line previously returned empty range (length == 0) for AXRangeForLine and VoiceOver interpreted that as end of document even if it was in the middle of document (e.g. in examples/widgets/richtext/textedit, there is an empty line in "Lists" section just before the last paragraph, if one attempted to move past it e.g with VO-arrow down after interacting with the text using VO-Shift-arrow down, then no luck). The code is currently O(N) as the previous one, which could mean a performance problem for bigger documents. As it seems QTextLayout has all the information it needs to do AXLineForIndex and AXRangeForLine efficiently (I would presume O(log N)), this should be eventually rewritten to take advantage of that (but the required interfaces are not currently exposed through QAccessibleTextInterface) [ChangeLog][QtGui][Accessibility][OS X] QTextEdit now properly reports to accessibility visual lines (softlines) as lines, instead of whole paragraphs. This allows better VoiceOver user experience when reading text line by line using arrows up/down. Change-Id: Ie7f06eb919de31d0a083b3b30d26ccac4aa27301 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Expose TabFocusBehavior in QStyleHintsLiang Qi2015-02-121-2/+3
| | | | | | | | | | TabAllWidgets in QPlatformTheme is replaced by TabFocusBehavior. [ChangeLog][QtGui] Expose TabFocusBehavior in QStyleHints Change-Id: Iafaad7c6a5c6bc888d1e124e6ddcdbdc46f37b1c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* QWheelEvent on OSX: phase changes to ScrollEnd after momentum phaseShawn Rutledge2015-02-121-1/+2
| | | | | | | | | | | | | | | | | The phase changes to ScrollEnd as soon as the user's fingers are lifted from the trackpad; then the OS can optionally continue sending scroll events to simulate deceleration, which are translated into more QWheelEvents with phase ScrollUpdate. With this patch, the phase of the final event after the momentum phase will be ScrollEnd to indicate that the scrolling is completely finished. [ChangeLog][QtGui][QWheelEvent] on OSX, trackpad wheel event phase transitions occur in the order ScrollBegin, ScrollUpdate, ..., ScrollEnd, ScrollUpdate, ..., ScrollEnd, where the second batch of updates represent momentum events (inertial scrolling). Change-Id: I7404ed6fbbeaff6b1fa63e226fe1800494986b7b Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-1182-1173/+853
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-02-102-1/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro src/gui/image/qimage_conversions.cpp src/gui/opengl/qopenglextensions_p.h src/gui/text/qtextengine.cpp src/network/ssl/qsslsocket_openssl.cpp src/plugins/platforms/eglfs/qeglfshooks_stub.cpp src/plugins/platforms/eglfs/qeglfsscreen.cpp src/plugins/platforms/eglfs/qeglfswindow.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp src/plugins/platforms/windows/qwindowsnativeinterface.cpp src/plugins/platforms/windows/qwindowsscreen.cpp src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/windows/qwindowswindow.h src/plugins/platforms/xcb/qxcbdrag.h src/widgets/itemviews/qabstractitemview.cpp src/widgets/kernel/qwidget.cpp src/widgets/util/qsystemtrayicon_p.h tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp conflicts. Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
| * Cocoa: Don't crash on no target window.Morten Johan Sørvig2015-02-031-0/+8
| | | | | | | | | | | | | | | | | | | | | | findEventTargetWindow() will return 0 if m_window is a top-level window with Qt::WindowTransparentForInput set. Change-Id: I413dabf2a8993b0522653c4e586bb304b642f3ed Task-number: QTBUG-44013 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Cocoa: Keep menu invisible when adding it to a menubarDaiwei Li2015-02-031-1/+3
| | | | | | | | | | | | | | | | | | | | | | In MenuBar.qml, it's possible for __isNative to be set after visible on a child QQuickMenu. In that case, the qcocoamenu.mm will have set submenu to nil, only to be overridden in insertNativeMenu when __isNative is set. Change-Id: Id3c6bca03f937528d05b166cbd6a6d1011db43e8 Task-number: QTBUG-44168 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Cocoa plugin - showMaximized/showMinimized and Qt::FramelessWindowHintTimur Pocheptsov2015-02-041-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Qt::FramelessWindowHint imlplies NSBorderlessWindowMask, but should _not_ exclude NSResizableWindowMask - we still have API (showMaximized) to resize this window. Without NSResizableWindowMask showMaximized (calling NSWindow's '-zoom' under the hood) has no effect. 2. -performMiniaturize does not work with a borderless window, since such a window does not have a minimize button - use miniaturize for such window instead. Change-Id: I691182ad7c1d230e670bfb70ef758483acbf0792 Task-number: QTBUG-44195 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Cocoa plugin - fix obscured/mapped/unmapped logicTimur Pocheptsov2015-02-032-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | NSWindow setStyleMask can call viewDidMoveToWindow, while setting the mask, view can have window == nil and we call 'obscure' on this view's platform window/QWindow == 'unmapping' it. As a result, it can happen that a child view (for example, QGLWidget's view) never gets mapped back. This patch tries to limit this special obscure/expose logic by the exact views it was introduced for (c7bd85e97df1b188bcbd4a2a511313d221c5bb83, QTBUG-19840). Change-Id: I4cc7a6b1bd3e34741ad50c2e0d2a2add242b28e4 Task-number: QTBUG-41701 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | OS X: Fix QWindowSystemInterface::handleExtendedKeyEventFrederik Gladhorn2015-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | In d7ca800a87a2291c94c6580f0cfe068bb2280caf another parameter was introduced to unify ShortcutOverride. The call to it in qnsview.mm accidentally passed false as last parameter which would go to count instead of tryShortcutOverride. The patch wasn't released yet, so this regression doesn't need a change log entry. Thanks to Felipe Seoane for spotting this! Change-Id: Ide2211806caf742d649e0d5dadcc47fd032d2cdf Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-212-5/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| * Fix namespacing of QNSViewMouseMoveHelperFrederik Gladhorn2015-01-162-5/+5
| | | | | | | | | | | | Task-number: QTBUG-43061 Change-Id: Ied8cdf49c34ef155b0f0bbc7e547b7c01bcd1d11 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Add QWheelEvent::sourceShawn Rutledge2015-01-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is analogous to 0a92295ca829a62125c9f122fd3daec991993855 which added QMouseEvent::source. For now, we say that a wheel event is synthetic when it comes from a trackpad or other device that provides scrolling by some means other than an actual wheel. Change-Id: I0452ca2080b551b18b9c2f6e42db925d14ae339e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-292-14/+6
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/kernel/qplatformsystemtrayicon.cpp src/gui/kernel/qplatformsystemtrayicon.h src/plugins/platforms/xcb/xcb-plugin.pro Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
| * Revert "OS X: rename special menu items instead of duplicating"Timur Pocheptsov2014-12-222-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8c538d10da618add00aba1acbc8d8dc2f24445b4. This patch, unfortunately, do not combine well with another problematic code producing, as a result, a serious regression. While the proper/better fix in Cocoa menu not found, I'm reverting this patch. Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16 Task-number: QTBUG-43471 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Add a function for QPA plugins to explicitly destroy QScreensGiulio Camuffo2014-12-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPlatformScreen was automatically deleting its QScreen in ~QPlatformScreen(). That means that we cannot use QScreen's methods when the screen is being removed, because doing so would call virtual methods of QPlatformScreen. By that point the QPlatformScreen subclass object does not exist anymore, and we call the default implementation instead of the subclassed one, or get a crash for the pure virtual methods. This happens for example when removing a screen which contains a QWindow with some QML item using QQuickScreenAttached. This patch adds a QPlatformIntegration::destroyScreen() function, which deletes the QScreen and later the QPlatformScreen. ~QPlatformScreen will still delete the QScreen if it was not deleted with destroyScreen(), so code not ported to the new approach will continue to work as before, with only a warning added. Task-number: QTBUG-41141 Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-101-1/+5
|\| | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * qt_mac_loadMenuNib: Prevent stale NIB files by diffing file sizeTor Arne Vestbø2014-12-051-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we're changing the contents of the nib files in Qt, we need to overwrite the nib files that we write to /tmp, as QFile::copy() does not overwrite files. This also catches the case where the files in /tmp are empty due to a possible broken qrc-run, where re-runs of qrc to fix the resources would still leave the corrupt nib in /tmp, resulting in: -[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver? And as a consequence: qt_mac_loadMenuNib: could not instantiate nib ASSERT: "mainMenu" in file qcocoamenuloader.mm, line 154 Change-Id: I2907a32d1a56c23a27343c81839a06b65a529372 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Harmonize QPA TrayIcon showMessage parameter orderShawn Rutledge2014-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | Parameters were misnamed in some places but still managed to pass them through in the right order. Rename to avoid confusion, and keep the parameter order the same as in QSystemTrayIcon::showMessage. Change-Id: Ib4c8fff15eff15034c4ea64757803b118e487144 Reviewed-by: Marco Martin <mart@kde.org> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Use the new warning enabling/disabling macros in qtbaseThiago Macieira2014-12-031-3/+3
| | | | | | | | | | | | Change-Id: I91ff06644e8047c2ca483f9768b46c1372eb6171 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | OS X: remove use of Carbon API for scroll events; fix ScrollBeginShawn Rutledge2014-11-272-12/+14
| | | | | | | | | | | | | | | | NSEventPhaseMayBegin doesn't happen with some types of trackpads, so don't treat NSEventPhaseBegan as Qt::ScrollUpdate. Change-Id: Ica97d49692a904e20c8eb0250760e6370311ee40 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-2416-506/+279
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-212-7/+12
| |\ | | | | | | | | | Change-Id: I95f235a66ce2e9b1fa435c0f911c6f7e811755f0
| | * Make it possible to disable font embeddingEskil Abrahamsen Blomfeldt2014-11-152-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When font embedding is explicitly disabled, fall back to painter paths as we would if the font prohibits embedding. Note that this flag was never respected on any platform in any version of Qt, as far as I've been able to tell, because the handling of it in the X11 print engine was removed shortly after it was introduced in 2005. [ChangeLog][Printing] Disabling font embedding is now possible using the QPrinter::setFontEmbedding() function. Task-number: QTBUG-41943 Change-Id: Ice5e893f9893c5243310ae7892bec7497dd55c4a Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * | Fix QAction::setFont crash on OSX, when font is unknown.David Faure2014-11-211-7/+12
| |/ | | | | | | | | | | | | | | | | | | customMenuFont was null, so objects was an empty array, and NSDictionary throws an exception when being called with arrays of different sizes. Task-number: QTBUG-42728 Change-Id: I8cdab449fd8c1d12b65c46dd5617a7f5e3e96c6e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Cocoa: get mouse position from event if possibleMorten Johan Sørvig2014-11-051-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ...instead of using the current mouse position. This is important if event processing is delayed: we want the QMouseEvent to have the position when the event happened, not the current position. Regression from Qt 4. Change-Id: Ifd4f0f02853236a204de96c5a97e72f86c29f0b7 Task-id: QTBUG-37926 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Revert "OS X - unified toolbar and AA_NativeWindows"Morten Johan Sørvig2014-11-051-17/+1
| | | | | | | | | | | | | | | | | | Will be fixed in a different way. This reverts commit ae5f3df59b37e0ce8aaef27dc1e02f40def340ae. Change-Id: Ie706396667a5b6c9003bb92a018d88346a180e65 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Cocoa: Guard against recursive event deliveryMorten Johan Sørvig2014-11-053-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Fix "Recursive repaint" crash. Add guard to QCococaWindow::setGeometry and QNSView updateGeometry to prevent processing window system events during setGeometry. Task-number: QTBUG-41449 Change-Id: I304fdf134d433cbc50fafd997ecd91e31cb57f4e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Cocoa: refactor commit 876a428f.Morten Johan Sørvig2014-11-052-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conditions for when updateExposedGeometry() should actually send the expose event goes into the function itself. The window()->isVisible() check could arguably be moved to isWindowExposable(), but I'm keeping this as a straight refactor without any behavior changes. (isWindowExposable() is called from multiple locations) Change-Id: I6d792286ccbc50065ebfc588daca2240761a1937 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Cocoa: Don't activate popup windows.Morten Johan Sørvig2014-11-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Qt expects a handleWindowActivated call for non- popup windows only. Add a window type check, similar to the other handleWindowActivated calls. Task-number: QTBUG-38707 Change-Id: Iaa5959675f7e3ae4664bdf785d3f374debb0d0a7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
| * Cocoa plugin - fix a resource leakTimur Pocheptsov2014-10-311-0/+1
| | | | | | | | | | | | | | | | The patch 916dfcb8275bcce6b39606cd0b930239a60dc5df while fixing one problem, introduced another - leaking CGImage. Change-Id: I08db6ea9fa97ae3489a0bfa1f93e0d18f3671885 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * OS X: fix CFString leaks in mime classesDyami Caliri2014-10-301-2/+2
| | | | | | | | | | | | | | | | Some CFStringRefs created with CFStringCreate* methods were not being released. Using the QCFString helper class to perform auto release. Change-Id: I36d15c0d35118524089e99ea3cd53c41342d6308 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * QCocoaPrintDevice: fix bad CFReleaseDyami Caliri2014-10-301-4/+4
| | | | | | | | | | | | | | CFRelease should be called IFF PMPrinterCopyDescriptionURL succeeds Change-Id: Id289aea3a4e3da397dae4062319256a043538597 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * Cocoa: Handle Qt::WA_MacAlwaysShowToolWindowShawn Rutledge2014-10-291-1/+5
| | | | | | | | | | | | | | | | | | | | | | Forward the flag to QWindow by setting the _q_macAlwaysShowToolWindowproperty on the window in QWidgetPrivate::create_sys(). Test for the property when creating the window. Task-number: QTBUG-29816 Done-with: Morten Sørvig Change-Id: Id810dda98d02deb0902192cce1783d8b16b04d04 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Cocoa: Fix regression in key handlingLiang Qi2014-10-291-1/+1
| | | | | | | | | | | | | | | | The text should be empty when Cmd key is in modifiers. Task-number: QTBUG-36281 Change-Id: Ic71e532695ad4a947c86e8d21ae864d70f9afa4c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Cocoa: Send obscure events on OcclusionStateHiddenMorten Johan Sørvig2014-10-291-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | This disables animations for windows that are completely obscured by other windows. On examples/quick/animation, obscured CPU usage goes from 10% to 1%. There has been reports of 100% CPU usage with Qt before this patch. Change-Id: Iefea43ed8c1cfaa2df13f1f5a4e4450146ade522 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * OS X - Cocoa backing store and drawRectTimur Pocheptsov2014-10-284-30/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | m_backingStore pointer has a limited 'lifetime' - usually it is set in -flushBackingStore:region:offset: method, then -drawRect: is invoked/forced by -setNeedsDisplayInRect:, after that it's dangerous to have a non-null pointer to a backing store (and we reset it). But if Cocoa invokes drawRect (due to some reason) our null backing store pointer is also not good. This patch instead is using a shared resource (QImage) from a backing store. This patch also makes getBackingStoreCGImage() redundant - -drawRect: was the only place we called it. Task-number: QTBUG-42206 Change-Id: Ie7726336f05d07c52f660f6326ae5cef114201dd Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Cocoa QPA Plugin: Remove code depending depending on OS X 10.6 and olderGabriel de Dietrich2014-10-278-423/+187
| | | | | | | | | | | | | | Snow Leopard is unsupported from 5.4.0. Change-Id: I5c269cbdc93000a4657b63559cc3c526e298e3db Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
| * Send screen change events before expose events.Morten Johan Sørvig2014-10-271-1/+1
| | | | | | | | | | | | | | | | | | | | This fixes the "expose event received for window with invalid geometry" warning from Qt Quick. The window's current screen is now up to date when processing the expose event. Change-Id: Ia5c83e34154182699ec587835f9063809d819d7d Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Cocoa: Expose on window size change onlyMorten Johan Sørvig2014-10-271-1/+1
| | | | | | | | | | | | | | | | Don't send expose events on window move. Task-number: QTBUG-42126 Change-Id: I6e758f9037a2a785c651b63d25b53e7a009b1fdf Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Clean up ShortcutOverride handlingFrederik Gladhorn2014-10-301-1/+1
|/ | | | | | | | | | | | | | | Instead of sending the event from random places, send it from QWindowSystemInterface. This allows to send override events on OS X to menus before doing other key processing and reduces the number of ShortcutOverride events on all platforms to exactly one per key press event. Additional test by Friedemann Kleint. Task-number: QTBUG-38986 Change-Id: I6981bb776aba586ebc7c3daa5fd7a0d84c25bc3e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>