summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote branch 'staging/4.6' into 4.6Simon Hausmann2009-12-176-32/+72
|\
| * Avoid timer starvation when handling many X11 eventsBradley T. Hughes2009-12-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | After commit d0d0fdb8e46351b4ab8492de31e5363ef6662b57, timers are normally run at idle priority. This makes it possible for the X11 handler to starve timers indefinitely. Fix this by enforcing one normal priority pass of the timer source after we have processed all X11 events. This has the added benefit of keeping animation timers smooth and consistent, which is the intention of this change. Reviewed-by: Jens Bache-Wiig
| * Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6David Boddie2009-12-162-2/+4
| |\
| | * Fixed wheel event delivery in graphicsview.Denis Dzyubenko2009-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | We don't need to flip the y-coordinate of window- and view-local coordinates because they are flipped already. Reviewed-by: Prasanth
| | * Doc fix: mark QFileOpenEvent::url to be available since 4.6Denis Dzyubenko2009-12-161-1/+3
| | | | | | | | | | | | Reviewed-by: trustme
| * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6David Boddie2009-12-153-28/+64
| |\ \ | | |/
| | * Optimisations to gesture event filtering.Denis Dzyubenko2009-12-153-28/+64
| | | | | | | | | | | | | | | | | | | | | Now we don't filter some events through the gesture manager and use QMap instead of QHash, which seem to be a bit faster in our cases. Reviewed-by: Olivier Goffart
| * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6David Boddie2009-12-145-15/+25
| |\ \ | | |/
| * | Doc: Fixed an image reference.David Boddie2009-12-141-2/+2
| | | | | | | | | | | | Reviewed-by: Trust Me
* | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-12-161-2/+8
|\ \ \ | | |/ | |/| | | | | | | Conflicts: src/s60installs/bwins/QtGuiu.def
| * | Fix crashes when deleting QWidgets and QGraphicsItems in touch event handlers.Bradley T. Hughes2009-12-111-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QWeakPointer to bail out early if a widget is deleted while we are delivering/propagating a TouchBegin event. In QGraphicsScene, we need to make sure that we clear the scene's active touch points for items that are removed from the scene. This allows us to detect when an item is removed during TouchBegin event delivery/propagation. Unlike QWidget, propagation continues since we use a hit-test instead of the item's hierarchy for propagation. Task-number: QTBUG-6654 Reviewed-by: bnilsen
* | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-12-1111-370/+301
|\ \ \ | |/ / | | | | | | | | | Conflicts: src/s60installs/bwins/QtGuiu.def
| * | Merge commit 'origin/4.6' into 4.6-upstreamBradley T. Hughes2009-12-091-66/+46
| |\ \ | | |/
| | * Cannot drag scrollbars in a QPlainTextEdit on Cocoa.Prasanth Ullattil2009-12-071-66/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QPlainTextEdit can change the scroll ranges while dragging the scrollbar. This will eventualy call QWidget::raise(), on Cocoa it was done by removing the NSView and adding it back. This causes problems like resetting internal state while a mouseDragged was active on the view. The fix we will now sort the views based on their Qt-z-order. lower() & stackUnder() also fixed like this. Reviewed-by: Denis
| * | Merge oslo-staging-2/4.6 into upstream/4.6Olivier Goffart2009-12-094-13/+17
| |\ \ | | |/ | |/|
| * | Merge commit '33441e2a611f07207b0b942368aab9010cdf8ab1' of ↵Simon Hausmann2009-12-0510-304/+255
| |\ \ | | | | | | | | | | | | oslo-staging-1/4.6 into 4.6
| | * | Ensure the button state is correct when creating a QWheelEvent on Mac.Andy Shaw2009-12-032-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Mac when we receive a scrollWheel event on Carbon or Cocoa then we need to use QApplication::mouseButtons() in order to ensure the QWheelEvent has the right button states set. This is because the buttons state information is not passed in the native event at all. Reviewed-by: MortenS
| | * | Compile fix for mac after the merge.Denis Dzyubenko2009-12-031-0/+1
| | | | | | | | | | | | | | | | Reviewed-by: trustme
| | * | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6-staging1Denis Dzyubenko2009-12-0310-298/+286
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qcocoapanel_mac.mm src/gui/kernel/qcocoawindow_mac.mm
| | | * | Cocoa: refactor common code into a shared fileRichard Moe Gustavsen2009-12-036-277/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCocoaWindow and QCocoaPanel has many methods that are implemented _exactly_ the same way. Those methods are just copied/pasted between the classes because of inheritance problems. This is error-prone as bugs tends to be fixed inside one of the classes, but easily forgotten in the other class. This patch refactors out this code into a new file that is simply #included from the two classes. We do this fix for a patch release to ease a couple of fixes that is about to be integrated. Reviewed-by: Prasanth Reviewed-by: Denis
| | * | | Improved mouse wheel event delivery on Mac.Denis Dzyubenko2009-12-031-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a popup is open we should not deliver wheel events to widget outside of the popup - native Cocoa applications don't do that. Reviewed-by: Richard
| | * | | Do not emulate mouse event out of touch pad eventsDenis Dzyubenko2009-12-021-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the touch event comes from a touchpad it doesn't seem necessary to send fake mouse events. At least on the platform that actually supports touchpad events (i.e. Mac) native apps don't do that and the current implementation breaks popup handling - since touch events are only sent by default if two or more fingers touch the touchpad, we send fake MouseButtonPress when second finger is pressed and MouseButtonRelease when the second finger is released - i.e. at the same time when the system send scrollWheel events. This causes the active popup to close when using two-finger scroll gesture. Reviewed-by: Brad
| | * | | Improved implicit mouse grabbing on Cocoa.Denis Dzyubenko2009-12-024-42/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This improves 106121a74bca32a6411b9ca968ee415f8bdfbff1 which was incomplete and didn't work properly for comboboxes (or in general - when a popup window opens due to a mouse press). Reviewed-by: Prasanth
* | | | | Rewrote most of the regular pointer handling.axis2009-12-092-90/+94
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old implementation had been hacked on for a while and needed cleanup. The new code is heavily based on looking at the behavior of other platforms. It also reuses more of the cross platform code, which improves the handling of Enter and Leave events. We also switched to letting Symbian grab the pointer automatically when pressing down the mouse button, which improves things considerably compared to doing it ourselves. Popups should also work a lot better after this fix, since they were not really handled at all in the old code. The old code had calls to set the Symbian cursor sprite. This code has been removed since that code is now being called from within dispatchEnterLeaveEvents(). In addition, there was code to check whether the up key event had been left out by the platform. This was solved a bit differently now, instead putting the code in the section that handles virtual mouse, since that is where the problem occurs. Task: QTBUG-4990 RevBy: Shane Kearns AutoTest: N/A, Platform specific code that an autotest cannot catch. Lots of manual testing was done on normal examples as well drag'n'drop examples and it seemed to work fine.
* | | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into ↵axis2009-12-081-1/+5
|\ \ \ \ | | | | | | | | | | | | | | | 4.6-staging2
| * | | | Minor fixes to softkey dimming support (commit 245c9cc0).Janne Anttila2009-12-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt invisible actions are disabled by default, and our "Options" softkey is set to invisible in order that it is not show in context menu. Thus we need don't want to dim in softkey even it is disabled. Additionally, QDialogButtonEnabledProxy need to set the initial enabled state for proxy action from button. Fixes bugs in commit: 245c9cc0 Reviewed-by: TrustMe
* | | | | Doc: Explicitly mention that QWidget/QGraphicsItem takes ownership of effects.Bjørn Erik Nilsen2009-12-081-0/+2
| | | | |
* | | | | Fixed memory leaks when removing a QGraphicsEffect from a QGraphicsItem or ↵Yoann Lopes2009-12-073-11/+6
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWidget with setGraphicsEffect(0). The effect was not deleted in that case, problem solved for both QGraphicsItem and QWidget. Autotest included. Task-number: QTBUG-5917 Reviewed-by: bnilsen
* | | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into ↵axis2009-12-071-2/+5
|\ \ \ \ | |/ / / |/| | | | | | | 4.6-staging2
| * | | Added dimming support for disabled softkeys in Symbian.Janne Anttila2009-12-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QAction::setEnabled(false) is called, the CBA buttons are dimmed to have visual indication about disabled state. Since enabled/disabled state of buttons in QDialogButtonBox is controlled via QPushButton::setEnabled API, and because button box content in Symbian is mapped to sofkkeys we also need to have proxy for button enabled state to forward the information for underlying QAction. Reviewed-by: Sami Merila
| * | | Fixed "...QString::QString(const char *)... is deprecated" warning.Janne Anttila2009-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-6290 Reviewed-by: TrustMe
* | | | Merge commit 'c0b81480b2909b18ac15bdd124a562ae005c2f41' into origin-4.6Olivier Goffart2009-12-041-1/+1
|\ \ \ \ | |/ / / | | | / | |_|/ |/| |
| * | Fixed softkey merging/traversing over window boundaries.Janne Anttila2009-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If current dialog implementation had parent and no softkeys set, the dialog got softkeys from parent. This commit changes the behaviour so that softkeys are not traversed over window boundaries. Also added autotest for the bug report. Task-number: QTBUG-6163 Reviewed-by: Jason Barron
* | | Merge commit 'upstream/4.6' into 4.6Bradley T. Hughes2009-12-024-10/+87
|\ \ \ | |/ / | | / | |/ |/|
| * Clarify the docs a bit when setting focus.axis2009-12-011-2/+8
| | | | | | | | RevBy: Trust me
| * Merge branch 'mmfphonon' into 4.6Gareth Stockwell2009-11-303-8/+79
| |\
| | * Symbian control invokes slots before and after native draw opsGareth Stockwell2009-11-263-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Direct Screen Access (DSA) allows a client to request notification from the window server when drawing is performed by other threads, into a specified region of the screen. This allows DSA rendering - for example video - to be suspended when notifications are drawn, preventing the video content from overwriting the notification. If the drawing originates from the same thread as that which holds the DSA session, DSA must be suspended while drawing takes place. This change allows a widget to request notification when native drawing is about to be performed by QSymbianControl::Draw. Task-number: QTBUG-5467 Reviewed-by: Jason Barron
| | * Allow Symbian widget implementations to select native paint modeGareth Stockwell2009-11-263-8/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the Symbian platform, the Qt raster paint engine targets an off-screen buffer owned by the Font & Bitmap server (FBSERV). When an area of the screen needs to be refreshed, the window server (WSERV) asks the control environment (CONE) to redraw the control(s) intersecting that screen region. Each Qt native widget has an associated Symbian control, whose Draw function blits the required region of the backing store via WSERV. Use cases involving Direct Screen Access (DSA) may require this behaviour to be modified, to either of the following: - Disable: the Draw function does nothing. In this case, the output of paint events, rendered to the backing store, is not blitted to the screen. This mode was introduced by change 8f445e13. - Zero fill: the Draw function fills all pixels within the redraw region with zeroes. This change allows the widget implementation to select either of these alternative modes by setting a flag in its QWExtra structure. Note that these alternative modes are only suitable for native widgets, because they act on a per-control rather than per-widget basis. Task-number: QTBUG-5467 Reviewed-by: Jason Barron
* | | Creator crashes when reloading externally modified .ui files on MacPrasanth Ullattil2009-12-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Mac QWidget::destroy() sends an AcceptDropsChange event after clearing the guards for QPointer. This was used to store a QPointer to the widget being deleted & that will never be cleared. The fix removed the setAcceptDrops() from destroy. And as an extra protection make sure designer will not treat that event as interesting. Task-number: QTCREATORBUG-307 Reviewed-by: Denis Dzyubenko Reviewed-by: Friedemann Kleint
* | | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6Simon Hausmann2009-11-292-36/+50
|\ \ \ | |/ /
| * | Merge commit oslo-staging-2/4.6 into upstream/4.6Olivier Goffart2009-11-272-36/+50
| |\ \
| | * \ Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into ↵axis2009-11-262-36/+50
| | |\ \ | | | | | | | | | | | | | | | 4.6-staging2
| | | * | Fixes for tab/space usage in qwidget.cpp.Janne Anttila2009-11-251-15/+15
| | | | | | | | | | | | | | | | | | | | Reviewed-by: TrustMe
| | | * | Fix crash in QApplication::beep() on S60Shane Kearns2009-11-251-21/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using an asynchronous API synchronously caused a crash, because the data structure was deleted while an async request is still pending. Depending on the multimedia implementation on the phone, the crash will happen or you just get no sound (or it can even work if the underlying implementation is blocking). Solution is to use the API asynchronously, and delete the handling object in qt_cleanup. Also raised the tone by one octave to be more similar to the system beep. Task-number: QTBUG-6170 Reviewed-by: Janne Anttila Reviewed-by: Miikka Heikkinen
* | | | | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6Simon Hausmann2009-11-272-19/+6
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6David Boddie2009-11-252-19/+6
| |\ \ \ \ | | |/ / /
| | * | | Merge commit 'oslo-staging-2/4.6' into upstream/4.6Olivier Goffart2009-11-252-19/+6
| | |\ \ \ | | | |/ /
| | | * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-staging2axis2009-11-241-1/+1
| | | |\ \
| | | * \ \ Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into ↵axis2009-11-242-19/+6
| | | |\ \ \ | | | | | |/ | | | | |/| | | | | | | 4.6-staging2
| | | | * | Removed window activation hack, unified and fixed title&icon setting.Janne Anttila2009-11-232-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The window activation hack is not needed anynmore since AppUi()->RemoveFromStack() ensures the next visible window will get the keyboard focus. Hack removal also required change to window title setting logic. Since window title (and icon) are associated to top-level windows, the logical place to set them is the same place where active window is changed i.e. QApplication::setActiveWindow is called. At the same time also window icon setting from show_sys was move to focusChanged to make icon/title setting more consistent. When changing orientation or switching to different statuspane mode we receive KInternalStatusPaneChange events for each window in QSymbianControl::HandleResourceChange. When receiving such event we only need to reset the icon for focused/visible window. If we don't handle it like this, it might happen that invisible widget added to control stack resets the global icon/title. Task-number: QTBUG-5780 Reviewed-by: Axis