summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
Commit message (Collapse)AuthorAgeFilesLines
* Implement Cocoa KeyMapper.Morten Johan Sorvig2012-12-076-2/+604
| | | | | | | | | | Port Qt 4 implementation. Shortcuts such as shift-5 should now work. Change-Id: I1d8c4c6c4a903142361996b558ee31c8549fcef6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Set CGImage format when converting from QImage.Morten Johan Sorvig2012-12-071-1/+22
| | | | | | | | | Set the CGImage format based on QImage::format(). Handle8-bit per component (A)RGB. Change-Id: I041b0ee53d3943a0aaf9e813eb0a235c4de619dd Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Use the "copy" blend mode for backingstore drawingMorten Johan Sorvig2012-12-071-0/+1
| | | | | | | | | | The default is a "source over", but we want to completely replace the destination pixels. (Which is slightly faster). Change-Id: I4916765258a2236f70f58a8e20b06f80739183c1 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Avoid backing store color space conversions.Morten Johan Sorvig2012-12-071-1/+15
| | | | | | | | | | | | | | | | | | | | We want the Qt backing store to be in the device color space by default. This will avoid colour space conversions when blitting it to screen, at the cost of a potential loss in color accuracy. As it turns out, CGColorSpaceCreateDeviceRGB no longer crates a device color space but rather a generic color space. (Since 10.4). Create the color space with a system profile instead. Accurate color representation needs to be supported at some point, but this fast path should be the default. Change-Id: I7ebb77b36f81f66119d8c2ef464723401ec1d1e8 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Update QNSView geometry on window resize.Morten Johan Sorvig2012-12-072-3/+4
| | | | | | | | | | | | | | | | | Ideally this should not be required since NSWindow should resize the content view automatically. However, in the case of modal QDialogs this does not happen. Add call to updateGeometry in windowDidResize as a workaround, and remove code which called QNSView::setFrameSize with the current size. This will cause duplicate handleGeometryChange calls in the non-qdialog case, add a test to see if the geometry really has changed to prevent that. Change-Id: I29bea23b2ab72f923aeadf8db8cb9131ae177a28 Reviewed-by: Liang Qi <liang.qi@digia.com>
* Cocoa: fix unresponsive dialogs causes application to hangRichard Moe Gustavsen2012-12-051-8/+10
| | | | | | | | | | | | | | | | | | | | | The reason for this bug seems to be related to how we wait for more events in the event dispatcher. We use the nextEventMatchingMask function, which already in Qt4 showed to have problems when telling it to not dequeue the event. The solution back then was to tell it to dequeue the event, and instead repost in front again. Why this was changed in Qt5 is uncertain (other than it being tempting) but moving the same code back in will solve the bug. Note that this bug might also stem from the fact that the run loop sources we add in the event dispatcher fires before the application is really ready to show modal dialogs. E.g refusing to execute a modal dialog before NSAppDelegate applicationWillFinishLaunching is called will also fix the problem. But this code change is to big atm, and can easily introduce other unforeseen regressions. Task-number: QTBUG-28283 Change-Id: I07cd109568c2b9c782cf5120a9eb2ac71128cada Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Ensure ctrl + click sends a right mouse button press in CocoaAndy Shaw2012-12-042-2/+15
| | | | | | | | | | | Since Mac's typically just have one button for their mice then pressing Control then clicking the button should end it as a right mouse button event. Task-number: QTBUG-28350 Change-Id: Iabcac5b315c36cb8cd062c27d7b1506bc066f5bb Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Mac: fix regression to make dialog resizableLiang Qi2012-12-031-2/+2
| | | | | | | Task-number: QTBUG-28254 Change-Id: I8623a68d589bec17042935ad308f85ddc953540d Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: create dialogs as NSPanelsTeemu Katajisto2012-12-011-6/+10
| | | | | | | | | NSPanels have builtin support to work with modal sessions. Task-number: QTBUG-28111 Change-Id: Ifeb6de03129e77aad744b3989931964c375cdbc7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Properly release pixel format and context in QCocoaGLContext.Zeno Albisser2012-12-012-0/+8
| | | | | Change-Id: Idd13924dccc8d7798f463484eeb3c3074f7b51f1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Basic high-dpi "retina" support for Qt 5.Morten Johan Sørvig2012-12-018-14/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | Bring Qt 5 on par with Qt 4, prepare for more comprehensive support later on. Introduce device independent pixels (dips), device pixels, and devicePixelRatio. Add high-dpi support to QPainter, QGLWidget, the cocoa platform plugin, mac and fusion styles. Dips are similar to CSS pixels, Apple points and Android density-independent pixels. Device pixels are pixels in the backing store/physical pixels on screen. devicePixelRatio is the ratio between them, which is 1.0 on standard displays and 2.0 on "retina" displays. New API: QImage::devicePixelRatio() and setDevicePixelRatio() QPixmap::devicePixelRatio() and setDevicePixelRatio() QWindow::devicePixelRatio() QScreen::devicePixelRatio() QGuiApplicaiton::devicePixelRatio() Change-Id: If98c3ca9bfdf0e1bdbcf7574cd5b912c9ff63856 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QWidget windows have fullscreen button by default; manual test for itShawn Rutledge2012-12-011-0/+3
| | | | | | | | | | It's again possible for QWindows and widget windows to go into fullscreen mode on the Mac. Change-Id: I7b304a135838394ef0392f89be4f225f2949fad3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Cocoa: Disable accessibility.Morten Johan Sørvig2012-12-018-3/+28
| | | | | | | | | The accessibility implementation is unstable and causes application crashes. Disable until it has been stabilized. Change-Id: Ic34361a0ad599c6f92df722499d274fe0655646b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Cocoa: fix modal native dialogs with ongoing modal sessionsTeemu Katajisto2012-12-013-0/+13
| | | | | | | | | | | | | Commit 26db7de13d5885067844532b5a5814181a0ddf16 introduced the modal session cleanup for Cocoa print dialog before running the modal event loop for the dialog. Add the same cleanup for Cocoa file, font and color dialog helpers. Task-number: QTBUG-28146 Change-Id: Ifeb7c82566db35f0c6654be7762e9aaffbafb900 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: update OpenGL viewport when nsview movesRichard Moe Gustavsen2012-11-283-3/+35
| | | | | | | | | | | | | | | | | | NSOpenGLContext expexts an -update call whenever the physical position of the view it draws to changes on screen. Since we don't get geometry callbacks for such views when the parent view moves, we need to register a special notification for that case, and tell Qt that we need to repaint the QWindow that the view is backing. This case does not hit very often, but is evident in MDI applications where the subwindows are OpenGL backed QGraphicsView widgets. Dragging the subwindows around produces garbage inside the windows. Change-Id: I1b162470b03cca6ed722c6c54080459f2c5e91d9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac: Fix wheel event handling on 10.6Liang Qi2012-11-271-5/+5
| | | | | | | | | Change "else" case to support compiling on 10.7+ and deploying on 10.6 Task-number: QTBUG-28060 Change-Id: Iaaeaaefe98083863ed750c7cb320db02e16543af Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Make sure non windowed QCocoaWindows hide their content viewsGabriel de Dietrich2012-11-231-0/+4
| | | | | | Change-Id: I92b8600c513ba033c459b6911ca62fc31698dc4a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Make sure child windows' QNSView is properly releasedGabriel de Dietrich2012-11-231-0/+2
| | | | | | | | | | Child QCocoaWindows don't have an assigned NSWindow, but still get a QNSView as backing store. That QNSView is added as a subview to the parent window's QNSView. That would leave an unmanaged QNSView alive. Change-Id: I10f57fb971f7aa1e278bb0af4217052d1e4bb0bc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Cocoa: QGLWidget draws wrong within QMainWindow on Mac OSRichard Moe Gustavsen2012-11-236-101/+125
| | | | | | | | | | | | | | | | | | | | | | | | The resons for this bug is that Qt can share the same backingstore between several windows (if they exist in the same hierarchy), but this was just not supported by the Cocoa plugin. This patch will make sure that we pay attention to which window the QCocoaBackingStore is told to flush, and forward this information to the QNSView that backs it up. Inside the views drawRect function we then take some extra steps to get the correct sub-part of the possibly shared backingstore image. This patch also does some effort to ensure that we recreate the backingstore image as little as possible, as we can often get several resizes to the backingstore before we actually draw anything. Moreover, by being a bit careful on how we tell UiKit to update the view upon a flush, we can minimize the number of drawRect calls (and then CGImageRef creations) we need to do. This patch actually ends up improving resize/repaint performance a lot as well. QT-BUG: 27390 Change-Id: I2c2a26b149fa855411b6bff8b9cc9a61694ae72f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Add nsOpenGLContextForContext to QCocoaNativeInterface.Zeno Albisser2012-11-232-4/+12
| | | | | | | | | | This change enables receiving the native NSOpenGLContext that is used by a QOpenGLContext. This clearly is non-public api that is only meant to be used as a last resort for cases where it is really necessary to get hold of a native context object. Change-Id: Iea7c6abb458acc7aa15926052673270d25d1d9d1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Fix disabled colors in paletteGabriel de Dietrich2012-11-231-1/+0
| | | | | Change-Id: I1e6cf2a860f611e08ae2720c2e4eed65a85dbe9c Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Add WindowFullscreenButtonHint.Morten Johan Sørvig2012-11-231-5/+4
| | | | | | | | | | | | | | | | Adds the fullscreen button on Mac OS X. Has no effect on other platforms. Regarding the name I dropped the "Mac" prefix (like MacWindowToolBarButtonHint). Other platforms can use and we don't want to accumulate "Mac" API's. Change logic in QCocoaWindow check for this flag instead of using WindowsMaximizebutton. Change-Id: I9f2db75e8e71b3da36777c7e48852eda3ce9d534 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Accessibility Mac: Return textArea as role for multi line text.Frederik Gladhorn2012-11-234-5/+8
| | | | | | Change-Id: I88eb4746463b7372c2dfe089ba74ea4cb0098396 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Cocoa: Properly set QNSView's geometry when it's a subviewGabriel de Dietrich2012-11-221-0/+3
| | | | | | Task-number: QTBUG-26960 Change-Id: Ib8ca76572c868305f378d22c21d13511b4999244 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* SIC QPrintSupport: Remove unused PPK_SuppressSystemPrintStatusJohn Layt2012-11-211-2/+0
| | | | | | | | | Print Engine key PPK_SuppressSystemPrintStatus was added in Qt4.1 for Cocoa dialog to suppress the progress dialog. In Qt5 all cocoa code has been removed and this key is now unused. Change-Id: I3a91e9651e16f81611a9a736163f76acf9f20096 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Use setImage workaround on all OS X versions.Morten Johan Sørvig2012-11-201-6/+3
| | | | | | | | | | The painting bug that we are working around/fixing here has been observed on 10.7 as well. Change-Id: Ic29421bcc84405afa085af2f0ed2bc554c684f98 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Compile with -no-widgets.Morten Johan Sorvig2012-11-194-49/+59
| | | | | | | | | | | | | | Remove QApplication usage in qcocoasystemtrayicon.mm Move qt_mac_cg_context from qpaintengine_mac.mm to qcocoahelpers.mm to make it available in no-widgets builds. (Move qt_mac_colorSpaceForDeviceType as well; color space support needs to be cleaned up later on.) Change-Id: I724fdb09538d65eae56c26165f3ba53b6814ea78 Reviewed-by: Liang Qi <liang.qi@digia.com>
* Accessibility Mac: Implement value interfaceFrederik Gladhorn2012-11-151-1/+8
| | | | | Change-Id: Iea6e3c69b220d35bddb1798ff991f8e67e1749e3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Implement EditableText accessibility for Mac.Morten Johan Sorvig2012-11-154-5/+121
| | | | | Change-Id: Ibe03975bafc5a6a420b3bd69dfaa93dbf65c9958 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Cocoa: application menu items sometimes get duplicatedRichard Moe Gustavsen2012-11-141-3/+17
| | | | | | | | | | | | | | | | | | Under some circumstances, the same menu item appears several times in the application menu in the menu bar. This can be seen in Qt creator, where "About Qt Creator" appears twize. The reason is that QCocoaMenu::syncMenuItem does not take into account that merged items cannot be found in the QCocoaMenu that owns the menuItem, but rather inside the application menu. And because of this, it fails cleaning up the old item when it changes from e.g TextHeuristicRole to ApplicationRole. This patch will fix this. Change-Id: Ia84f552d1788d80d778c7dded3393412b9d2d8cb Reviewed-by: Chris Meyer <cmeyer1969@gmail.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: fix window focus lost when opening comboboxRichard Moe Gustavsen2012-11-121-6/+4
| | | | | | | | | | | | | | In cocoa, saying that a panel accepts key events, will make it receive key events, but also show it as the active window on screen. The former we dont really have to care about, since Qt will take care of forwarding events to the popup for us anyway, even when they target another window. So the only reason to actually let a panel become key window, is when we want it to become active. And for popups, we only want this to happend for Tool windows. Change-Id: Ic4e5058307c514cbe30174d2a2d4ca0f41c8f71f QTBUG: 26598 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Add a QEnterEvent containing the mouse position.Friedemann Kleint2012-11-101-9/+14
| | | | | | | | | | | | | Enter handling requires knowledge of the mouse position. Extend the enter handling of QWindowSystemInterface to receive the position (implemented for Windows, XCB and Mac), passing it on to QEnterEvent. Dispatch QEnterEvent from widgets code. Change-Id: I49c07d2b1f46310c877017dd55d4cd7d636bdbce Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Support native event filter for Mac OS XLiang Qi2012-11-097-14/+261
| | | | | | | | | | | Ported from Qt 4 implementation, updated with QAbstractEventDispatcher::filterNativeEvent() call. Tested with an example. Change-Id: I3271f8a565d06d80b7b48ba81728bcdb7b1c32e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Prevent frame notifications going out when the content view is setAndy Shaw2012-11-081-0/+2
| | | | | | | | | When the content view is set it will trigger a frame notification which we do not want to see because it would put our internal data on the geometry out of sync. So ignore the notification until after it is set. Change-Id: I704c2f186c8b0c6508a90d5dab51b7f6f02162fc Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Rename all QWindow properties that have "window" in themShawn Rutledge2012-11-072-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | windowTitle, windowModality, windowIcon and so on are named that way to be similar to the ones in QWidget. However QQuickWindow inherits all of the declared properties, and we would like to have shorter property names in QML. If you are working with a Window then it's obvious the title property is the window title. Unfortunately, there must be patches in many other modules which depend on this one. In order to avoid the need to merge them all at the same time, there is also patch https://codereview.qt-project.org/#change,39001 which temporarily adds backwards-compatible accessors, which can be removed after the other modules are able to build without them. We should not rename windowState to state, because in QML, state usually drives the state machine for animation transitions etc. (although QWindow is not an Item, a user might get confused about it). Related patches are https://codereview.qt-project.org/#change,39001 https://codereview.qt-project.org/#change,37764 https://codereview.qt-project.org/#change,37765 https://codereview.qt-project.org/#change,37766 https://codereview.qt-project.org/#change,37762 Change-Id: Ie4424ec15fbdef6b29b137f90a2ae33f173edd21 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Cocoa: fix backingstore flush for 10.8Teemu Katajisto2012-11-071-9/+6
| | | | | | | | | | Remove compile time version check to make flushing work correctly when building with other sdks than 10.8. Task-number: QTBUG-27862 Change-Id: I915ae80017be1c03d5217aa9bdb60991603f8d01 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: fix memory leaksTeemu Katajisto2012-11-064-3/+14
| | | | | Change-Id: I2e805aa64c65b90d33924ea4a8671735dee581fd Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: Fix fonts on retina displays.Morten Johan Sørvig2012-11-021-4/+3
| | | | | | | | | | | | | | | | | | | Hardcode logical dpi to 72 again. NSDeviceResolution gives us the physical dpi (144) and results in double- sized fonts in Qt. QPlatformScreen does not currently have a physicalDpi virtual, perhaps this can be added later on. Unfortunately the usefulness of a per-screen correct DPI metric seems questionable to me: 1) The value returned by the system is not correct, pixels per inch on the rMBP is around 220. 2) Qt always uses the dpi for the main screen, via qt_defaltDpiX/Y. Change-Id: Ia35804be62ee7f1c623bad854f65d744dc9075d4 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Cocoa: Disable malfunctioning updateScreens().Morten Johan Sørvig2012-11-021-6/+0
| | | | | | | | | | The current updateScreens() implementations deletes QScreens and creates new ones. Deleting a QScreen hides all its windows. The result is that Qt windows disappears when applicationDidChangeScreenParameters is called. Change-Id: I5870d025d2bbf36621817cb220a835d1a6b367dc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Added MultipleWindows platform capability.Samuel Rødal2012-11-021-0/+1
| | | | | | | | | | | | | | Several platform plugins, like eglfs, kms, etc don't support multiple windows as there's no system compositor, they're rendering directly to a single back buffer. By adding a platform capability we'll be able to provide better error reporting when an application tries to create multiple QWindows on a single-window platform. Also, QML apps can use this capability to figure out whether they should create a QWindow for dialogs / popups / menus, or whether to just create items in the same scene, that are shown on top of the rest of the content. Change-Id: I15b8d21ee2bc4568e9d705dbf32f872c2c25742b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Compile cocoa with QT_NO_ACCESSIBILITYJan Arve Saether2012-11-022-0/+8
| | | | | Change-Id: I82b5dbf1bce94bd928eee207992c0036edc527ad Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Mac: Add support for WindowMasks platform capabilityGabriel de Dietrich2012-11-025-32/+100
| | | | | | | | Also brings back a working QWidgetPrivate::setMask_sys(). Change-Id: Idde9eea15d28bb0299258df81322a5a3ff0b9493 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* beef up qt_plugin.prfOswald Buddenhagen2012-11-011-3/+2
| | | | | | | it now defines the DESTDIR and creates an INSTALLS rule. Change-Id: I15a462ccad9acbe3521c352fa98327825dc27c05 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Only use the user set page margins for custom paperAndy Shaw2012-10-301-1/+3
| | | | | | | | | | | | | | When the QPrinter is initalized then it will set up page margins based on the default paper size. If the paper size is changed to be a custom one then it should disregard the margins for the default paper size. If the page margins are set explicitly beforehand then it will use these page margins. Change-Id: Ic535c3a80b8b217dbd5eb5f4fb2cbc0ab1354563 Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Cocoa: Disable touch events.Morten Johan Sorvig2012-10-301-5/+0
| | | | | | | | | | | | | | | | | | | Enabling touch events has a negative impact on overall performance. In particular, enabling touch events seems to disable scroll event compression, resulting scroll processing lag. Until we find a solution where we can have both proper scrolling and touch events we choose scrolling over touch events. Applications that disagree can enable touch events manually: NSView *qtView = (NSView *)QGuiApplication::platformNativeInterface()-> nativeResourceForWindow("nsview", qtWindow); [qtView setAcceptsTouchEvents:YES]; Change-Id: I85cdd6e8c8ed8685c6cd5418c89fed6af02887cd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Fix syncing of visibility and enabled for menus on CocoaAndy Shaw2012-10-263-1/+8
| | | | | | | | | | | Fixed menu handling on Cocoa so if a menu is enabled/disabled or made visible or not then it will keep this in sync with the appropriate native menu entry. Change-Id: If269185fcf065fb1b2f60d6ef8c27c107eb4509f Reviewed-by: Pasi Matilainen <pasi.matilainen@digia.com> Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Make QPen default to 1-width non-cosmetic.Samuel Rødal2012-10-221-2/+2
| | | | | | | | | | | Use the Qt4CompatiblePainting render hint when painting with QPainter to treat default constructed QPens as cosmetic still. The NonCosmeticDefaultPen render hint gets documented as obsolete, since it was in any case not respected by the raster nor OpenGL paint engine. Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Cocoa: fix memory leakTeemu Katajisto2012-10-191-1/+4
| | | | | | | Release the created CGImageRef. Change-Id: If3b36b636ae1302b8a63bbae7285a6461b993f62 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: fix frameStrutMouseEventsRichard Moe Gustavsen2012-10-181-3/+7
| | | | | | | | | | | | | | | It turns out that the calculation of mouse pos over the frame strut (title bar) was wrong. When outside the content view, the nsevent coordinates are negative, so to get this correct, we need to calculate the height of the window above the content view and use this information to get the mouse pos in positive coordinates with origin window top left. This bug was especially apperent with QDockWidget, as it became almost impossible to dock a window under such circumstances. Change-Id: I2faf6aab5e2aa0b4e217ea087ceec8c1b1e978bb Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Cocoa: remove current contentView when clearing windowTeemu Katajisto2012-10-172-0/+9
| | | | | | | | | | Otherwise they might be still events sent to view with no proper QWindow. Also, add dealloc QNSView for clean up. Task-number: QTBUG-26580 Task-number: QTBUG-27456 Change-Id: Icdbe5c39490b72ec82795c2d71e5671cea81921e Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>