Commit Graph

4460 Commits (a47cd2cc82ea69b0cb7eab5b4cd11a4838d538d1)

Author SHA1 Message Date
Paul Olav Tvete 0bd936e7f3 Compile fix for QT_DEBUG_ANDROID_IM_PROTOCOL
Change-Id: I45d1c1541f8c758995c988f52c5fa8bd4fa99177
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-06-16 12:14:09 +00:00
Paul Olav Tvete cef33870e4 Workaround for Google Keyboard strangeness
When deleting selected text, Google Keyboard will call
deleteSurroundingText() with a negative beforeLength. This does
not make any sense, and not all our controls are able to handle
the resulting input method events.

This patch interprets a negative beforeLength as a positive
afterLength. This works with the cases I have seen so far, but
since the keyboard is not following the specification, there
may be more weirdness later.

Task-number: QTBUG-46637
Change-Id: I410832417f6fb21139c338355e8fcfa57b9e544c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-06-16 12:13:58 +00:00
Laszlo Agocs fb8b3e1bee Fix GLX backend in static builds
Do not attempt to resolve dynamically in static builds. This is not
wrong, but if the GL library is statically linked just like the rest
of Qt, it won't work. Therefore just call the function directly in static
builds, it should be no problem on modern systems.

Task-number: QTBUG-46499
Change-Id: I35fd7c3b5b180d753becbb57377b27dd1a8747ad
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-06-16 12:04:35 +00:00
Alexander Volkov 1d9a6d0859 xcb: Set _NET_WM_WINDOW_TYPE from a single place
Merge QXcbWindow::setNetWmWindowFlags(), which was called from
QXcbWindow::setWindowFlags(), into QXcbWindow::setWmWindowType().
Now setWindowFlags() can't override window type set by
QXcbWindowFunctions::setWmWindowType().

Also reorder _NET_WM_WINDOW_TYPE atoms in QXcbWindow::setWmWindowType()
as it was in Qt 4.

Change-Id: Id1752d78f91caf04e9d16bb1ac40ed180597df7b
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-06-13 08:45:11 +00:00
Richard Moe Gustavsen 827e195f17 OSX: check if we have a native drag before accessing it
We used to check if [sender draggingSource] != nil to determine
if the current drag was started by the application itself or
somewhere else. While this is correct use of the API, the problem
is that a drag can also be started by UIKit if e.g dragging the
file icon in the titlebar. And in that case, Qt has no no
native drag data. Since we didn't take this usecase into account, we
tried to access the data anyway, which led to a crash.

This patch will instead check if we have native drag data directly
before trying to access it, which will also cover the
usecase mentioned above.

Task-number: QTBUG-46598
Change-Id: Ic91b86f658670b895d90a1533246ba24a00dde41
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-06-11 11:46:00 +00:00
Richard Moe Gustavsen 45edf00fa8 iOS: handle loading assets with different format than jpg
The current implementation assumed that the image format
of the file loaded would be jpg. This has proven not to be
correct, e.g sometimes the format is png.

This patch will change how the image url is reconstructed so
we doesn't loose/hard code the format.

Change-Id: I22d8ca0108e52d3670c2601f0bb9255406b896cf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-06-10 10:42:31 +00:00
Kai Uwe Broulik b38615c7e4 Don't manually delete QPlatformScreen
Change-Id: Ic0cdb08c948a0fd9a4da2d76fe321e72e1c478d5
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-06-09 09:14:30 +00:00
Christian Strømme 5ef662f1af Android: Delay initialization of Accessibility.
The accessibility class was created and activated in onCreate(), which
meant we where trying to activate accessibility before the platform
plugin was properly initialized.
With this change we will also activate, or deactivate, accessibility in
Qt whenever the state is changed by Android, compared to doing it at
start-up only.

Task-number: QTBUG-46355
Change-Id: I5cbae125df43f7694d4464d5054e6cfec4626e26
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-06-09 09:06:39 +00:00
Thiago Macieira 861cbef49f Remove useless truncation to the size the string already has
Caused by the refactor in 05351b0cde.

The count was probably wrong in the creation of the QKeyEvent, so this
commit keeps it wrong.

Change-Id: I049a653beeb5454c9539ffff13e573bba826e927
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2015-06-08 13:23:51 +00:00
Alexander Volkov 5ca4cab712 xcb: Ignore emulated pointer events
X server sends emulated XI_Motion events before each touch sequence.
Filter them out to avoid a mess with mouse events synthesized in
QGuiApplication.

Change-Id: Ic919c86b41e2467a594de7c903cc0f3fc88a6804
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-06-08 12:59:10 +00:00
Alexander Volkov e098b93488 xcb: Fix getting the window types from the property of QWindow
wm_window_type_property_id is a dynamic property, so we should
check that it is set by using QObject::dynamicPropertyNames()
instead of QMetaObject::indexOfProperty().

Change-Id: Ic7f3408a0d028f349538e0538c40c4b58360f7df
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-06-08 12:58:56 +00:00
Oswald Buddenhagen d32f47b703 fix usage of wince scope
Fix style issues along the way.

Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-06-05 10:29:10 +00:00
Morten Johan Sørvig 50cd28b31d Cocoa: Remove ToolTip windows from popup stack
Match the cases for the adding logic.

Change-Id: I61f49975b4cfcf2acf26b31b521cbc9b96f9d150
Task-number: QTBUG-46447
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-06-05 10:02:30 +00:00
Timur Pocheptsov 4ee7bfaff4 QNSImageView - remove observer before dealloc
It can happen that NSMenuDidEndTrackingNotification comes after our imageCell
QNSImageView was deallocated (for example, mouse button is not released yet
when dealloc called). Remove soon-to-be-deallocated observer.

Change-Id: Ib155cc5f0b884c6b1fed0f986d12599096b582c6
Task-number: QTBUG-46425
Reviewed-by: Thierry Bastian <thierryb@filewave.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-06-05 04:41:15 +00:00
Tim Blechmann 536c5df13f Cocoa: QCocoaApplicationDelegate - correctly install cleanup handler
+ (id)allocWithZone:(NSZone *)zone returns before the cleanup handler is
installed. this causes the QCocoaApplicationDelegate not to be cleaned up
by the garbage collector

Change-Id: Ic4862b96228539f3da857955f08157402974a104
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-06-04 07:56:48 +00:00
Allan Sandfeld Jensen 769cc4d878 Make logicalDpi consistent in relation to device pixel ratio
In GNOME/Unity XCB, logical DPI is scaled by device pixel ratio, and on
Macs logical DPI is constant but pixel ratio is based on physical DPI,
making logical DPI effectively physical DPI divided by pixel ratio.

This patch ensure the same logic is used for other XCB desktops.

Change-Id: I60f24618cd49f6b34a6ff1eff317883d191d3491
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-06-04 04:49:45 +00:00
Alexander Volkov 015bc9d7ce xcb: Track touch points on a per device basis
Until now there was no connection between the tracked touch points and
the touch device. So the touch point for one device could be updated
by the touch event from another device.

Change-Id: I09fcf03a171cc361c6b5b4995758aa53d29ff414
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-06-03 14:05:11 +00:00
Liang Qi 754efa57d8 Merge "Merge remote-tracking branch 'origin/5.5.0' into 5.5" into refs/staging/5.5 2015-06-02 23:39:22 +00:00
Sérgio Martins f44a59f390 Don't assign iterator to const_iterator
It should also be possible to use QT_STRICT_ITERATORS in Qt's own code base

Change-Id: I0914db480d4d2b06e71e3a2588163efdd3ff6d27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-02 19:41:16 +00:00
Liang Qi 166c2499d9 Merge remote-tracking branch 'origin/5.5.0' into 5.5
Change-Id: I060b0e10e55487a4a4a101f77ad7c8dc8cf0f553
2015-06-02 09:44:03 +02:00
Pier Luigi Fiorini 11512d6a2c eglfs_kms: Virtual desktop
Now we can choose to use separate screens or virtual desktop.

With virtual desktop the geometry of all screens is taken
into account so that the input plugin do not clamp global
pointer coordinates to the first screen anymore, we also
create only one hardware cursor that can now freely move
on all the screens.

Virtual desktop is enabled by default, but the old default
behavior can be restored by setting separateScreens to true.

Change-Id: I78dbf9e8d3dd44f68d33350dc8fc3727bf8a26fe
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-06-02 07:37:51 +00:00
Morten Johan Sørvig f7047d52da Cocoa: add QT_MAC_USE_NSWINDOW env. variable
When enabled, all QWindows will be backed by a NSWindow.
This is unlike the default where only top-level
QWindows get a NSWindow.

The QWindow still has (Q)NSView as the NSWindow content
view. The return value of the winId functions are
still the NSView and is not affected by this switch.

Change-Id: I131b89af04c09451a6e7515d1da3f7498f53979a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2015-06-02 04:44:28 +00:00
Jani Heikkinen 7bc9310a22 Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5.0 2015-06-02 04:20:54 +00:00
Liang Qi fcfd31c9fd Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/global/qglobal.h

Change-Id: I2c0f7544bf194f2d0f59218fd583c822901487b0
2015-06-01 17:46:58 +02:00
Timur Pocheptsov ecb25dac68 QCocoaMenu: return YES if we have a shortcut for a pseudo-first responder
When running a modal session with NSOpenPanel (QFileDialog), our menu delegate
should not touch qApp->focusObject, since it's not what actually has focus
inside NSOpenPanel (will be some native view). Return YES instead.

Task-number: QTBUG-17291
Change-Id: I94f3281237fb25495d317b02310bf9d77b21d2ba
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-06-01 07:02:26 +00:00
Laszlo Agocs 53d289ec4c xcb: Use XIGrabDevice instead of xcb_grab_pointer with XI 2.2
Switch to using the pointer events from XI2 when touch is available (i.e.
version is >= 2.2). This allows us to select and grab the button and motion
events together with the touch ones. This prevents the issue of not getting
touch events when grabbing via the plain xcb functions.

To prevent touch sequences from being replayed after ungrabbing (for example after
dismissing a popup that caused a grab), we try to accept touches via XIAllowTouchEvents.
Unfortunately this leads to a deadlock and therefore we can only do it when we know
we have a new enough libXi. This is a configure time check which is not ideal since
the system on which apps run can have a newer libXi than the machine that did the Qt
build, but seems like the best we can do.

The environment variable QT_XCB_NO_XI2_MOUSE can be set to 1 in order to prevent
processing mouse events through XInput. This restores the old behavior with broken
grabbing.

[ChangeLog][QtGui] Pointer event delivery on X11 is now done via XInput 2.2+ when available.

Done-with: Michal Klocek <michal.klocek@theqtcompany.com>
Done-with: Alexander Volkov <a.volkov@rusbitech.ru>
Task-number: QTBUG-43525
Task-number: QTBUG-45054
Task-number: QTBUG-30417
Change-Id: I7cb2002b31bef4cd527aa427549dcf2d5467968e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-06-01 06:34:22 +00:00
Liang Qi 0c5fbd397c Merge "Merge remote-tracking branch 'origin/5.4.2' into 5.4" into refs/staging/5.4 2015-05-29 14:17:21 +00:00
Lorn Potter 386aca1ba4 Fix no bearermanagement build
As pointed out in the bug, it also fixes API use when configured
with no bearermanagement.

Task-number: QTBUG-46239
Change-Id: Ief8df85ad6acf61e8d5bb3eed54e7d6ecb84c1a0
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-05-29 06:35:08 +00:00
Friedemann Kleint 0a7fcfd612 Windows: Fix font metrics of Vista style wizards.
QVistaHelper::drawTitleBar() used the font returned by
QApplication::font("QMdiSubWindowTitleBar")
(typically "MS Shell Dlg 2",16) to calculate the
bounding rectangle of the title text. However, if the window
is a toplevel QVistaHelper::drawTitleText() uses the theme font
obtained for WIZ_TMT_CAPTIONFONT (typically "Segoe UI",11.25)
to draw the title (since it is a window title). This causes the
font to be cropped when changing the application font or spurious
black rectangles to occur.

Fix this by exposing QWindowsFontDatabase::LOGFONT_to_QFont() via
QWindowsNativeInterface, and creating a QFont from the LOGFONT
obtained for WIZ_TMT_CAPTIONFONT and using that for the
bounding rectangle in the case of toplevel windows.

Split up the HFONT QVistaHelper::getCaptionFont(HANDLE hTheme)
into static LOGFONT getCaptionLogFont(HANDLE hTheme) and use
that to obtain the HFONT in drawTitleText() or QFont in
static QFont getCaptionQFont(), respectively.

Task-number: QTBUG-46360
Change-Id: I9069b403f7f948b6738eec452cb7584be45b8a29
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-29 05:00:14 +00:00
Laszlo Agocs a47dbb010f windows: Use EGL extensions as they ought to be used
We take some shortcuts still because we know that with ANGLE the header
with the extension constants is always available. A proper implementation
would not rely on the constants being available and would dynamically
check for the extension and would take care of defining the constants if
not available. However, just getting the extension list to check if the
functions needed to get the display are available is already a chicken-egg
problem so we won't go there.

Using eglGetProcAddress properly solves the issues with static builds too
since this always works.

Task-number: QTBUG-46284
Change-Id: Iff23669ebacaffa0c5f76fd2c928af689307874f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Gunnar Roth
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-05-28 21:09:44 +00:00
Caner Altinbasak 5f2e4d3116 Fix for eglfs context sharing problem in qtwebengine widget
EGLFS backend does not use global sharing context. WebEngineWidgets was
failing to access textures created by WebEngineChromium and textures
were ending up as black rectangles.

This fix initialises window surface context with shared context and
fixes the bug.

Change-Id: I97189c06ee593ba55f353f44c23233175ebd3cba
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-05-28 07:18:07 +00:00
Marko Kangas dd02c1eb38 Add support to disable close button from the tool window in Cocoa.
Fixed regression from Qt4 that close button could't be disabled
from the tool window. With this patch buttons are hidden before
using button hints like it's on Windows.

Change-Id: I00f03ff9528ccae3b1136312404452b9415953b4
Task-number: QTBUG-45971
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-05-27 11:34:10 +00:00
Friedemann Kleint a0e5210d8b Windows: Clean Qt::WindowFullscreenButtonHint in fixTopLevelWindowFlags().
Do the correction of top level window flags also in case
Qt::Window|Qt::WindowFullscreenButtonHint is passed,
since it is not supported by the platform anyways.

Task-number: QTBUG-31111
Change-Id: If035d7086e48174873b6b91acf90f730ea40b5a8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-05-26 11:00:10 +00:00
Alexander Volkov d0b1c646b4 xcb: Properly calculate the size of the touch rect
ABS_MT_TOUCH_MAJOR is given in surface units rather than in finger units.
Also it's not the width of the touch rect but the length of the major axis
of the contact. Currently we don't support the orientation of touch rects,
so report square rects with side length of ABS_MT_TOUCH_MAJOR.

Change-Id: I16c861f30128438ec4a1cae983700f8da4b7b4b7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-05-23 11:28:06 +00:00
Friedemann Kleint 4476966e04 Direct2D: Fix MSVC2015 warnings.
qwindowsdirect2dpaintengine.cpp(365): warning C4838: conversion from 'const qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(928): warning C4838: conversion from 'const qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(928): warning C4838: conversion from 'int' to 'UINT32' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(1398): warning C4838: conversion from 'qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(1426): warning C4838: conversion from 'double' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dbitmap.cpp(78): warning C4838: conversion from 'int' to 'UINT32' requires a narrowing conversion
qwindowsdirect2dwindow.cpp(166): warning C4838: conversion from 'double' to 'BYTE' requires a narrowing conversion

Change-Id: I6992260ed2696fa4c47c1c0dd666f448f115879a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-23 08:58:58 +00:00
Timur Pocheptsov 79ad3de7bf QCoreWlanEngine - null the pointer
QCoreWlanEngine is using a global variable but fails to reset it to nil when deleted,
thus re-creating this WLAN manager we use a dangling pointer (found in
qnetworkconfigurationmanagerqappless). Since our API allows to (re)create object(s) of
these class, the pointer must be set to nil after -release call.
Ideally, of course, this class has to be re-factored.

Change-Id: I08662f55dc6cd2ceb0e0cad2574ee3dee6b8e3fd
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-05-22 14:47:56 +00:00
Jan Arve Saether 11838622e5 Fix compile error with VS 2015
Change-Id: Ib3b61de27feccb980e5efdf02f0372602d7ffb5a
Task-number: QTBUG-45961
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-05-22 14:17:35 +00:00
Jani Heikkinen fc78456fba Updated WinRT license headers to use LGPLv3 instead of LGPLv21
From 5.5.0 -> WinRT port is licensed with LGPLv3, see
http://blog.qt.io/blog/2015/04/29/windows-10-support-in-qt/

Change-Id: I7e42564276af3fdbd0d4c61e2736610fa698b11c
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-05-20 18:12:14 +00:00
Paul Olav Tvete 938f9fc0f8 Workaround for Samsung keyboard bug
Return null string instead of empty string when the selection is
empty. It looks like Samsung just tests for selection == null when
doing backspace.

Task-number: QTBUG-45785
Change-Id: Iaa006a8ffe52b2704c7348646dde9ca4e1f78c5c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-05-20 10:10:34 +00:00
Paul Olav Tvete e2102752ba Workaround for Samsung keyboard bug
Return null string instead of empty string when the selection is
empty. It looks like Samsung just tests for selection == null when
doing backspace.

Task-number: QTBUG-45785
Change-Id: Id26ce707130777fcd0ab1a4cff08367bb2810f2f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-05-20 07:42:56 +00:00
Joerg Bornemann 298a60d958 WinRT: fix namespaced build
Change-Id: I0505523a5524995e374dc8f005f101d0cea8b01e
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-16 19:41:13 +00:00
Alexander Volkov 7d3f353a5b xcb: Fix FP1616 to double conversion
We should divide the fractional part of the FP1616 value by 0x10000
instead of 0xFFFF, otherwise 1.FFFF will be converted to 2.0.
And right-shifting the integer part by 16 is equal to dividing it
by 0x10000. So just divide the whole FP1616 value by 0x10000.

Change-Id: Ia89a274b81be9cf502e1f311f696a610a7f37d7f
Task-number: QTBUG-45378
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-05-14 16:33:48 +00:00
Richard Moe Gustavsen 31dfdb49b4 iOS: remove 'truncation from double to float' compiler warning
Change-Id: I0b4b1f062180cfe09ceb275484c39afeaaa90cac
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-13 13:00:50 +00:00
Friedemann Kleint 4201d85cde QPA plugins: Use _iid macros instead of strings in Q_PLUGIN_METADATA.
This makes it easier to change the version numbers by changing
the macros in QtGui.

Task-number: QTBUG-46009
Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-05-13 12:41:09 +00:00
Morten Johan Sørvig 7ffcf328c7 Remove QNSView from superview in ~QCocoaWindow()
A QNSView without a corresponding live QCocoaWindow
object is not in a valid state. Previously we would
call removeFromSuperview for child QWindows to avoid
having Cocoa send messages to the now invalid QNSView.

Do this for QWindows embedded in native Cocoa
hierarchies as well.

Change-Id: I49c6daef8ed061b3f40138fe9b4ce6be190f2fd0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2015-05-13 11:42:53 +00:00
Timur Pocheptsov 21e6c7ae47 Cocoa integration - implement Qt::WindowModal file dialogs
Previously, for Qt::WindowModal dialogs  we were creating modal sheet with beginSheetModalForWindow:
and later (from exec) calling -runModal, essentially making a window modal dialog into (now) application
modal sheet, which is not right- it's centered relative to desktop and the jump from window modal sheet's
position (centered relative to a window) to application modal was quite visible.
Now, instead of [panel runModal] (== [NSApp runModalForWindow:panel])
we call [NSApp runModalForWindow:theRequiredWindow].

Change-Id: I793dc72c7d1fe96497bb35754f4d0eac9a5e00e5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-05-13 11:18:21 +00:00
Ulf Hermann 2ca1253b13 Cocoa: Upgrade default surface format to include an alpha channel
The default surface format on OS X is changed to RGBA since this
is most performant. You can request a different surface format to
change this. You can not request the default format without alpha
channel, though.

Change-Id: I4f44d0abe01515c98ba699c76a0dd5e37b873766
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-05-13 09:04:33 +00:00
Kati Kankaanpaa d66de0f51b Fix compile error in XCB when XInput version < 2.2
Add version guards to prevent compiler error:
'XITouchClass' was not declared in this scope
in systems having XInput version < 2.2.

Change-Id: Ib1308f29ef97288eb994ab8bdd668199ca2ee1d7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-05-12 21:03:09 +00:00
Laszlo Agocs 49107dd53b cocoa: Do not access the integration instance when shutting down
Task-number: QTBUG-46016
Change-Id: Icb7f0c73d5fe944538e2b9abf50c2532037e932f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-05-12 11:53:05 +00:00
Laszlo Agocs 62f24f04bf xcb: Skip EGL integration with -no-opengl
When EGL is autodetected but -no-opengl is specified the backend
must be skipped, just like the GLX one.

Task-number: QTBUG-44998
Change-Id: I1ccbaf540f3777a1fc39aaf12bded4febf20faa0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-12 08:58:32 +00:00
Richard Moe Gustavsen 6eaee855c7 ios: change file engine caching logic for loading assets
The current caching strategy had a flaw in that it tried
to lazy-lock the mutex only if g_currentAssetData was non-zero.
For this to be somewhat reliable, g_currentAssetData would have
to be volatile. But that would still not be enough since
thread-unaware code optimizations might also happen on the CPU level.

Instead of complicating the current logic more, change it to
only do caching per thread. Since QThreadStorage will take ownership
of its data, we can't let it store a pointer to QIOSAssetData directly
since we need to control the life time of QIOSAssetData using deleteLater.

Change-Id: I2c3ffb3257ec2bdec8be71a3d63f666ab33b5277
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-10 18:15:42 +00:00
Allan Sandfeld Jensen 1fce111809 Merge remote-tracking branch 'origin/5.4' into merge5.5
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/io/qnoncontiguousbytedevice_p.h
	src/gui/image/qjpeghandler.cpp
	src/network/access/qhttpthreaddelegate_p.h
	tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
	tests/auto/widgets/widgets/qmenubar/BLACKLIST

Change-Id: I01de8c1c28efcedfd7953d05025f54802dc08ab3
2015-05-08 13:26:44 +02:00
Andrew Knight 00a341daa7 winrt: Use ANGLE sub-buffer swap on Windows Phone
This allows the plugin to communicate the swap region to ANGLE and avoid
glitches when the orientation changes.

Task-number: QTBUG-44333
Change-Id: I40240cbcb3aaec92dbf4a82f4957965e92b9c3da
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-08 02:33:58 +00:00
Laszlo Agocs e46b6db986 ios: Add support for QOpenGLWidget and QQuickWidget
The global shared context is now always enabled on iOS. This means that
contexts used by QOpenGLWindow/Widget and QQuickWindow/Widget and the
iOS backingstore will share with each other.

[ChangeLog][QtGui] QOpenGLWidget and QQuickWidget are now supported on iOS.

Task-number: QTBUG-40034
Change-Id: Ibfb99ffcb18f8f8d263662fbf237bc348fc730ee
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-07 07:13:04 +00:00
Richard Moe Gustavsen 66bd144cf1 ios: implement Qt::WindowTransparentForInput
If the flag is set, report to UIKit that it should
continue searching for the touch target by returning
'NO' from [UIView pointInside:].

Change-Id: I723f64fd855284fa60d0be18b2535dfa61f31381
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:23 +00:00
Richard Moe Gustavsen 63a46568bf ios: don't autoactivate if _q_showWithoutActivating
Widgets can have the attribute Qt::WA_ShowWithoutActivating
set, which is forwarded to QWindow as a property
(_q_showWithoutActivating). Both The cocoa plugin and
the windows plugin check for this property before
activating a window upon setVisible, so lets do the
same for the iOS plugin.

Note that this is not the same as shouldAutoActivate, since
the window should gain focus like normal if the user
taps on it.

Change-Id: Ie6c95d4044906d97f0a03d27009a23d462c6ca34
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:14 +00:00
Richard Moe Gustavsen 41492b8b68 ios: don't accept first responder if Qt::WindowDoesNotAcceptFocus
Change-Id: I01801648a1971444e0727e1bf0790cb3a0d0aad5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:47:10 +00:00
Richard Moe Gustavsen 856debeec1 ios: factor out authorization check
Factor out the check since it's needed both
when loading assets and when creating an entry list.

Note that the file flags returned from the file engine
will report if the asset is not readable due to
authorization status, so we don't need to check this
again when trying to load.

Change-Id: I77ebbc370f0a7a6020ed484e53ece32bc7fa51bd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:58 +00:00
Richard Moe Gustavsen 8628dd7158 ios: add support for fetching entry list in QIOSFileEngineAssetsLibrary
This patch will implement support for listing all available
pictures on the device by e.g doing:

QDir dir(QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last());
QStringList list = dir.entryList();

Change-Id: I52a07ba48e074bc6e509f2ed3afc3dfea17abc5d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:51 +00:00
Richard Moe Gustavsen c4054ab1b7 ios: add fallback in QIOSFileEngineAssetsLibrary for loading assets from ALAssetsGroupPhotoStream
[ALAssetsLibrary assetForUrl:] will not load assets coming from ALAssetsGroupPhotoStream. Such
assets can be stored in the cloud and might need to be downloaded first. Unfortunately, forcing
that to happen is hidden behind private APIs ([ALAsset requestDefaultRepresentation]). So if
the user through QIOSFileDialog opens the photo stream folder and chooses a
photo inside it, QIOSFileEngineAssetsLibrary will fail loading it.

This patch implements a work-around that basically asks ALAssetLibrary to enumerate all assets
in the photo library, and stop once we find an asset with the correct url. At that point we also
have a pointer to a ALAsset that can be used for loading. This is off course a slow way of loading
an asset, but at least better than not being able to load it at all.

Change-Id: Ie50344974f043f909ee94fa12e7eb4a40a666c7f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:45 +00:00
Richard Moe Gustavsen 1665e0d105 ios: add helper class for enumerating all available assets
Add support for enumerating all available assets on the device.

Trailing patches will use the class to fetch a list of all available
assets for directory listing, and to search for assets that cannot be
loaded by [ALAssetsLibrary assetForURL:].

Change-Id: I319721b536b14424fc8f54f683513aa7ca64e7f0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 19:46:39 +00:00
Richard Moe Gustavsen 762d493990 cocoa: ensure app don't crash when receiving drag from other app
Change 939f21be53 introduced a crash when dragging data from
a 3rd party app into the app. Basically the current code assumed
that we always have QCocoaIntegration::instance()->drag()->currentDrag()
but this seems to only be the case if the drag was started by the
app itself.

The crash was found by testing the fridgemagnets example. Just
drag text from other app into the example to see it crash.

Also, refactored the cursor code into a separate method
to simplify code reading.

Change-Id: Ica611a4452a0dd02e01451111aeda14c879f8f1b
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-05-06 10:44:14 +00:00
Laszlo Agocs 4ee087d0ba xcb: Fix -no-opengl builds
The GLX and EGL integrations are skipped correctly but the base class still
contained createPlatformOpenGLContext() with OpenGL-specific types.

Task-number: QTBUG-44998
Change-Id: I727ded7ca8589b163fc1271709dd718572b51c3e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-05-06 10:39:10 +00:00
Richard Moe Gustavsen 4a4faedc3d ios: report correct file flags for assets 'directory'
If the asset url indicates that this file engine points
to the asset folder, report the file as a directory.
Also, if the app is authorized to access assets, report
that the directory has read access.

Change-Id: Ic8f656fa30a1b2a0ec6402e8b19256bdf5f7345e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 08:00:06 +00:00
Richard Moe Gustavsen 7bc241c8d3 ios: don't report read access to assets if unauthorized access
Don't report read access to assets if we know that we are unauthorized
to load them. Note that if authorization is ALAuthorizationStatusNotDetermined
we continue to report read access, since we don't really know the permissions
until we try to load.

Change-Id: If51cfe9f5c57f8f33f463bddf81a77fade5fb89d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 08:00:01 +00:00
Richard Moe Gustavsen 9166e7a50a ios: resolve m_assetUrl already in QIOSFileEngineAssetsLibrary::setFileName()
Resolve m_assetUrl already when setting file name. The variable will be
used several places in patches that follows.

At the same time, change the logic to be more robust to work around QDir
removing slashes (both single a double) after the scheme. In the end, what
matters is that we still recognize the file name as an asset url, and that we can
restore the original url based on the hash-tag contained inside the file name.

Change-Id: I988c6a73b2484e46d63917b442c13aa5a3666787
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-05-06 07:59:42 +00:00
Friedemann Kleint a6bcdf1516 Clean up API of QPlatformPrintDevice (QPA).
The class inherited QSharedData, had a non-virtual clone() function and
a non-virtual operator==() which compared QPlatformPrintDevice::id().
Derived classes implemented clone() and operator==() comparing ids
to no effect. The class does not have any setters modifying its values,
so detaching, copying and assigning does not make sense.

Remove the inheritance, clone(), and  operator==() and make the class
a non-copyable base class. Use a QSharedPointer instead of
a QSharedDataPointer to store it in QPrintDevice.
Remove copy constructors and clone() reimplementations that were never
called in implementations.

Found while investigating QTBUG-44991.

Task-number: QTBUG-44991
Change-Id: Ib79354b37048d04d50d936f1d0ae06c36efaac00
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-05-05 14:06:27 +00:00
Andrew Knight 2c00943da0 winrt: properly retrieve font writing systems from unicode ranges
This was completely broken until now because the ranges were assumed to be
from the OS/2 header map. These are actual unicode ranges from the cmap,
so they need to be matched by looping over the values and checking if they
fall within a given writing system range.

Task-number: QTBUG-44155
Done-with: Peng Wu <peng.wu@intopalo.com>
Change-Id: I933429627c4dbf3377f41c9281df5a801057698f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-05-05 06:00:01 +00:00
Friedemann Kleint 4e88f1aaea Windows QPA plugin: Fix debug formatting.
- Introduce QDebugStateSaver for all debug operators.
- Remove the "Flags=" from enumerations since their type is now output
  by default.
- Added some spaces since the previous formatting relied on space=true
  as a result of some debug operators erroneously returning debug.space(),
  which is now fixed in qtbase.
- Fixed formatting, added noquote() where necessary, added some newlines,
  used stream modifiers instead of QString::number(n, 16) to output
  hex numbers.
- Fix indentation.

Change-Id: I64123a4262916e21448cda2aa61ae1100f07291a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-30 10:27:37 +00:00
Alexander Volkov fe086ddb9e xcb: Fix updating physical screen size
X server may return an empty physical screen size, for example
on VNC, Xephyr or some not very well supported hardware.
In this case it's possible to use the size of the virtual desktop,
but until now it was done only in the QXcbScreen constructor.

Move it to QXcbScreen::updateGeometry() and calculate physical screen
size using the DPI of the virtual desktop.

Task-number: QTBUG-45564
Change-Id: I6b757818a2fcefdd7b2c0aa31b840a88d625d6ae
Reviewed-by: Daniel Vrátil <dvratil@redhat.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-04-30 09:55:07 +00:00
Friedemann Kleint d1e4ba0692 Windows: Add "Segoe UI Emoji" and "Segoe UI Symbol" as fallback fonts.
This enables rendering of Emoji symbols.

Task-number: QTBUG-45811
Change-Id: I7cb128dab717870929e02ea9ec253f36fef29804
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-04-27 13:31:15 +00:00
Christian Strømme 3753667b2b Android: Make foreign windows expect global coordinates.
The foreign window implementation was trying to handle parent/child
relationships, but it's not supported by the platform implementation
and was therefore causing more problems then it was solving. E.g.,
even simple use cases, such as the parent moving or re-sizing its
geometry would not be handle correctly.
With this change the parent/child relationship is removed and the
geometry of the foreign window will always expect the geometry to
be in the global coordinate system.

Task-number: QTBUG-43391
Change-Id: I02a1f9cb9eb9fb5ace9b7e912c523bda7c5bfd5c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-27 13:05:22 +00:00
Laszlo Agocs 291eb172e3 Avoid setting a swap interval for pbuffers
As per GL_EXT_swap_control this results in BadWindow.

Task-number: QTBUG-45705
Change-Id: Ia3e3f66f326d8f6145d82f33f964b0d6996f0959
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-04-27 11:51:47 +00:00
Gatis Paeglis f99a270f10 Remove unused counter variable
Change-Id: I4069fdb75c2ef27fd4ac30de0963472c89165b20
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-04-23 15:27:50 +00:00
Erik Verbruggen 7d84eb7025 Cocoa: Stop using deprecated -convertBaseToScreen:.
Replaced by -convertRectToScreen:.

Change-Id: I38e2b5918a5ee528d6ce65f676e542e365d610a3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-22 10:16:16 +00:00
Erik Verbruggen 1fe2349762 Cocoa: stop using the deprecated NSInputManager.
Replaced by NSTextInputContext.

Change-Id: I694b28b766f8bf1d37e0ee87ff503e33d205f8ab
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-22 10:16:12 +00:00
Erik Verbruggen 5350ee7ad5 Cocoa: fix compiler warning.
/Users/erik/dev/qt5-stable/qtbase/src/plugins/platforms/cocoa/qcocoaapplication.mm:137:18: warning: case value not in enumerated type 'NSEventSubtype'
      [-Wswitch]
            case QtCocoaEventSubTypePostMessage:
                 ^

Change-Id: Ib496e61a6939f021c90234fef3689b1643003ddd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-22 10:16:08 +00:00
Erik Verbruggen 56cdd12649 Cocoa: fix compiler warning.
/Users/erik/dev/qt5-stable/qtbase/src/plugins/platforms/cocoa/qnsview.mm:702:22: warning: incompatible pointer types assigning to 'QNSView_QtNS *' from
      'NSView *' [-Wincompatible-pointer-types]
        targetView = popup->contentView();
                     ^~~~~~~~~~~~~~~~~~~~

Change-Id: I9e7e25ee9b6dc80ee6f438dc85417838039d440a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-22 10:16:04 +00:00
Gatis Paeglis 628fa13ea4 Fix "Unsupported extension used" error
This error message was a result of calling *_randr_* functions
in QXcbWindow::updateGeometry without checking if the X server
provides the XRandR extension.

Change-Id: I165f201c32ca0f4976f9ff9b9f17323098940511
Task-number: QTBUG-45624
Task-number: QTBUG-45388
Task-number: QTBUG-45312
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jan Kundrát <jkt@kde.org>
2015-04-21 23:18:50 +00:00
Timur Pocheptsov bf23091e6b Cocoa integration - invalid window state
QCocoaWindow::syncWindowState incorrectly sets m_effectivelyMaximized as !m_effectivelyMaximized
after calling zoom. But zoom can trigger windowDidEndLiveResize, which also can set m_effectivelyMaximized,
so double negation results in ... the previous value. Fixed.

Change-Id: Iea974132a1854a258e27635e8779d7d8c02bfc0c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-21 11:21:22 +00:00
Andy Shaw 50ce5a6830 Cocoa: Handle the event passed into the global monitor correctly
When the global monitor was used it did not get the right position for
the mouse event and as a result it caused context menus to appear and
disappear instantly when right clicking over a non active window. This
ensures that the events are sent correctly with the right position and
button information.

Task-number: QTBUG-45015
Change-Id: I9b17a725e656c716c4e22117b4513e64c357b266
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-17 07:18:40 +00:00
Gatis Paeglis 365c63e7b1 Fix regression in compose table parsing
Performance optimization from 1aab68648 revealed
that "composeValueEnd" needs adjustment for compose
sequences that result in a quotation mark, for example:

<dead_diaeresis> <space> : "\"" quotedbl # REVERSE SOLIDUS

Change-Id: I66bf83fbe62727f1ee245aae90f8d0eb53dea6d4
Task-number: QTBUG-45538
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-16 18:57:51 +00:00
Christoph Schleifenbaum be6b27aaa1 Cocoa: Remove NSMenuItem setEnabled used in wrong way.
Whether menu items are enabled or not is not set via NSMenuItem's
enabled property but depends on the return value of CocoaMenu's
validateMenuItem.

Change-Id: I5673da18ab9eb3510b773e0ab520e5382a160844
Task-number: QTBUG-42511
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-16 18:13:08 +00:00
Laszlo Agocs f3fad26bc9 Add matching by GL_VENDOR to QOpenGLConfig
This will be essential on Linux, especially Embedded where PCI IDs are
not that useful.

Change-Id: I2fa8ca07236e8aae203e21fe629d12aab092c7fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-16 16:47:43 +00:00
Allan Sandfeld Jensen b7d7527720 Map X11 AudioPause button
Add a missing mapping for the X11 media key AudioPause.

Change-Id: I2888854a021192942c7e8d47d581d834e1f39736
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2015-04-16 16:06:37 +00:00
Laszlo Agocs 700eb7a2a5 windows: Add a version test to the Intel HD blacklist
The original rule was way too broad: it disabled desktop GL many
HD 4400 machines that have no problems with it at all.

While the rule with the version check is somewhat dubious, it is the
only thing we can do.

Task-number: QTBUG-45505
Task-number: QTBUG-43263
Change-Id: I217a96a2a9c7cc2d000a8f06493d0857626f2aaa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-16 13:14:28 +00:00
Michal Klocek cbb918753c Fix crash when qt compiled with dbus support and no dbus interface.
Add check if interface exists before calling it.

Change-Id: I86762fd9b82131d12aac0281c86eca549752fdbd
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-04-16 13:01:45 +00:00
Eike Ziller 5e8e04a29f OS X: Do not re-create tracking areas over and over again
NSTrackingInVisibleRect already makes sure that the tracking area
updates itself, so we only need to add our tracking area if it is
missing.

For some reason this also fixes that Qt mouse tracking was broken after
showing e.g. an embedded native WebView.

Task-number: QTBUG-21944
Change-Id: I8013517f474f18e44b1ddd411defe1b6e60f05bf
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-16 11:40:26 +00:00
Paul Olav Tvete d4bc56cb42 Fix screen detection on configureNotify
If we got two rapid screen changes in a row, we would disregard
the second change. This happens because QPlatformScreen::screen()
is updated asynchronously, so if we got a screen change A --> B
immediately followed by B --> A, before the first screen change
event had been processed, we would compare with the old value
and conclude nothing had changed. This can happen on creation: if
the initial geometry of the window is outside all physical screens,
the window manager will immediately move it.

The solution is to compare the new screen to the locally cached
value.

Change-Id: I5440dc035cac4fba4f29ac563e36dfe3e2f82aea
Task-number: QTBUG-45076
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-16 09:32:19 +00:00
Kai Koehne 090002618f Fix compilation of xcb-qt without system xcb headers
Make sure the plugins are actually using the 3rdparty headers we ship,
not the system ones.

Change-Id: I5c857abee8e62c207843f9d29c369620be0d7da8
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-16 09:26:26 +00:00
Andy Shaw 4f81719983 Pass on the auto repeat information for key events
Task-number: QTBUG-45340
Change-Id: Iecc55987fa784e4bf14317d9d4a085a8f0b58451
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-04-15 21:04:45 +00:00
Liang Qi f98d125b29 Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5 2015-04-15 15:53:16 +00:00
Jørgen Lind d605883b5e Make it possible to use the -visual argument
for xcb applications to use a specific visual id when creating windows.

Also make it possible to retrieve the visual id of a specific window
with QXcbWindowFunctions::visualId(QWindow *window).

UINT_MAX is used as an invalid visualId.

Change-Id: If62ada119ce8f9174cc211f53bbf1ce1bb7d021a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-04-15 11:54:34 +00:00
Filipe Azevedo 939f21be53 QNSView: Implement custom cursors for drag and drop.
The change has been made so it support possible future change
for QTBUG-26724

Task-number: QTBUG-40346
Change-Id: Ia52835f1a882289a2a22a0b755c943a12b8d3aa3
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-04-15 10:01:15 +00:00
Liang Qi 605617b5dc Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
2015-04-15 09:09:24 +02:00
Paul Olav Tvete 4e1b09fa8f Keep screen geometries from overlapping
The simple mapping of dividing each position by the
devicePixelRatio does not work when screens have different
DPR. If the low-DPR screen above or to the left of the high-DPR
screen, the geometries will overlap in the Qt coordinate system.

This change introduces a new mapping where the origin of each screen
does not move. This mapping is not perfect: it will have gaps between
contiguous screens. However, it will keep non-overlapping screens
non-overlapping in the Qt coordinate system.

Since there is no longer a simple linear coordinate transform, we
have to add screen-dependent mapping functions, and distinguish between
local and non-local coordinates. A side benefit is that the code is
now easier to read, since we remove most manual coordinate transformation.

We also have to cache the screen of each window: since we send resize events
before screen change events, we cannot rely on QPlatformWindow::screen()
(which is set from the screen change event).

Task-number: QTBUG-45076
Change-Id: Ie95a0b71ae274e02903caa102a98af2050a44129
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-04-14 15:12:30 +00:00
Kai Uwe Broulik 95b481ea6d qiostextresponder: Add support for ImhLatinOnly
Change-Id: I38f43cd644d3c26c834cf60019c4db1fa0b8d61f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-04-12 10:09:25 +00:00
Kai Uwe Broulik 4fab4d2e80 qiostextresponder: Use UIKeyboardTypePhonePad for ImhDialableCharactersOnly
Change-Id: I8123199da51a0b840c068bea4ba089c0fec9697b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-04-11 17:19:18 +00:00
Simon Hausmann d11665b27c Speed up application startup on X11
Avoid parsing the composition tables on application startup. Instead let's
do that on-demand the first time a composition key is pressed.

Change-Id: I52feb36246a091b9a84d46e479ba2ad1f5cd1556
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-10 21:10:09 +00:00
Simon Hausmann 1aab68648d Speed up compose file parsing in the X11 composition input method plugin
There's no need to decode the string until the end of the line, it's
sufficient to stop at the end of the quotes.

Change-Id: Ie617d2538511e91d0e0146f98b7e5ea3213b8db2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-10 21:10:02 +00:00