Commit Graph

2195 Commits (fc0f784e54d5dce72cc6a7e4b1fad243dadfcd76)

Author SHA1 Message Date
Yoann Lopes e94c221655 Android: added ApplicationState capability.
The application state is tied to the QtActivity lifecycle.
Mapping of states between Android and Qt is as follows:
 onResume --> ApplicationActive
 onPause  --> ApplicationInactive
 onStop   --> ApplicationSuspended

Change-Id: Iefef08d6c7a7fde28fba1f4886882458cda6a0c0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-28 17:00:15 +02:00
Giuseppe D'Angelo a79e42b8f4 Enable DWM transparency for OpenGL windows under Windows
Starting with Windows Vista, we can control the compositing window
manager using the DWM APIs. This allows us to make truly transparent
OpenGL windows.

We also have to detect and listen if compositing is enabled, otherwise
enabling transparency will cause glitches all over the place.

This (partially) fixes
Task-number: QTBUG-28214

Change-Id: I0fe1ec7adec8181b788c32de03c59142731d9e7f
Done-with: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-28 09:33:46 +02:00
Frederik Gladhorn 190fa97c83 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	examples/widgets/doc/src/addressbook-fr.qdoc

Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
2013-08-27 22:51:09 +02:00
Daiwei Li 79570157e3 Return 1.0 for devicePixelRatio in QCocoaWindow if no valid window
If m_window is invalid, devicePixelRatio returns 0, which leads to
adverse effects in other parts of the code. For example,
qquickshadereffectsource.cpp will get stuck in an infinite loop
trying to multiply 0 by 2.

Task-number: QTBUG-32975

Change-Id: Ie3db86f1f459df018ebce67bcb4226f6cffe854e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-23 11:48:00 +02:00
Friedemann Kleint 9194fc00a6 Windows: Keep monitors when system is locked.
Prevent windows from being recreated due to screen changes which
can cause GL widgets to stop updating among other things.

EnumMonitors returns only one temporary monitor named "WinDisc"
when locked. Do not remove monitors when that happens.

Task-number: QTBUG-33062
Change-Id: Ia2247bb04b3e10f99f594245f84238b5f9044f70
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-23 11:48:00 +02:00
Tor Arne Vestbø 29c1567ee4 Rename QIOSEventDispatcher to QEventDispatcherCoreFoundation
Now that it lives in QPlatformSupport, will be fleshed out more, and
might be used on OSX at some point in time. Still iOS specific, as
none of the iOS API usages have been ifdef'ed.

Change-Id: Ib7fde6403ef2dfef175a6f306a85d58027569a30
Reviewed-by: Ian Dean <ian@mediator-software.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-23 11:28:48 +02:00
Tor Arne Vestbø 4ab5870699 iOS: Determine render buffer resize based on CA layer, not Qt window
We resize the render-buffer based on the CALayer of the UIView that's
backing the QPlatformWindow, so the logic in defaultFramebufferObject()
to determine if a resize is needed should be based on the relationship
between the render buffer-and the CALayer, not the render-buffer and
the QPlatformWindow.

There is still an issue of the QPlatformWindow and its UIView/CALayer
not being in sync, but that's a separate issue.

Change-Id: I84f617d07ec64fea0d027473e9720523eeae0c7a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-23 11:28:48 +02:00
Uli Schlachter bd00b51c47 XCB: Fix race with the event thread
The XCB backend runs a thread which gets events out of the XCB event
queue and feeds it to the main thread via another queue. This queue is
protected by a mutex.

However, when the event thread exits, it cleans up after itself and
frees all remaining entries in the queue. This code messed with the
event queue without acquiring the needed mutex and left behind a list
full of stale pointers.

Fix this and protect the freeing with the correct mutex and clear the event
queue afterwards.

Change-Id: Ie49cf6241b76be86d8cebbc931f7226a3f6a14e5
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-23 09:16:41 +02:00
Andy Shaw 1baf293548 Move SnapToDefaultButton from QPlatformDialogHelper to QPlatformTheme
Since QPlatformTheme covers all dialogs whereas QPlatformDialogHelper is
really only for the native dialogs then the SnapToDefaultButton hint is
moved as it has relevance for all dialogs

Task-number: QTBUG-32631

Change-Id: I1dce0bb4abcd4cfd39c4a199a33fc7078176ab4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-23 08:42:35 +02:00
Rafael Roquetto 9de6d1a74f BB10: Do not send deactivate event twice
On BB10, NAVIGATOR_WINDOW_INACTIVE is called before
NAVIGATOR_WINDOW_INVISIBLE, already triggering handleWindowGroupDeactivated()

Change-Id: I7d82c0220fe8dc8e87bfa2b31af6085c7d1d6cee
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-08-22 23:36:40 +02:00
Rafael Roquetto 4994300fe7 Playbook: Fix rendering when thumbnailed/minimized
On Playbook, rendering should happen when the application is thumbnailed,
therefore we need to send a window activated event to resume rendering once
the thumbnail is restored from the minimized state.

Change-Id: I0fa5da483dc101e25f718e52859a66edfe5c66c7
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-08-22 23:36:40 +02:00
Gabriel de Dietrich 68563cdabd Cocoa: Fix memory leak in event dispatcher
We retain each modal NSWindow as long as its modal session is running,
and we should release it every time that modal session ends.

Task-number: QTBUG-32728
Change-Id: Ia30c9c2d15be1350e7150a0d3c2f530a2fe4f38b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-22 19:14:03 +02:00
Gabriel de Dietrich 2af8feee92 Cocoa: Bring back old exposure behavior on Mac OS X 10.6
Task-number: QTBUG-31864
Change-Id: Ife2429b2d6b845e5ccca31a03e66351a3ff5ba4b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-22 19:14:03 +02:00
Frederik Gladhorn 3abecf2ee9 Accessibility for Android
This enables both modes for TalkBack,
explore-by-touch and the normal swiping mode.

It is partially inspired by the BarGraphView example
of the Google/Android Eyes-Free project.

Note that for any accessibility to work you'll need
a device with api level 16 at least.
Using reflection we should be able to dynamically pick up
the classes if we have the high enough api level.

Change-Id: I11b93bead451483782a1711434d45c8f9a35996f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-08-22 18:45:24 +02:00
Frederik Gladhorn 59b6a67b94 Remove rowColumnExtents from QAccessibleTableCellInterface
The API is broken and available in individual functions.
Don't make it more complicated than necessary to implement
the interfaces for new widgets.

Change-Id: Ie408c369ef05b2b8e7ac666b25153d090fcf3aae
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-08-22 18:45:24 +02:00
Richard Moe Gustavsen ce16e70985 iOS: Activate window on touchesEnded instead of touchesBegan
Since we await giving focus to a focus object until a press
release, it also makes sense to await activating a window until
a press release, since they both have to do with focus. By doing
so, the input panel now stays open if the user selects a line edit
in one window when a line edit in another window still has focus. We
also avoid activating a window in case of a touch cancel (e.g as
a result of the user flicking or triggering a gesture).

Change-Id: Ic00c4be69c257fceb10ce2d5a81cb490ea93710f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-08-22 18:45:24 +02:00
Thiago Macieira c374f4441a Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-22 02:04:39 +02:00
Friedemann Kleint 95e880bd9d Windows: Handle Qt::ForeignWindow.
Task-number: QTBUG-33079

Change-Id: Iec2ddfe07b07b3a921098c7147f26aff316bf6e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 23:00:32 +02:00
Friedemann Kleint bc4ce284ad Windows: Generate expose events for layered transient children.
Layered (translucent/non-opaque) windows do not receive WM_PAINT,
expose events need to be generated. Improve
6800728d09 to handle transient
children as well.

Task-number: QTBUG-17548
Change-Id: Id113604512692dfbea1f2b10d0db3068213cf599
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 16:39:55 +02:00
Shawn Rutledge f7ebb8d4c6 QXcbBackingStore: don't crash in flush() if no platformWindow
Task-number: QTBUG-32681
Change-Id: Iec7204985867a8d65cea393ba6ab66d328a5e7b2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-21 16:39:55 +02:00
Eskil Abrahamsen Blomfeldt ecbd3a70e4 Android: Remove EGL_BAD_SURFACE warning on suspension
When suspending the app we would destroy the surface twice,
causing libEGL to output a warning on the second attempt.
We would also destroy the surface before all references were
released which is not 100% nice. We don't need to call the
super class implementation at all, since we are managing
the EGL surface ourselves.

Change-Id: Ie1ab2ea8561d0018b5f16ac8cdf3296313a0a92c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-08-21 16:39:55 +02:00
Andreas Holzammer 5680484476 [QNX]Fix transparencies
It is not guaranteed that buffers are cleared when they
are allocated. So don't use a buffer for the root window,
and clear buffers for the actual content.

Change-Id: I42939baec03fa05968c83bbf2739ab8d1d70c8be
Reviewed-by: Matt Hoosier <matt.hoosier@garmin.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-08-21 16:39:55 +02:00
Friedemann Kleint a4d4e18c31 XCB: Suppress warnings about unhandled client messages.
Introduced by the tray icon refactoring
d8090022f6 among other things.

Task-number: QTBUG-33068
Change-Id: I7c536c68acc2fae39ca30afb401500d0dc8701b1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-21 11:13:56 +02:00
Frederik Gladhorn c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Stephen Kelly 692bee634e Add missing PLUGIN_CLASS_NAME
Change-Id: Ic2d59ac9194d6756c9f978fb1c13baf3fa7009b7
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-08-20 20:09:20 +02:00
Friedemann Kleint eb2ae61cb4 Windows: Add hit test handling for non-client areas.
Suppress resize cursor for fixed size windows.

Task-number: QTBUG-32663
Change-Id: I9579bb13d494fe21e5db7b75d01a3cf1b693c7f6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-19 21:56:12 +02:00
Eskil Abrahamsen Blomfeldt 05ddae12d1 Android: Fix orientation change on Android 4.3
In Android 4.3, we will get a new native window pointer for the
same surface (the old surface has not been destroyed), whereas
before we would get the same pointer, thus hitting the
"sameNativeWindow" branch. This revealed some bugs in the
surfaceChanged code path when the old surface had not been
destroyed. This path is now taken both when there's no old surface
(the app has been suspended in the mean time) and when the
orientation changes.

To handle the second case, we need to make sure:
1. We update the static pointer
2. We update the pointers in the platform windows
3. We don't add a second reference to the static data for
windows
4. We schedule an update of the window size

Task-number: QTBUG-32878
Change-Id: I47257615f9ba820315fc98d7a804e52223f430bf
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-19 16:52:21 +02:00
Jocelyn Turcotte 7495b59dbd xcb: Fix TouchPointPressed being sent multiple times.
XI2 sends events for individual touch points, but QTouchEvent
sends all of them with a stationary state if they didn't change.
If a touch pressed event is received, and the next XI2 event
is about a different touch point, we wouldn't update the state
of the previously pressed touch point.

Change-Id: I1ebcbea1cea54872064ef7710e2aac7b0b41cd70
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-19 14:24:28 +02:00
Shawn Rutledge 6281acaf8f XI2 touch support: must call deviceForId to create the device
After change 4dbf574b7a touch worked
only if XI2_DEBUG is turned on.  That is because it creates the
QTouchDevice and calls QWindowSystemInterface::registerTouchDevice,
which must be done at startup so we can receive events.

Change-Id: I9446d72bc702fbd819bf26bcdc2a3d657180f642
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-16 16:23:17 +02:00
Frederik Gladhorn e727855476 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-16 16:02:19 +02:00
Uli Schlachter ac5c64fccd XCB: Ignore _NET_WM_PING on the root window
With a _NET_WM_PING message, a window manager can check if an
application still works or if it froze. The WM sends such a message to
the application window and the application sends the message back to the
root window.

Since change Ia04268b0 / commit d8090022f "Move the X11 system tray code
from widgets into XCB-plugin.", Qt selects StructureNotifyMask on the
root window. Due to this, we now also receive replies to _NET_WM_PING
and treat them like a _NET_WM_PING request.

This caused an endless loop as soon as any _NET_WM_PING was seen where
Qt would send a _NET_WM_PING to itself and handle it again and again.

Fix this by ignoring _NET_WM_PING messages that are sent to the root
window. According to EWMH, such messages can only be replies to
_NET_WM_PING and GTK does this, too.

Task-number: QTBUG-32957
Change-Id: I1b0aa682f99b17d633baacc14b18b3adca7a1aba
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-16 15:54:30 +02:00
Ryohei Ikegami 592c8bffd6 Add Wacom tablet support for Cocoa
Task-number: QTBUG-25867
Change-Id: I48178b8913224ac8e907d42f57620947df12e930
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-16 05:20:38 +02:00
Sergio Ahumada 26e3de575f Merge branch 'release' into stable
Conflicts:
	src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp

Change-Id: I1a92b0c0dc1f7bad947a54fdd3ea7cfd6a5a7694
2013-08-15 18:32:20 +02:00
J-P Nurmi 751989df5c Replace QWheelEvent::Phase with revised Qt::ScrollPhase
Change-Id: I4d8e7d48497d0d96a297191976c0d99feb67b538
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-15 10:02:36 +02:00
Richard Moe Gustavsen bab29dd76c Cocoa: bugfix mouse wheel + modifier keys not working
To avoid using modifier keys when releasing a two-finger
mouse wheel flick on a trackpad, we listen to event
phases. But for a normal mouse, a separate phase
NSEventPhaseNone is given. Ensure that we still send
modifier keys when that state is reported.

Task-number: QTBUG-32098
Change-Id: Ib840dd661b7842ae49127e5a8d42e3666ae2da4e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-15 08:57:01 +02:00
Ryohei Ikegami 8e13a9792a Change QNSView convertFromEvent: arguemnts to QPointF
Change QNSView convertFromEvent: toWindowPoint: andScreenPoint:
arguments from QPoint to QPointF.

QWindowSystemInterface event handlers already use QPointF and
QPointF is needed for tablet support
(https://codereview.qt-project.org/#change,62740).

Change-Id: I6e5b2f19777fe24ae34e9e85028772e4be0a94f6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-15 03:50:52 +02:00
Daiwei Li 3e4c9cb3d6 Cocoa: Set window title after setting window flags if window has border
A QWindow should keep its title after removing and restoring the
frame, so set it if we are setting window flags that include a frame.

Task-number: QTBUG-32978

Change-Id: I0fe1b651eac05a210b06ec4f7f6fb78f2536834d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-15 01:30:54 +02:00
Gatis Paeglis 1044f23dee Fix QKeyEvent::isAutoRepeat on Mac
Task-number: QTBUG-21500
Change-Id: Ifed85ddcdecd30453207728b0f376baa2abf6e66
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-14 23:23:06 +02:00
Frederik Gladhorn 5c23199d4e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/macx-xcode/Info.plist.app
	mkspecs/macx-xcode/Info.plist.lib
	qmake/doc/qmake.qdocconf
	src/corelib/global/qglobal.h
	tests/auto/other/exceptionsafety/exceptionsafety.pro
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
2013-08-14 09:06:31 +02:00
Gabriel de Dietrich 8c3b31182c Cocoa: Allow to hide menu items in menubar
Task-number: QTBUG-32899

Change-Id: I423ac2d636306303d39e973f19032c9004957095
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-08-13 19:48:15 +02:00
Balazs Domjan 0819c48e1b Fix QDialog position shift bug after resize.
On Linux (XCB), resizing a dialog shifts its position. The fix corrigates
the geometry of the dialog to the right values.

Task-number: QTBUG-32473
Change-Id: I6d38539a3ebc3b95eacc7f13a76f83fc9e4d821c
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-13 16:44:06 +02:00
Simon Hausmann 9b7fc15edf Implement support for global whatsthis on Windows
Task-Number: QTBUG-32835

Change-Id: Ifee10d815ce0037c96eda574ab9e1af67ff6bd78
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-08-13 12:22:54 +02:00
Tor Arne Vestbø 327a87cfe4 iOS: Set PLUGIN_CLASS_NAME for platform plugin
Change-Id: Ic8c5181d753925de0d8cd5fcb5e1347429ff5ba3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-13 01:38:54 +02:00
Jonathan Liu 4a195b020e Do not use QWindowsFileDialogHelper for Windows Server 2003
Windows Server 2003 is based on Windows XP and should use
QWindowsXpFileDialogHelper as it does not support the CLSID-based
IFileDialog interfaces that are available from Windows Vista onwards.

Change-Id: Idd973f9ec4c98d1f2fb7e835de64532edeccfc72
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-11 06:04:13 +02:00
Jan Arve Saether 490bf800e6 Avoid a potential crash in unignoredChildren
This doesn't actually fix the source of the problem, but its harmless.
This was reproduced with tst_qcolumnview and voiceover enabled

Task-number: QTBUG-32440

Change-Id: Iad27884e1ca9194f911271c16908ef358e4b1875
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-09 20:24:29 +02:00
Sergio Ahumada 08d91d4b8e Merge "Merge branch 'release' into stable" into refs/staging/stable 2013-08-09 16:28:34 +02:00
J-P Nurmi 652d51eda6 Cocoa: support QWheelEvent::Phase
The started & ended phases are required for implementing correctly
behaving transient scrollbars (ie. they become and stay visible when
touching the pad with two fingers).

Change-Id: I718d991ba6fd7e949cf9790f3bae285000fce576
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-09 13:39:42 +02:00
Alexey Chernov 071c48a5ff Return EGLNativeWindowType instead of window number in winId()
QEglFSWindow::winId() method was changed to return EGLNativeWindowType
EGL window handle instead of static window number as it recommends in
documentation.

QPlatformWindow documentation reads: "The platform
specific window handle can be retrieved by the winId function." and
also for winId() method itself: "Reimplement in subclasses to return
a handle to the native window".

Task-number: QTBUG-32564
Change-Id: I634c5b4d966b6aebde72518a2c39717d1b39af08
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-08-09 13:38:14 +02:00
Sergio Ahumada 6a56fd3069 Merge branch 'release' into stable
Change-Id: I5e94c4f01564df633c9925561ebb0b553bd31a2e
2013-08-09 12:38:19 +02:00
Martin Gräßlin d916ed12b3 Pass Xcb errors through the native event filter
So far only the xcb plugin is able to handle xcb errors and there is no
way for an application to get access to the errors even if the app is
using xcb directly.

This means Qt is filtering out all xcb errors which are relevant to the
app and at the same time the xcb plugin is getting spammed with errors
it did not cause and which are logged with a qWarning.

By passing the error event through the native event filter an app can
filter out all errors it knows to have caused.

Change-Id: I158deee2e1c71630f2b1d77174f1091532851b3d
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-08-08 15:09:40 +02:00
Fabian Bumberger f5841521a4 QNX: Enable rendering on different displays using OpenGL
Change-Id: Ife9c090cff732aba42a5cbc04640721e8fdde69d
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-08-08 12:55:48 +02:00
Andy Shaw 3e078cf36d Don't release the printer after using it to change a property
The printer should not be released after changing a property on it as it
is still needed by QPrinter elsewhere. It is released as appropriate
automatically already.

Task-number: QTBUG-32831

Change-Id: Idb2d98b25b62f343015a0a0fb3c9a0d506546132
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-08 12:43:35 +02:00
Gatis Paeglis 58a4bf2c99 [Mac] Fix modifier reporting issue in the key events
This issue was introduced when porting key handling code from Qt4 to Qt5.
To conform to the implementation of QKeyEvent::modifiers() we have to invert
modifier state logic before sending them as QKeyEvents.

Task-number: QTBUG-31332
Change-Id: I3bb41169f8ab2a4b0a13a224bb461d2792d3a65f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-08 09:44:12 +02:00
Martin Gräßlin 45ab9d0c33 Export getTimestamp to the native interface
The functionality to get the current x11 timestamp is also needed by
applications which need to interact with the X11 directly. With XCB
it is not possible to inspect the event queue and by that an
application is not able to retrieve the current timestamp using the
property change pattern and waiting for the matching event.

Change-Id: Ie7ba78ecbe509ed3a902c702266917f65bf5ad07
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-08-07 13:49:43 +02:00
Jan Arne Petersen fe375dc3d0 eglfs: Implement nativeResourceForWindow
Add support to request EglDisplay resource for a window. This is
supported in other platform plugins, like kms and xcb and is required by
wayland-egl based QtWayland compositors.

Change-Id: If3f8c625682915c9671e820974e810763c3c8b66
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 15:53:07 +02:00
Jan Arne Petersen 47d27c3a53 eglfs: Implement nativeResourceFunctionForContext
Add support for a get_egl_context NativeResourceForContextFunction to
the eglfs platform plugin.

Change-Id: I155952797f340dd00ab9864852add4b44d841042
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 15:52:52 +02:00
Samuel Rødal 3a0071e286 Added automatic input device discovery to kms plugin.
Similar to what the EGLFS plugin does, to avoid having to explicitly
specify which device to use for keyboard and mouse.

Change-Id: I00502be8c767487490f3fd36fb06d3eb56548ada
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Samuel Rødal 785edaa09d Made EGLFS handle multiple surfaces with more grace.
Prevents crashing when some menu or similar is shown, although the
visual result might not be ideal.

Task-number: QTBUG-29729
Change-Id: Ia840b3ec17f5ef30ee58150bd2f807ca5e72cc12
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Pier Luigi Fiorini 888bfb09da Find primary GPU only
Some systems may have multiple DRM devices attached to a single seat and we are
not guaranteed to pick up the primary GPU. With this flag we can control how
DRM devices are detected and consider only the primary GPU.

This is very useful for the kms plugin or QtCompositors running on kms in order
to use the right DRM device.

Change-Id: I8b91e78f148b25aaa4e40724e39e0ed0918ca100
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Shawn Rutledge c6e32b740c OSX: do not force a plain window to be on the same level as its parent
2af0a778f464980594c36098e4a8ba4448edfd29 the fix for QTBUG-27410
caused this Designer bug.  Doing the automatic level escalation only
for "special" windows and avoiding it for plain Qt::Window type
windows is one way of fixing the Designer problem.

Task-number: QTBUG-31779
Change-Id: I1da5454f31111f36480fac3b53be6d5f0ce40047
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-02 18:20:09 +02:00
Gatis Paeglis b59c257a04 Fix stuck modifier issue in the non-xcb_xkb code path
Since updating the xkb_state throght core events is more
tricky (opposed to the xcb-xkb code path) where we have
to use xkb_state_update_key, we need to make sure that our
local state is in sync with the X server's state.

The local state was getting out of sync if key was pressed
down in a Qt application and released in other X client (by
changing the focus to another window with a mouse, for
example).

Task-number: QTBUG-32660
Change-Id: I662bf5aad3ab0e8591109994e746d85ff61ad6ef
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-02 08:19:59 +02:00
Liang Qi 25fc7a3068 Cocoa: emit currentFontChanged signal in font dialog helper
* changeFont is a delegate method of NSFontManager.
* exec() will not be called in Qt Quick.

Task-number: QTBUG-32450
Change-Id: I05e43ce84d28ff32c88d75bd6ee60653de6ca4f0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-31 23:48:47 +02:00
Sérgio Martins 0ec917123f Fix build with QT_NO_CURSOR.
Just moved applyCursor() and defaultCursor() to a #ifndef block.

Change-Id: I14c21aa509395fb1bd72d389cfc46f0f34ab7649
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 15:04:58 +02:00
Sérgio Martins c707bb4414 Don't run this code on WinCE, the variable will be unused.
Change-Id: Id472e6e18759227943a24aa723963671bdb52164
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 15:04:48 +02:00
Samuli Piippo c837dbecdd eglfs: allow egl native window to be zero
Change the checking for created EGLNativeWindowType so that zero
is a valid value. This is the case e.g, with BeagleBoard, where
widget application cannot be run without this change.

Change-Id: I36c30091e1a5a0598ae3822d0be8dc4362779c0b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 14:42:13 +02:00
Gatis Paeglis 7654f71f80 Fix handling of non-latin1 shortcuts
This patch enables non-latin1 shortcut handling on Qt5/X11.

Task-number: QTBUG-32274
Change-Id: Ia084258b956128ffade8eddfbcb18af334d79a59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-07-31 13:36:24 +02:00
Eskil Abrahamsen Blomfeldt 0bbc32a0cb Android: Fix crash when setting WA_NativeWindow
We don't support native widgets in Android, so we can get into a mess
when people set this widget attribute, since the FB compositor
will assume that all widgets have their own backing store. This adds
a capability flag to the QPlatformIntegration which allows the plugin
to disable the WA_NativeWindow feature.

Task-number: QTBUG-32685
Change-Id: Ic200487da4a297f71ab594cf7c90d1e1d53bacd3
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 12:34:14 +02:00
Eskil Abrahamsen Blomfeldt 87a30db468 eglfs: Fix updates when resizing backing store
We would resize the backing store without resizing the viewport,
which would cause all subsequent blits of the backing store to the
screen to look broken.

Task-number: QTBUG-32146
Change-Id: I65bae051b7cfbbc61fc285e4baa74685d5639569
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 10:44:49 +02:00
Liang Qi 1613ec336d Cocoa: align font dialog helper with the color one
The reference color dialog helper change is
eeffcfbd89.

Change-Id: I35b505cce133adeed91df7c95b21f7c74c55cb53
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-31 10:20:52 +02:00
Shawn Rutledge e54ef7f23b xcb: mouse wheel does not focus a window
The window should react to the wheel event (e.g. scroll content)
but without becoming focused; this is the X11 convention.

Task-number: QTBUG-32517
Change-Id: I7e12425e5a6e1549b7f23dc318612a436c24d14b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 07:33:23 +02:00
Nils Jeisecke cf3e435299 Cocoa: Make sure that resizeEvent is invoked after calling resize
The QWindow::resizeEvent documentation states that resizeEvent
is invoked after the windowing system has acknowledged a
setGeometry() or resize() request.

The Cocoa plugin however did set the platform window geometry
immediately so that the qnsview's updateGeometry returned too
early.

Task-number: QTBUG-32706
Change-Id: I1f359ab368833d174ab6740f4467b0848c290f13
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-30 17:24:15 +02:00
Friedemann Kleint d8090022f6 Move the X11 system tray code from widgets into XCB-plugin.
- Add system tray tracker class to XCB plugin and
  provide functionality via invokable slots
  of the native interface.
- Remove XLib-dependency of widgets/utils.
- Reintroduce tracking of tray window destruction
  and recreation, which was removed in the XLib-code
  when porting it from Qt 4 to Qt 5.

This paves the way for implementing the tray icon
completely in terms of QPlatformSystemTrayIcon at some point
later.

Change-Id: Ia04268b0e2919c05874a3e9548930535332897c7
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-30 15:08:31 +02:00
Friedemann Kleint 88f4baf089 Windows: Clear window under mouse in destruction of platform window.
Task-number: QTBUG-32042

Change-Id: I8aa5df84b7ca6deb47e0c3eff9a6a7d2c4793553
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-30 09:39:30 +02:00
Eskil Abrahamsen Blomfeldt 9eeb1bd4d4 Add workaround for GL on Android emulator
On the Android Emulator, the shaders will be compiled by a desktop
GL driver, since the GL driver in the emulator is just a thin
wrapper. The GL driver does not necessarily support the precision
qualifiers, which can cause applications to break. We detect this
at runtime in the platform plugin and set a workaround flag to

Task-number: QTBUG-32557
Change-Id: Ied00cfe8e804d1f7862697dd379a14f3bed3d980
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-29 17:58:30 +02:00
Friedemann Kleint 71535ad6bc Build offscreen plugin only if freetype is available on Windows.
Task-number: QTBUG-29685

Change-Id: I0d80437d07ad7f9e11343bfa7afbdeb30583f8c5
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-07-29 15:38:51 +02:00
Allan Sandfeld Jensen 9fabb548da EGLFS and MinimalEGL windows are not marked as OpenGL surfaces
Several QOpenGLContext methods fails incorrectly on QWindows from EGL or
MinimalEGL. This is happens because they are incorrectly marked as raster
surfaces instead of OpenGL surfaces.

Change-Id: Ic9b3859915a9049fce442216b01dce89521fa5ee
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-07-26 16:59:48 +02:00
Friedemann Kleint 15b45c608f XCB: Readd support for -name command line argument.
Task-number: QTBUG-27349

Change-Id: I85390942927cd1c54f76fd7ddc0f3487c7205b57
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-25 15:09:51 +02:00
Uli Schlachter ec2aa7d282 xcb: Fix minor leaks in XSettings code
If some of the X11 requests fail, QXcbXSettings::QXcbXSettings() prints a
warning and returns. These error paths all caused memory leaks.

Change-Id: Idfecf03dd412c35552c3bbbebdda9c039aeadc13
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-07-25 11:25:42 +02:00
Sergio Ahumada 509ed01c85 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-07-24 15:09:38 +02:00
Friedemann Kleint 0edf1390ca Windows: Mark window margins as dirty when the theme changes.
Task-number: QTBUG-31523

Change-Id: Ibd8ed4e3fc5b6d1723f94dc32b3bf86b74e71020
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-24 10:55:59 +02:00
Friedemann Kleint dd062f4d52 Bump QPA-API-version.
Changes f5dbc87637 (Use QUrl in QFileDialog API)
and c96a6ab627 (Pass argc, argv to platform
plugin) introduced changes to the plugin API.

Task-number: QTBUG-29396
Change-Id: I46ee22d16f045b69f141dc6c982017586efef662
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-07-23 16:30:06 +02:00
Frederik Gladhorn 084c5b3db7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp

Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
2013-07-23 11:18:11 +02:00
Shawn Rutledge 4dbf574b7a xcb: touchpad support
Relative touch devices tend to provide a moving point for one finger,
then when more points are pressed, the root_x/root_y stay stationary
while the Rel X/Y valuators provide info about the movements around
that point.  Synthesize moving touch points from those so that
gestures become possible.  Behavior is now similar to that on OS X.

Change-Id: I1c65fb04849d19f11c3bf166044f296d95c33da1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-22 13:21:35 +02:00
Shawn Rutledge 29fda24ca8 added maximumTouchPoints to QTouchDevice
This was missing information which the driver can provide.

Change-Id: I2574745635d6fdf608bc5617999aec46d9312c09
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-22 10:07:38 +02:00
Uli Schlachter 3ff441d305 xcb: Don't use Xlib's XBell() function
XBell() just sends a Bell request to the X11 server. This can be done
equally well (and with less ifdefs) through xcb's xcb_bell().

Change-Id: If41d955aa97acfe9e0a8b9fce05c11ebc146ce8e
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-22 08:12:59 +02:00
Friedemann Kleint a0996b8b60 Prevent activation of windows with Qt::WindowDoesNotAcceptFocus.
Task-number: QTBUG-32385
Change-Id: I307e2a3e5157b351663940d5d02fc16b3127b5dd
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-22 08:10:32 +02:00
Friedemann Kleint 81addcc1ed XCB: Set WM_CLASS.
Set the instance name and class name of the application windows.

Task-number: QTBUG-29396

Change-Id: Ia1fb492ab169108c3779deb8964bb731b322dd89
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-18 15:12:37 +02:00
Bjoern Breitmeyer 07bc530250 Better errorhandling for the fontengine on WINCE.
The CE fontengine only supports translations, scaled
Text would only work if its an isometric scale and would
require to create a new font from the old one. Rotations
and more aren't supported at all. The freetype fontengine
for CE supports this, so we give a warning that the font
might be rendered incorrect, but could render correct with
the freetype engine.

Task-number: QTBUG-32189

Change-Id: I3581c3fef8e4ee118c0038a6ccc237e66b583731
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-18 15:07:45 +02:00
Kevin Ottens f5dbc87637 Have QFileDialog use QUrl internally
When using the native dialog and through the helper, we use QUrl in
QFileDialog. It is preparatory work for having QUrl based methods on
QFileDialog interface itself.

Done-with: sean.harmer@kdab.com
Done-with: faure@kde.org

Change-Id: I61e99d498252241f38ec05724702a90ba050c4bb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-18 13:17:41 +02:00
Friedemann Kleint c96a6ab627 Pass argc, argv to the platform plugins.
Allow for parsing of X11-specific arguments like -display,
-geometry. Introduce overload of
QPlatformIntegration::create() with argc and argv
and provide default implementation that calls the old version
(for platforms that do not have argc, argv). Provide default
implementation for the old version returning 0 so that platforms
using the new API compile.
Prototypically implement -display in XCB.

Task-number: QTBUG-29396
Change-Id: I6a0e9271fad6e2d10f11b80393025ae3a3e36623
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-18 13:13:36 +02:00
Friedemann Kleint 183cc501d6 QNX: Handle Qt::WindowDoesNotAcceptFocus correctly.
Discovered while working on:
Task-number: QTBUG-32385

Change-Id: Id1ff31ea6a367983676125810b4f49629233d374
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-07-17 16:08:24 +02:00
Liang Qi c9182bc11b OSX: Disable window restoration for the Mac font panel
because if it is automatically restored it's out of the application's
control, so the user's interaction will be ignored.  Change
I8ce3cd94f5ae81d7877a346743ca4e0e188baa02 did this for normal windows
by default, but the dialog helpers generate windows which aren't
affected by that.

Change-Id: I819d7ab4e51e90783d55cee0676dbc33b38c5b00
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-17 11:36:47 +02:00
Friedemann Kleint 915f4d8c95 API-cleanup: Add QPlatformFontDatabase::registerAliasToFontFamily().
Unexport free function qt_registerAliasToFontFamily() and
Make it a static member of QPlatformFontDatabase instead.

Change-Id: I1df49a8e37a24b3961f92288d67b6f1108a7d520
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-07-16 16:02:51 +02:00
Friedemann Kleint d3859c61bf Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-07-15 15:46:20 +02:00
Tor Arne Vestbø 9f266a0210 iOS: Get rid of QIOSMainWrapperApplicationDelegate
We only control the application delegate in the wrapped case anyways,
so QIOSApplicationDelegate is good enough for our use.

Change-Id: Ib738592dc306c5b6652632b9ae4dab431639a89a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-07-15 12:40:04 +02:00
Frederik Gladhorn 1190863fc0 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I0218a1f08b89f2d56757ab35eec06799d2a1492f
2013-07-15 10:36:59 +02:00
Bernd Weimer ab20b499d8 QNX: Silenced propagateSizeHints warning
On QNX propagateSizeHints is ignored. Default base class implementation
is overridden to silence warning.

Change-Id: I6c2df5e1943fdc1170c772b9bb4feb091726790f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-07-15 10:17:44 +02:00
Friedemann Kleint 49a55be973 Windows: Synthesize expose event for shrinking windows.
Synthesize expose events for all Windows except ANGLE-windows.

Task-number: QTBUG-32121

Change-Id: Ifbff2730ec8f2e8cfe23eeb4022b76a6e432598e
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-15 09:46:23 +02:00
Friedemann Kleint e4484bb15b XCB: Append 0-character to atom name string.
The below loop needs 2 consecutive 0-characters to terminate
properly.

Change-Id: I73e56cadbcd2515d5b0f1b4907316a27a6bbaf0e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-12 19:23:49 +02:00
Allan Sandfeld Jensen e602003f87 DirectFB: Improve mapping of multimedia keys
The play_pause key was mapped incorrectly to direct pause. This one
maps it to togglePlayPause.

The two keys fast-forward and rewind have been mapped to
Key_AudioForward
and Key_AudioRewind, matching XCB and Android mappings.

Change-Id: I481bafab2fdfe1824b49e268e9d0754eef348cbf
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-07-12 09:55:21 +02:00
Friedemann Kleint bf42eacc7f Windows font database: Resolve aliases for extra fonts.
Ensure QFontDataBase::hasFamily() deals with aliases.

Task-number: QTBUG-31689

Change-Id: Ia59bfcb93362ac9343c6d30dab1091a4db482dfa
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-07-11 17:29:39 +02:00
Sergio Ahumada 3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Thiago Macieira eb5749e8d9 Bugfix QDesktopServices on Windows
It was doing tricks with URLs that it shouldn't be doing... including
running QDir::toNativeSeparators on a URL.

Task-number: QTBUG-32311
Change-Id: I5b6f640919956998c00dcf507f931045f21a9e53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-11 10:56:49 +02:00
Gabriel de Dietrich b06304e164 Cocoa: Remove references to CMProfileRef and related APIs
Deprecated since 10.6.

Change-Id: If1398c6cce0f199f9546d17695d47803f4a6fcba
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-07-10 13:49:41 +02:00
Gabriel de Dietrich c92d1d8acd Cocoa color dialog: Make sure hide() exits the modal session
Change-Id: I708011f3a8ce507e6ade98bf99ad0f5d7b160751
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-10 09:19:04 +02:00
Gatis Paeglis b212fc80a7 Resolve modifier mask conflicts on X11
On X11 key codes and modifiers can have many-to-many relationship, i.e.
a key can activate several modifiers, and a modifier may be activated
by several keys. This patch handles these cases, the logic is borrowed from Qt4.

Task-number: QTBUG-31572
Change-Id: Ide4eb890ec723c68afafe0576d8285440a47d7b0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-07-07 11:26:15 +02:00
Aleix Pol 691cb20d95 Add API to let applications integrate with the system fonts
This patch does 2 things mainly:
- Adds a QPlatformTheme font type for fixed fonts. It's important
because some OS provide specific monospaced fonts and we want to let
our applications to use the preferred fonts by default.
- Adds a new method and enum to QFontDatabase that expose the font
types that applications might need, so that they can make the
applications use the specific fonts that the system recommends. This
data was already available within Qt through the QPlatformTheme, but
it was not possible to use this data by Qt users. This new method
exposes such data.

Change-Id: Ic194c1e4bc07a70640672afd82ba756b87606985
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-07-05 17:29:18 +02:00
Allan Sandfeld Jensen ea7da7c241 Key mappings for more remote-control keys
We are missing a few key mappings to have support for remote control
keys supported by Android and DirectFB.

This patch adds the four color keys Red/Green/Yellow/Blue and ChannelUp
and ChannelDown.

Change-Id: I4d859c28e0d61c5362f1212ba1e577a47de86ec1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-07-05 14:10:39 +02:00
Tor Arne Vestbø 28c82a65a4 iOS: Make sure we're deleting framebuffers in the right context
When a QWindow was destroyed, we'd delete its corresponding buffers,
but failed to make the correct EAGLContext current first. This would
result in deleting/invalidating buffers for another window (whatever
window's context was current at the time), and that window would then
seemingly stop rendering anything, and turn black on rotation.

Task-number: QTBUG-32246
Change-Id: I335a8c580203fc01e43da31c5cb6f567614c26fc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-05 11:36:22 +02:00
Shawn Rutledge ce2fe90faa xcb XI2: simplify and generalize tablet detection
We're looking for any tablet which has appropriate valuators, not
just Wacom tablets that have recognizable names. The name recognition
was always brittle and already stopped working, probably because of
changed udev rules or something like that.

Change-Id: Ib3a6dfdd9972b16f08f270e3f0a1aa54d6660c9f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-05 10:21:33 +02:00
Friedemann Kleint 35f79a2c11 Fix crash caused by ~QWindowsWindow flushing the event queue.
Remove call to QWindowSystemInterface::flushWindowSystemEvents()
introduced by 153d613353 .

Task-number: QTBUG-32125

Change-Id: I14aa2772848e04b47deff6218b48eaf69f0bb649
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-04 17:18:44 +02:00
Friedemann Kleint 1cd8ae2115 Show native file dialog on Windows XP Professional x64 Edition.
It claims to be WV_5_2 (WV_2003).

Task-number: QTBUG-32217

Change-Id: I0c277410acc9ac29710a3eee63bec9ced42e2767
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-04 12:54:58 +02:00
Eskil Abrahamsen Blomfeldt f84dc0ff62 Implement system locale for Android
On Android, we would default to C locale always. We need a connection
to Java in order to get the locale, so this has to be done in the
platform plugin rather than the QtCore library. It's enough to
instantiate the QSystemLocale subclass, since this will automatically
register itself as the current system locale.

Task-number: QTBUG-31651
Change-Id: I76f3e30f7dff90e8101cb560cee2b96c9300d9af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-07-04 12:14:03 +02:00
Friedemann Kleint 3168c94577 Add WACOM tablet support for Windows.
Task-number: QTBUG-30008

Change-Id: I3327baecae7c5d1411bcd125411097f36460cde5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-04 00:05:02 +02:00
Friedemann Kleint ac720981d2 XCB: Fix warning about unhandled enumeration values.
Introduced by 438211ec62 .

Change-Id: Ia6765c2a49f13958c70f83ebf79fdaadfdd25ac9
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-04 00:05:02 +02:00
Ivan Komissarov 4634b7516d Remove qWarning() in qt_mac_image_to_cgimage()
Change-Id: I839aa44735910012bf57daa9c8b55c5e6def3cd2
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2013-07-03 21:38:37 +02:00
J-P Nurmi eeffcfbd89 Cocoa: fix shared color panel usage
Task-number: QTBUG-31819
Change-Id: I60162f4c4af8aaae02ba7be11b2793ad29c5e2b5
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-07-03 19:38:55 +02:00
Jan Arve Saether 14721becc3 Do not call QAccessible::child() with a negative index.
Fix assert on Windows:
QFATAL : tst_QAbstractItemView::testChangeEditorState():
ASSERT: "index_ >= 0" in file itemviews.cpp, line 1123

Change-Id: I4f19c68bbe00d9c75768e7125cf3b33bc09a09e5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-07-02 16:33:08 +02:00
Friedemann Kleint 671d607512 Windows: Fix detection of synthesized mouse events for MSVC / 64bit.
For some reason, the enumeration values were signed when using
64bit.

Task-number: QTBUG-31386
Change-Id: I891dbe1a82dc2aefbe13a131c72c01a57f981767
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-02 16:33:08 +02:00
Gabriel de Dietrich 323164f5fb Avoid warnings when fetching file icons without a CGContextRef
This can happen when instantiating a QFileIconProvider and no suitable
graphics context is available (e.g., when only using a QQuickView).

The proper, longer (5.2) term solution would be to have the platform theme
return a QIcon with a NSImage icon provider.

Task-number: QTBUG-31908
Change-Id: Ibfdb51e0a7dd2c33761a463f4eb6619f0aca19f0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-02 16:33:08 +02:00
Gabriel de Dietrich e8c3316ab0 Cocoa: Re-establish platform menu QObject hierarchy
This amends commit 119882714f.

Change-Id: Ifb105596af5b00b04344cb665b3e68292c9187ae
Reviewed-by: Romain Perier <romain.perier@gmail.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-07-02 13:44:10 +02:00
Friedemann Kleint 6177a3026b Windows: Fix the code of the native color dialog.
Note: The code is currently #ifdefed out, it is just there
to be able to compare QColorDialog to the native dialog.

Task-number: QTBUG-32054
Change-Id: I042f6701d1a076480cae56c53ae2d3ad303d37d1
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-07-02 11:05:18 +02:00
Sérgio Martins 6800728d09 Windows: Fix bug where windows stopped painting after a restore.
Usually, a window get un-exposed when minimized, and exposed
after the first WM_Paint event when restored.

With layered windows (translucent+frameless) we never receive
a WM_Paint, so lets send the expose event when the window is
restired.

Task-number: QTBUG-17548

Change-Id: Ib56d8abd91b15f9238d223fe692b19a3d2c930b7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-02 11:05:18 +02:00
Fabian Bumberger 0730e7b023 QNX: Fix invalid screen size when attaching a second display
When attaching a display several SCREEN_EVENT_DISPLAY events might be received.
SCREEN_PROPERTY_SIZE might not be populated in the first event we get, so we wait.

Change-Id: I357108bb347eb92cd773d293bfe7cd462fb7e527
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Petr Nejedlý <pnejedly@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-07-02 01:14:04 +02:00
Gabriel de Dietrich 93e79d865c Cocoa: Let Cocoa pick the right pixmap for menu item icons
Task-number: QTBUG-31477

Change-Id: Iac2d13b68d36c691b60685b69cd390958c35fae3
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-01 14:00:30 +02:00
Gabriel de Dietrich 0aa0675040 Cocoa: Simplify qt_mac_cgimage_to_nsimage code
Since 10.6, NSImage has a sensible contructor for that.

Change-Id: Ie753135ebb37630c1a70c395689bf85d4a4a01de
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-01 14:00:22 +02:00
Frederik Gladhorn cb6fec8515 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I53112e20a65b7d706755b4a22622979f3b91a2c2
2013-06-28 19:18:10 +02:00
Friedemann Kleint 5016615e33 Fix system tray icon on X11.
Observe Qt::BypassWindowManagerHint in XCB and use it for the
tray. Remove the call to XSync(), which sometimes was causing
the window to appear in the wrong place for a short time.

Task-number: QTBUG-31762

Change-Id: I7b4fc5e42b8c8bb9d03b1575be99d6d1c727be37
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-06-28 10:58:53 +02:00
Gabriel de Dietrich c4dfd13f78 Cocoa: Don't update the menubar when popups are shown
Task-number: QTBUG-31532

Change-Id: I86084cb96bd1dd253b3e2e4413c06de053b95b3b
Reviewed-by: Romain Perier <romain.perier@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-06-27 20:50:38 +02:00
Frederik Gladhorn 572200989b Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/features/create_cmake.prf

Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
2013-06-27 13:06:38 +02:00
Frederik Gladhorn 241eca33ed Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-06-27 09:28:04 +02:00
Rafael Roquetto 4a3edb5aec QNX: Fix screen rotation
The behavior introduced by qtdeclarative's 475d1ed4f6a2 mandates that an
expose event follows a geometry change event. The fix for this uncovered a bug
on the raster backing store which caused the rotation to break on QtWidgets.
The problem was rooted on the assumption that the
QQnxRasterBackingStore::flush() method was only called after paints to the
backing store surface, which was discovered to be a false assumption. Flushing
the backing store can occur in other circunstances, which are out of scope on
the context of the QNX plugin.

Task-number: QTBUG-31329
Task-number: QTBUG-31934

Change-Id: Icfc3e85324f5a8745f6b5f189f27f8b763f770c7
(cherry picked from commit 0343b92660)
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Vladimir Minenko <vminenko@rim.com>
2013-06-26 21:41:49 +02:00
Friedemann Kleint b24a115706 Mac/XCB/Windows: Fix initial setting of window icons.
Setting an icon on a QWindow before creating the platform
window did not have any effect.

Task-number: QTBUG-31961
Change-Id: I8e58a3b239c8bc69af58f765e7826337463d2201
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-26 13:54:13 +02:00
Friedemann Kleint fb2a25e756 Windows XP: Fix directory chooser dialog.
Set initial directory and title correctly in native file dialog.

Task-number: QTBUG-31098

Change-Id: I87c4383bdf0b26beda6a075a186d0a951c86f8a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-26 13:54:07 +02:00
Paul Olav Tvete 8f8c29b1c8 Android: Fix initial window size for raster backend
We forgot to set the ShowIsFullScreen property for the raster
engine case. OpenGL windows already did the right thing, since
the GL backend is based on eglFS. The iOS backend also has
this logic.

Task-number: QTBUG-31984
Change-Id: I1cf5df32d79f441768126f00632107a7971eb5ad
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-06-26 12:36:17 +02:00
Rafael Roquetto 7e33ec97e3 BlackBerry: fix delayed root window posting on OpenGL
The delayed root window posting introduced by
77a06e7e6c broke the OpenGL support. In that patch, the posting of
the root window is trigerred by QQnxRasterRasterBackingStore's call to
QQnxWindow::post(), that obviously does not happen when OpenGL is enabled,
therefore requiring the OpenGL context to explicitly post() the root window.

Task-number: QTBUG-31934

Change-Id: Ifd302c1dde612a03b79c778ec4586aa70f88260d
(cherry picked from commit 6a9333841d)
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-06-26 12:04:07 +02:00
Shawn Rutledge e3cf87bb75 Mac OSX: get the correct key code when the control key is pressed
The control key results in modifiers having Qt::MetaModifier, and then
the correct character is found in charactersIgnoringModifiers.  The
rest of the time, [nsevent characters] seems to be correct.  If we
use charactersIgnoringModifiers too much of the time, then the keycode
will be wrong in some cases even though typing is still possible.

Task-number: QTBUG-29005
Task-number: QTBUG-31811
Task-number: QTBUG-31977
Change-Id: Ib23b89f03bc9a61fe6d177320fa603c05649e979
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-06-26 11:45:04 +02:00
Frederik Gladhorn 1867ad741a Merge remote-tracking branch 'origin/release' into stable
Change-Id: I4c0ae2ac1c10d4d50c03625c802d981b7850ed6f
2013-06-25 23:25:35 +02:00
Richard Moe Gustavsen af7c0af561 iOS: add support for new style hint: SetFocusOnTouchRelease
Change-Id: I3ec2e2397d76f750f3263e67745aff082d253d15
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 15:11:07 +02:00
Richard Moe Gustavsen a3b5947d36 iOS: activate window when input panel opens
When a window is active in Qt, it means that is has keyboard
focus. And on iOS, we only want a window to be rendered with
keyboard focus when the input panel is open. Therefore we
choose to call QWindowSystemInterface::handleWindowActivated()
as a response to the input panel opening or closing, rather than
from QPlatformWindow::requestActivateWindow(). And becoming or
resigning first responder is that same as showing or hiding
the input panel.

Change-Id: I33b1bad769bec1fdd7c6ae4119b4b445da2f930f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 15:10:50 +02:00
Richard Moe Gustavsen 3b2ef66a98 iOS: post the code that closes the input panel
When the user is tranferring input focus between line edits
(or similar controls), the edit that lost focus will close
the input panel, just to see that the input that gained
focus will open it again. This will cause the input panel
to "jump", and can also trigger other input panel related
code/signals unnecessary.

Change-Id: Iac0a103e8d2f0f7cdcc04b8ec5b10e07587d1ad6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 15:10:44 +02:00
Richard Moe Gustavsen 5656e6969f iOS: add support for Qt::ApplicationStates
Change-Id: I39858fe835c131d5c681db535f2ec9308e2f8223
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-25 15:10:39 +02:00
Frederik Gladhorn 851fae6dbe Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-06-25 14:31:00 +02:00
Frederik Gladhorn 5e4627fb85 Mac Accessibility: unify child functions
Both ways of getting the children are the same for
nsview and qcocoaaccessibleelement.
Factor out a function.

Change-Id: I4be091c6acde0de519a358f879c24eae04ec4c8d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-06-24 22:48:42 +02:00
Frederik Gladhorn 9d35442a6e Fix typo QCocoaAccessibility
Change-Id: Ib3fe4e30097af9c5c577757594196710c0998184
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-06-23 20:41:56 +02:00
Morten Johan Sørvig b87af6b5e0 Remove NSPICTPboardType from pasteboard types.
NSPICTPboardType is deprecated. Mac OS will translate
pasted images of that type to a different image format.

Change-Id: Id7a68509615816a852abf1c11a70f0f0c862f0f2
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-23 05:51:00 +02:00
Frederik Gladhorn e02c6dd1d3 Mac Accessibility: skip invisible children
Change-Id: I6c3da526ecef60447a658b6b5501282729e9c6f5
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-06-21 17:42:09 +02:00
Jørgen Lind ad43d9a097 Fix missing focus events for mapped child windows
Its a bit brutal

Task-number: QTBUG-31776

Change-Id: I2d8b530646d1e2b2ba86f0e82d76f928c9a2bb11
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-06-21 09:26:41 +02:00
Frederik Gladhorn 6213b81457 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
2013-06-20 16:45:12 +02:00
Frederik Gladhorn 533820320c Merge remote-tracking branch 'origin/release' into stable
Change-Id: I94bb158562ae6b80a87b40139d7302ea7b9b9aa8
2013-06-20 16:13:38 +02:00