summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Utilize the new Q_OS_MACX define.Jake Petroules2013-05-091-1/+1
| | | | | | | | | | All occurrences of `#if defined(Q_OS_MAC) && !defined(Q_OS_IOS)` have been replaced with `#if defined(Q_OS_MACX)`. Change-Id: I5055d9bd1845136beb8ed1c79a8f0f2c0897751a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove references to inexisting enums in Q_ENUMSOlivier Goffart2013-05-081-1/+1
| | | | | | | | | moc currently silently ignores them, but I have a version which display a warning. Change-Id: I9a239cb7e99d40a57a013fb66357c4a6426d6e8b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Menu item shortcuts reaching Qt's event loop are disabledGabriel de Dietrich2013-05-081-0/+10
| | | | | | | | | See comment in code and Cocoa event dispatching overview at https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html Task-number: QTBUG-30657 Change-Id: I88907aeeefa4962e1121495cd51af17a8e71b7de Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* QWidgetWindow: don't accept touch events while in popup modeRichard Moe Gustavsen2013-05-071-0/+4
| | | | | | | | | | | | | | | | | | | | QWidgetWindow will always redirect mouse events to the active popup (if any). The same logic is not implemented for touch events, which means that touch events are always delivered to the widget under the finger. It is therefore possible to interact with widgets that are modally shaddowed by the popup. It is also not possible to close popups without touching them directly. This patch will ignore touch events when a popup is active, and as such, force a synthesised mouse event to be sent instead. Implementing proper touch support also for popups is out of scope for widgets. Change-Id: I023c09c3e1fd4e5495df990c11419c69ecafb8f9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* doc: QWidget::setEnabled cannot enable children of a disabled widgetJan Kundrát2013-05-071-1/+2
| | | | | | | | | | The current documentation is not terribly clear on this topic, and there's a couple of posts on various forums where people want to do this. In fact, the old wording suggested (at least to me) that it is OK to explicitly override a disabled state, which is apparently not true. Change-Id: I10c54e0089e9ba5d16958aea62df27feafdf7b3d Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Prevent crash due to giving QWidget::update() a large region.Samuel Rødal2013-05-071-4/+9
| | | | | | | | | | | Similar to what change a298216bb4383dbe96 does for update(QRect) we clip the update region against the widget's rect and return if it's empty. Otherwise we risk ending up with update rects that are larger than INT_MAX due to multiple update rects being merged. Task-number: QTBUG-30876 Change-Id: Idf695b1fdca50449a1e5ddf37500653de290590c Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Enable non-client-area mouse events by default for widgets.Friedemann Kleint2013-05-071-0/+3
| | | | | | | | Task-number: QTBUG-30530 Task-number: QTBUG-29012 Change-Id: Iaddbb89bbb198e2b04419407e0871951650552ce Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Set geometry set by QPlatformWindow::initialGeometry() on widget.Friedemann Kleint2013-05-071-0/+7
| | | | | | | Task-number: QTBUG-30855 Change-Id: I15f3dfa0b493874671711cce2190d0710b368796 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* QApplication: fix touch to mouse bug when setting buttons()Richard Moe Gustavsen2013-05-071-1/+2
| | | | | | | | | | | | | | | | | | | QApplicationPrivate::translateTouchToMouse always sets buttons() to Qt::LeftButton for synthesised events. This is wrong for a mouse release, since 'button' should in that case be Qt::LeftButton, and 'buttons' should be Qt::NoButton (since no buttons are actually being pressed). This caused problems for QGraphicsView, which refuses to release any mouse grab set on a QGraphicsItem if at least one button is being pressed (which was always true). This resulted in broken drag behavior on touch platforms. Change-Id: Iefe63cd753f9f8bb04278fd04a4d728e3deda25e Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Prevent crash due to giving QWidget::update() a large rect.Samuel Rødal2013-04-291-4/+9
| | | | | | | | | | | We can simply clip the update rect against the widget's rect and return if it's empty. Otherwise we risk ending up with update rects that are larger than INT_MAX due to multiple update rects being merged. Task-number: QTBUG-30876 Change-Id: I23bd0149fbe8d1a007a60b228e6bddb45dc4fc32 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Respond to the _NET_WM_CONTEXT_HELP WM_PROTOCOLS messageJan Kundrát2013-04-241-0/+8
| | | | | | | | | | | | | | | | This change restores a proper function of the "(?)" button in the window decorations which is used as a clue for the user to check what a particular widget is supposed to do. The change is only implemented for QtWidgets because the underlying QWhatsThis is inherently widget-specific -- which is why it sends an event to QGuiApplication, but only processes it in the QtWidget-specific QApplication. Thanks to Alberto Mardegan and Gunnar Sletta for their feedback on this patch. Change-Id: Ibb912e3960f1e9aec54c5ed77ade1c6744d6ca23 Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fixed documentation of QWidget::mouseDoubleClickEvent.Samuel Rødal2013-04-241-2/+0
| | | | | | | | Since change 3bb902495291c5 the documentation is invalid. Task-number: QTBUG-29680 Change-Id: I7d5fcb6bc490aa5cba83439d33f798459640c42d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Cocoa: Add setAlertState(), isAlertState(), beep() functionsGabriel de Dietrich2013-04-231-1/+1
| | | | | | | | 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>
* Fixed QLayout::addChildLayout(QLayout *l) when l had a parentJan Arve Saether2013-04-235-5/+19
| | | | | | | | | | | Previously if l had a parent, addChildLayout would warn and skip the reparenting, but it would still add the sub layout to the layout. This caused some inconsistencies in the hierarchy which in worst case could cause crashes. Task-number: QTBUG-30758 Change-Id: I618ec3341636b97bd71e421201b22c746dcf43e1 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Fix crash when deleting a QMenu on exitGabriel de Dietrich2013-04-231-1/+1
| | | | | | | | | If the application object is an ancestor of QMenu, dereferencing qApp in its destructor will cause a crash. Task-number: QTBUG-30756 Change-Id: I31a33db0fd783bb210a420618911ea8b412e9a0f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Don't set WA_AcceptTouchEvents on Mac OS X.Morten Johan Sørvig2013-04-231-2/+2
| | | | | | | | | | | Setting this flag causes scroll event lag, so we want to keep it off for all widgets that do not need touch events. QPanGestureRecognizer is installed on all QAbstractScrollAreas. Prevent it from setting the flag. Change-Id: Idd4fcc545ff26377607b56f75db75c2865a5fc82 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Implement QApplication::beep().Friedemann Kleint2013-04-191-0/+1
| | | | | | | | | | Invoke slot "beep" on QPlatformNativeInterface. Implement for Windows and X11. Task-number: QTBUG-30416 Change-Id: I2be651165b899e5147818a012001d354827bb090 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Implement alertion state for windows.Friedemann Kleint2013-04-191-1/+11
| | | | | | | | | | | | | | Add QWindow::alert() and QPlatformWindow::setAlertState(). Add logic to clear alertion state when the window becomes active. The platform plugins then only need to implement a setter and a cheap getter and need not handle activation. Prototypically implement X11 and Windows. Task-number: QTBUG-30416 Change-Id: Ia70c4722d812462a21f4034b7d52735c9f2bc49c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Android: Don't crash when displaying multiple top-levelsEskil Abrahamsen Blomfeldt2013-04-181-1/+12
| | | | | | | | | | | | | | | | | | | | | | While the raster platform plugin supports multiple top level windows, this is not supported on the GL plugin, so if you use GL or QtQuick2 in your app and use several top levels, the app would crash with an error message. A problem is that the top-level SurfaceView is a special overlay View and does not support being stacked in a layout. So instead, we let all windows share the same GL surface and draw on top of each other. This works fine for simple use cases. We implement a new platform capability to make sure no top level windows (even combobox popups and dialogs) get non-fullscreen geometries. That has never worked properly with the eglfs plugin. Task-number: QTBUG-30473 Change-Id: Ia1438019638fc739cc93ffe79b46b81631254df2 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Add devicePixelRatio metric to QPaintDevice.Morten Johan Sørvig2013-04-152-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPainter computed the devicePixelRatio based on the physical and logical dpi, and expected that the ratio between them would be either 1x or 2x. This was problematic for paint devices like printers where the physical dpi can be much higher than the logical dpi, and also for QScreen where the physical dpi would have to be defined as a multiple of the logical dpi. Add QPaintDevice::PdmDevicePixelRatio and QPaintDevice:: devicePixelRatio() getter and implement it for the QPaintDevice subclasses. Use it when calculating the highdpi scale transform in qpainter.cpp and when scaling the clip rect in qwidget.cpp. Remove physical dpi scaling for QImage, QPixmap and QOpenGLPaintDevice, reverting to the old behavior. Change-Id: I6c97510613196d4536ff39d08e9750b8782283d4 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Widgets: Propagate 'accepted'-state of touch begin events.Friedemann Kleint2013-04-123-9/+16
| | | | | | | Task-number: QTBUG-29946 Change-Id: Ia9ac54251f52b6ae4b3d667e49b96441def72a57 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix the check if mouse events should be synthesized from touch eventsFabian Bumberger2013-04-111-6/+2
| | | | | | | | | | | | | | | | In QGuiApplication only Qt::AA_SynthesizeMouseForUnhandledTouchEvents is taken into account when synthesizing mouse from touch events, in QApplication only the PlatformIntegration syle hint QPlatformIntegration::SynthesizeMouseFromTouchEvents. With this patch both attributes are checked. Furthermore the check was moved out of translateTouchToMouse in QApplication in order not to influence the result which is returned to the user, when mouse events are not be synthesized. Change-Id: I87ac7299f0a9fbf0a083eff9c547f0dbfab75dfb Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Mark widget framestrut as dirty when window flags change.Friedemann Kleint2013-04-051-0/+3
| | | | | | | | | | | | | When undocking a dock using the undock button on a main window with native children, the dock widget goes to 0,0 (content position) causing the window frame to be off-screen since the frame is still 0,0. This change causes the frame to be recalculated such that the frame position is 0,0. Task-number: QTBUG-28872 Change-Id: I32896107cd7b982811f45de43dbad82e7407ea7a Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* QWidget: micro-optimisationMarc Mutz2013-03-291-1/+1
| | | | | | | Compare string size before content. Change-Id: I00f9c6c6cf31148af4807455fa6f6b9254dda9d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Cocoa: Make touch events work again.Morten Johan Sørvig2013-03-261-0/+28
| | | | | | | | | | | | | | Bring back the ref-counted enable on enter/leave workaround we had in Qt 4: If any widget in a window sets WA_AcceptTouchEvents then that window will start processing touch events. Enabling touch events has implications for delivery of other events, for example by causing scrolling event lag. Change-Id: I307488937f417612eff624bf9892b82a7f69c1b7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Set screen position when generating synthetic mouse events from touchMorten Johan Sørvig2013-03-261-1/+1
| | | | | | | | QGraphicsView uses QMouseEvent::globalPos(), so we need to set it when synthesizing mouse events in QApplication. Change-Id: I8341e09fdd41400c5c5e1d0ee17c7323efdafaeb Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* OSX: WindowTransparentForInput QNSView pass events to next responderShawn Rutledge2013-03-241-1/+2
| | | | | | | | | | | | | | | | | | | The default implementation (in the super class) passes the event to the next responder. This seems to be one valid way to handle the Qt::WindowTransparentForInput flag. So if a non-alien widget for which a native NSView is created has the flag WA_TransparentForMouseEvents, that means the window will have Qt::WindowTransparentForInput, and the NSView which is created on its behalf will pass on each event so that other NSViews have a chance to handle it. (It will also try to reject becoming first responder, but that doesn't seem to be enough for the following events to be passed on.) This is a followup to I979be9f72f7d225d7b960fc5db4c3956d2749982 which purported to obey the WindowTransparentForInput flag, but actually doesn't. Change-Id: Ia72a3573c2e3cbfa7ede70bee41ac36df6924598 Task-number: QTBUG-28816 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Accessibility: Fix crash when updating in dtorFrederik Gladhorn2013-03-231-0/+2
| | | | | | | | | | | | | | This happens for example when running several tests. Widgets in destructor should be treated as invalid since their window pointer and other properties are no longer valid. When deleting a window containing only a table view there would be a table model reset update comming from the window being destroyed. Change-Id: Ia387c814333ce373fe132b189fc180787e36cdd5 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix missing parts of Ie511522d35b5658c20be43dd112eae18c205277f in mergeMitch Curtis2013-03-221-2/+4
| | | | | | | | | | | The merge of dev->stable branch somehow lost these bits of: Make QCoreApplication::startingUp() return false when appropriate. Which was Change-Id: Ie511522d35b5658c20be43dd112eae18c205277f Change-Id: I2991b10e2774bf5a59fa37734d4a9fd39d51b472 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Fix license headers stating QtGui for QtWidgets files.Jake Petroules2013-03-1959-59/+59
| | | | | Change-Id: I0ca49e3e1f9f603f0b0f7f3553e854b871efe303 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure that we #include qconfig.h before testing for features.Thiago Macieira2013-03-191-0/+3
| | | | | | | | | | | This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but it's a good idea even in private headers, in case someone includes that header first somewhere. In particular, all platformsupport API is private. Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Windows: Fix drop shadows for widget tool tips.Friedemann Kleint2013-03-181-0/+5
| | | | | | | Change-Id: Ifacee152e291face69964471d75e92b7784be4a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Make QT_STYLE_OVERRIDE env variable available to release buildsShawn Rutledge2013-03-181-4/+0
| | | | | | | | | This shouldn't be restricted to internal builds. It's nice to be able to enable fusion style by default instead of GTK, for example. Change-Id: Icf9b4c990ddd1152b7444948c98717faff1c5ad6 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Whitespace cleanup: remove trailing whitespaceAxel Waggershauser2013-03-169-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove all trailing whitespace from the following list of files: *.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README excluding 3rdparty, test-data and auto generated code. Note A): the only non 3rdparty c++-files that still have trailing whitespace after this change are: * src/corelib/codecs/cp949codetbl_p.h * src/corelib/codecs/qjpunicode.cpp * src/corelib/codecs/qbig5codec.cpp * src/corelib/xml/qxmlstream_p.h * src/tools/qdoc/qmlparser/qqmljsgrammar.cpp * src/tools/uic/ui4.cpp * tests/auto/other/qtokenautomaton/tokenizers/* * tests/benchmarks/corelib/tools/qstring/data.cpp * util/lexgen/tokenizer.cpp Note B): in about 30 files some overlapping 'leading tab' and 'TAB character in non-leading whitespace' issues have been fixed to make the sanity bot happy. Plus some general ws-fixes here and there as asked for during review. Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Do not list desktop widgets and desktop screen widgets as top-levels.Friedemann Kleint2013-03-121-2/+1
| | | | | | Change-Id: Iea4905d802213848594d2ad0266696e5edb884f8 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* QApplication: Fix MSVC-warning about unused variable q.Friedemann Kleint2013-03-121-6/+2
| | | | | | Change-Id: I44f34816cb18583fcbbab0a6c79b313a829d9236 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Implement XEmbed protocolAlberto Mardegan2013-03-065-4/+88
| | | | | | | | | | | | | | | | | | | Add a static QWindow::fromWinId(WId id) constructor which can be used to create a QWindow object representing windows created by other processes. Then, QWindow::setParent() can be used to embed a window into a foreign window socket and QWindow::setTransientParent() to stick the current window on top of a foreign window. The changes in the QtWidgets module ensure that the focus chain (TAB navigation) correctly works when a QtWidgets-based window is embedded into another application. As far as the platform implementation is concerned, this commit only implements the embedding functionality in the XCB plugin. So, this is roughly equivalent to the Qt4 QX11EmbedWidget functionality. Change-Id: Iff8f7b9ee974d33fb30f36056f7838b433a413c7 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-03-051-19/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure qmake/generators/mac/pbuilder_pbx.cpp src/corelib/kernel/qtimerinfo_unix.cpp src/plugins/platforms/cocoa/qcocoabackingstore.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
| * Transient QWindows centered; default-constructed geometryShawn Rutledge2013-02-241-19/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Default-constructed geometry does not mean put the window at 0,0, and it does not mean center the window on the screen: it means let the window manager position the window. If the window is explicitly positioned at 0,0 though, that is a higher priority than the transient hint; without this change, the transientFor property had no effect. On X11, transient means use center "gravity" to make the transient window exactly centered. But the user can still override the geometry of a transient window, as with any window. On OSX and Windows, neither transient window functionality nor smart initial positioning are provided, so a window with no position set will be centered on the screen, and a transient window will be put at the center of its transientParent. Change-Id: I4f5e37480eef5d105e45ffd60362a57f13ec55f5 Task-number: QTBUG-26903 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Merge "Merge branch 'ios' into dev" into refs/staging/devTor Arne Vestbø2013-02-281-1/+1
|\ \
| * | iOS: fix build issue, dont link against cocoaRichard Moe Gustavsen2013-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the libraries dont depend on Cocoa. This will be picked up by libtool, and make all apps and examples link against cocoa too (which will ofcourse fail) Change-Id: I5654bb08c4ed376fc7ee74da422d903270a8af38 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | | Enablers for input methods on AndroidPaul Olav Tvete2013-02-271-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | Adding QInputMethod::inputItemRectangle()/setInputItemRectangle(). Known bugs: inputItemRectangle() not implemented for graphics view items; inputItemTransform() implementation was already missing. Change-Id: I72b1d43350e93858a2b374de3f2199500a96dc79 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Giuseppe D'Angelo2013-02-211-12/+15
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-201-12/+15
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/unix/separate_debug_info.prf src/gui/kernel/qwindow_p.h src/plugins/platforms/cocoa/qcocoacursor.mm tests/auto/tools/moc/tst_moc.cpp Change-Id: Ieb57834c00f961a747ffe51e6eb9fc9612cebccf
| | * Fix focus handling of native child widgets in xcb.Gunnar Sletta2013-02-191-1/+17
| | | | | | | | | | | | | | | | | | Change-Id: If4d596195624011142bff6853849a23064e478df Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> (cherry picked from commit fc663b5f9aae16fe6a03160e3eb148a5f742ac58)
| | * QStackedLayout: Fix crash when focus widget is destroyed in hide()Jan Arve Saether2013-02-191-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We also have to make sure that when moving back to a page that has a focusWidget(), the focus should go to the focusWidget() Task-number: QTBUG-18242 Change-Id: Ibfa7d6361c1a456480b2f1584a88ef4c4f405709 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Activate window before replay mouse press eventjian liang2013-02-201-0/+6
|/ / | | | | | | | | | | | | | | | | | | Activate the window of the widget under mouse pointer before replay mouse press event. Change-Id: I9e699374accf108aa49b2a3c73d5e76631100dfd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Doc: Fix some typosTakumi ASAKI2013-02-192-3/+3
| | | | | | | | | | Change-Id: I7f3a8cd27f1d1cb944599cff40024f3521a3ec34 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-181-1/+9
|\| | | | | | | | | | | | | Conflicts: src/widgets/styles/qmacstyle_mac.mm Change-Id: If8326db9e7da3cbf45dbf7475fdff9915c7723b1
| * Remove QGraphicsProxyWidget crash in QWidget::hasFocus().Andreas Aardal Hanssen2013-02-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A QGraphicsProxyWidget embeds a focusable widget (e.g., QComboBox). When deleting QGraphicsProxyWidget, the QWidget will be deleted. The QWidget clears focus, and QWidget::hasFocus() is nice enough to check if its embedder QGraphicsProxyWidget has focus - because if it does, it wants to clear focus from that item too. QGraphicsItem's destructor already calls clearFocus() however, so this call is unnecessary; we can simply stop clearing the QWidget's focus in its destructor if the widget is embedded. QWidget::hasFocus checks QGraphicsItem::hasFocus (on the proxy widget that is being deleted), which checks its d_ptr, which is gone. It's generally unfavorable for an object deleting a child to have the child go back and poke at the parent object, which is in many ways what's happening here. Task-number: QTBUG-29684 Change-Id: I1e52bf28f47b2824752de28dff2d0de13733ee48 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>