Commit Graph

2339 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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