Commit Graph

13061 Commits

Author SHA1 Message Date
Gabriel de Dietrich
abbdb4d98d QComboBox: Use native popups on Mac
This remains an opt-in solution bound to the usage
of SH_ComboBox_UseNativePopup in a proxy style. The
midterm goal is to make this option on by default,
possibly in 5.4. This solution is and will remain a hint
in the sense that some exotic use cases of QComboBox
(e.g., when setting its view) are inherently incompatible
with the native popup idea.

Task-number: QTBUG-32731
Change-Id: I2a3d780795c22f9989e44325fcaf314538b1de49
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-04-07 17:33:41 +02:00
Richard Moe Gustavsen
b8d0fac5a9 QGuiApplication: fix crash caused by posting fake mouse event
Since Qt expects a mouse press/release event to not change
mouse position in the same event, QGuiApplicationPrivate::processMouseEvent
will detect if a QWindowSystemInterfacePrivate::MouseEvent
tries to do this and convert it to two events; one move
and one press/release.

The problem is that the extra mouse event gets posted. So if
delivering the first event causes a flush in the event queue
(which can easily happen if e.g calling processEvents), the
second event will be processed before the first returns.

On iOS we see a crash with DnD as result of this, since drag
data gets deleted on mouse release, and returning back to a mouse
move after that will cause dangling pointers.

This patch will instead of posting the event, call the
event handler recursively with the faked event as argument.
That way a flush will not cause the "pending" event to be
delivered.

Change-Id: Id9d88053b4859083fedd666584815016d67ac51b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-07 11:07:31 +02:00
Joerg Bornemann
e30ae1268f fix build for MSVC 2010
The Windows version for QS_TOUCH and QS_POINTER was slightly off.

Change-Id: Idb8a8219e09c6aa1a1b24e45b9da640c8d4b7161
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-07 11:02:57 +02:00
Jocelyn Turcotte
f4f1f597d4 Fix a crash on startup with QOpenGLWidget
After c4aabeb2b8 we now try to access
q_ptr in QWidgetPrivate::setRenderToTexture. QOpenGLWidget needs to
delay this call after the QObject constructor is done to make sure
that setTextureChildSeen doesn't dereference q_ptr before it has
been initialized.

Change-Id: Icaee82c8b806f42bc7614b0ac6fe4e6026331750
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-07 10:58:24 +02:00
Shawn Rutledge
b5eb850e0d OSX: add several menuitem roles to support menu shortcuts in dialogs
Now menu items and key shortcuts for Cut, Copy, Paste and Select All
work in the standard ways in dialogs such as the file dialog, provided
that the corresponding QActions have been created and added to the menu.
This depends on new roles to identify each menu item which is so
broadly applicable that it should work even when a native widget has
focus; but the role will be auto-detected, just as we were already
doing for application menu items such as Quit, About and Preferences.
When the QFileDialog is opened, it will call
redirectKnownMenuItemsToFirstResponder() which will make only those
"special" menu items have the standard actions and nil targets.  When
the dialog is dismissed, those NSMenuItems must be reverted by calling
resetKnownMenuItemsToQt(), because to invoke a QAction, the NSMenuItem's
action should be itemFired and the target should be the
QCocoaMenuDelegate.

Task-number: QTBUG-17291
Change-Id: I501375ca6fa13fac75d4b4fdcede993ec2329cc7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-07 08:30:24 +02:00
Frederik Gladhorn
a7f98a7ac0 Mac Accessibility: Make more widgets name/description work
Change-Id: I0abe17a59f95818939d6b82500d2463c3f135989
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-05 21:48:42 +02:00
Frederik Gladhorn
cc57a2e90f Accessibility text updates for QTextEdit
For Mac this makes QTextEdit work nicely with VoiceOver.

Task-number: QTBUG-37204

Change-Id: I1326d24ca6a932ad667ee395f62881b6ec64e892
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-04-05 21:48:31 +02:00
John Layt
bc46b591b2 QPagedPaintDevice - Move QPageLayout methods
The new QPageLayout methods weren't originally added to QPagePaintDevice
as no new virtuals can be added, instead static polymorphism was used to
add the methods directly in the derived classes QPdfWriter and QPrinter.

This however means that classes like QTextDocument with print() methods
that take a QPagedPaintDevice are unable to access the QPageLayout
methods. To fix this, instead make the QPagedPaintDevicePrivate a
virtual class and have QPdfWriter and QPrinter implement derived
private classes that are called by the non-virtual QPagedPaintDevice
base methods.

Change-Id: Ieb6e513b1fa05f5ae76ea1f9156b0b1a053089eb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-05 21:47:46 +02:00
Thiago Macieira
d84da39964 Use the new 3-operand testAndSet functions in QMutex
This allows us to get the current value of the QMutex / QBasicMutex
after the testAndSet operation failed. It saves an extra load from
memory.

Change-Id: I4922a8b3df15e342b177b13f56cf4f1184314520
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-04-05 21:47:09 +02:00
Alejandro Exojo
0ebfd0866d Use category names when logging to the journal
Use the custom field QT_CATEGORY to store the name of the QLoggingCategory used
when writing to systemd's journal. To pass custom fields sd_journal_send() is
needed, and is used in combination with #define SD_JOURNAL_SUPPRESS_LOCATION to
store the metadata that is already in the QMessageLogContext.

Change-Id: I6a120701f7012aaa46451dd3d91586a419c5f803
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-04-05 13:27:05 +02:00
Morten Johan Sørvig
687fbc1152 Improve QWidget::metric for PdmDevicePixelRatio.
Use QWindow::devicePixelRatio() which is the most
accurate devicePixelRatio accessor since it can ask
the platform native window directly

Fall back to qApp->devicePixelRatio() if the window
pointer is not valid.

Task-number: QTBUG-37606
Task-number: QTBUG-38078
Change-Id: Ief1468a0c6ced07439f55329ab056883016241cc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:16:23 +02:00
Morten Johan Sørvig
2884d7c9aa OS X: Improve QLibraryInfo app bundle testing.
QLibraryInfo::location() paths are relative to
"myapp.app/Contents/" when the application has a
bundle and relative to the executable when not.

However CFBundleGetMainBundle() can and will return
a valid CFBundleRef even if the application is built
as a standalone executable.

Add a test that verifies that the path constructed
with "/Contents" exists on disk. Fall back to the
non-bundle code path if it doesn't.

This bug was hit in cases where a qt.conf file was
present side-by-side with the app binary, for example
in qtbase/bin.

Task-number: QTBUG-38039
Change-Id: Id993599208fe94fff283c725778f8ad47b610ba7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-05 08:16:19 +02:00
Morten Johan Sørvig
840a665017 Cocoa: Don't beep on maximize.
Use zoom instead of performZoom: Does not beep if
there is no Zoom button, and is what Qt 4 did.

Task-number: QTBUG-37716
Change-Id: Iaa85d55a449744c38b260cf79745a433e0e3272f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:16:16 +02:00
Morten Johan Sørvig
a7e8b400d1 Cocoa: Make backing store flush accurate.
Flush the individual rects that make up the region
instead of the bounding rect. This is required for
correctness since then areas not included in the
region might not have valid backing store content.

The bondingRect() usage here had its roots in an
optimization in Qt 4, where it was observed that
flushing the bounding rect was more efficient than
flushing (many) individual rects.

Task-number: QTBUG-37918
Change-Id: Ib805f6713523f9895be24c48466870efaaf89c02
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:15:43 +02:00
Morten Johan Sørvig
bd2ec12a7b Cocoa: Make QScreen::topLevelAt() work correctly
The QPlatformScreen::topLevelAt() default implementation
is flawed in that it does not check z-ordering but
simply returns the first window in the window list
that contains the test point.

Add QCocoaScreen::topLevelAt(). Use [NSApp orderedWindows]
to iterate through the window list in z order. Add
a NSWindow->QCococaWindow mapping hash to QCocoaIntegration
for getting the corresponding QWindow once a NSWindow
is found.

Task-number: QTBUG-37597
Change-Id: I7af70163a32528cb56f8d6caa037b98f580ee191
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:15:24 +02:00
Morten Johan Sørvig
bb73d8d070 Compile: isChildOfQMdiSubWindow may be unused.
[-Werror,-Wunused-function]

Change-Id: Icf1e60ce3c5dadb96272453583d1cd03379eb73b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-05 08:14:49 +02:00
Morten Johan Sørvig
d24ada47b4 Cocoa: Support pasting rich text to Qt apps
Native Mac OS X apps uses Rtf as the rich text format
while Qt uses html. Add QMacPasteboardMimeRtfText
which supports converting from public.rtf to text/html
(but not the other way around, since we want to keep
posting our html as html).

The QMacInternalPasteboardMime API does not support
the concept of a one-way handler. Skip the Rtf handler
in QMacPasteboard::setMimeData().

Task-number: QTBUG-37188
Change-Id: Ibe29997a038bbb64da24b961e84a5f60133074e0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-05 08:14:06 +02:00
Thiago Macieira
f1540a2966 Fix capacity reservation for shared QByteArray
We can squeeze, but not by discarding elements. Make sure the size of
the object stays intact after changing the reserved capacity.

I've also added unit tests for other containers, just to be sure.

Task-number: QTBUG-37750
Change-Id: I5135b095943b7589423c51cebcb52af792468e61
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-04-05 05:23:07 +02:00
Thiago Macieira
3e930baa98 Use Q_STATIC_ASSERT to check that the array has the right size
No need to sprinkle the code with Q_ASSERT. We don't want this to fail
to the user anyway. By using a Q_STATIC_ASSERT, a failure will be
immediately reported to the developer.

This also solves a warning found by Clang 3.4:
error: unused variable 'pageSizesCount' [-Werror,-Wunused-const-variable]

Change-Id: I79cf72c64242ad395276ce4360c59ad81112d9eb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-05 05:23:03 +02:00
Thiago Macieira
6c8ecf1000 Consistently hide the parts that require xcb-xkb
It was inconsistent. This also solves a warning from Clang 3.4:
error: private field 'vmod_masks' is not used [-Werror,-Wunused-private-field]

Change-Id: I6be9f7ef56dffe6df2be3beb984c2d82d3808403
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-04-05 05:22:58 +02:00
Fabian Bumberger
8d83562c1f QNX: Surpress manual window activation during showFullScreen
When a window is shown, libscreen will give it keyboard focus.
Requesting the activation right after the window is created (and
before libscreen activated the window) causes problems on some devices
e.g. Q10.

Change-Id: I29f7a38990ea4259a8b0c6624f70e31d7291af00
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-04-05 02:27:31 +02:00
Samuli Piippo
1a6d7b6e93 Fix neon image scaling function declarations
Change on the image scaling functions did not update the neon function
declarations.

Task-number: QTBUG-35927
Change-Id: Ia1e7428953aa140cad36e1cf26a18bfefc2267e7
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 22:05:57 +02:00
Sergio Ahumada
2343b74193 Doc: Fix documentation warning in qstylehints.cpp
warning: Command '\snippet (//! [6])' failed at end of file 'code/src_gui_kernel_qguiapplication.cpp'

This change amends 56cd9cc2b0

Change-Id: I63a2f086fc582d3a9c8b60f1ef94ccb537b0d3a5
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-04 22:05:57 +02:00
Oswald Buddenhagen
a4ec90175c purge vestiges of opengl es 1 support
amends 0d5170256c.

Change-Id: Ifa178d38f602bb7c66ef13334673ff47e332af5b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 19:32:21 +02:00
Thiago Macieira
964ac38fb0 Don't read before the beginning of the string
The code did discard the the data, so it wasn't affecting the comparison
result (tests added anyway), but it could cause crashes if the pointer
to the beginning of the data in the first 8 bytes of a page.

Change-Id: I618e68de329b65de34ef8c934934c3e631cc6c9f
Reported-By: Erik Verbruggen
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
330f6e3598 QTextLayout: Fix cursor movement from invalid position
Actually guarantee cursor doesn't move in this case for both logical
and visual modes (just what the documentation says we already do ;)

Change-Id: Iabdca7aa1d205672386a0095e3487e585611cdb5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
47056e78d3 Optimize QTextEngine::insertionPointsForLine() a bit
Reserve the insertionPoints vector capacity prior to multiple append()-s.

Change-Id: I97ab5b2a1add9f2e87c04ad0707bf516c13ff4d7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
0b5911f376 QTextLayout: Fix visual cursor movement in some cases
To guarantee proper positioning at the end of the last line in a
bidirectional text we have to insert the eol position into the
insertion points vector, accordingly to the visual ordering.
Detection of the last *logical* item in a *visual* line is unrelaed
to the text direction, it is simply `iterator.item == iterator.lastItem`.

[ChangeLog][QtGui][QTextLayout] Fixed visual cursor movement
in bidirectional text.

Task-number: QTBUG-18060 (partially related)
Change-Id: I53b6ab889ef580ab0560b620b808b1e09efc0fbd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Ahmed Saidi <justroftest@gmail.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
d828672945 QTextEngine: Fix visual position movement for tab and object cases
QTextLineItemIterator::next() was never updating itemStart and itemEnd
for QScriptAnalysis::TabOrObject, thus producing incorrect
insertion points for the line that contains tabs and/or objects.

Change-Id: Ia964c663cc0636ba6be4500702656f989b252fba
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Konstantin Ritt
6d39e87f34 [HB] Ensure we always working with non-multi font engine
Change-Id: If88385d4cecdc527b7952d34e48f7ba889173c6c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-04 19:32:21 +02:00
Jocelyn Turcotte
495c4d501e Make it possible to render QtWebEngine in QOpenGLWidget
Setup the GL context as shared with the Qt global share context.

Change-Id: I199cfc7d290466d0ad99294bcffcd738b615862b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 16:55:08 +02:00
Friedemann Kleint
19ff7d038f Increase tolerance for warning about QTest::qSleep() for Windows.
50% is too strict, it clutters the logs.

Change-Id: Ib391064f32e39a1192e77d872cd99b7f95a5065a
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
2014-04-04 16:31:27 +02:00
Martin Koller
f0dbc6b37e Fix: Initialize all needed member vars
Change-Id: I74b71d93e25e4b3b0c1a5766f2fbc4f71aebecbb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-04 15:47:55 +02:00
Jorgen Lind
7d005c502b Add isCreated to QOpenGLTextureBlitter
Change-Id: Icb1a0354ac1caee38e3cb0cba6d7daec99d66c54
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:50:48 +02:00
Shawn Rutledge
ba2ea6da29 Don't assume qt_tablet_target widget exists from one event to the next
In this scenario there is a widget with a button inside, and you click
the button with the tablet.  The target of the event is the button,
but when you click it, the parent (or ancestor) is destroyed.  Commit
2bac49265e took care of the case when
the parent is a window, but it is not always a window which is being
destroyed.  So the approach of using a QPointer is better because it
should take care of all the cases when the qt_tablet_target is
destroyed during the course of a tablet event sequence.

Task-number: QTBUG-36848
Task-number: QTBUG-38040
Change-Id: Ia0e861f2cb2fbc30234aa596f3a36ddd0835a9af
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:46:21 +02:00
Jorgen Lind
82d2d9b3cc Fixup QGuiApplication::sync to flush the QWSI queue
Change-Id: If4cedeb886e912f622a66b2b3374d6260cffc32a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-04 10:35:23 +02:00
Mark Brand
00d5e3c917 update bundled sqlite to 3.8.4.3
The "Fixed CE build of sqlite3" patch is preserved in this change.
(ea70ec8711)

Change-Id: I163a4bcc92f47838c8203d8f5d78bbdcb0c1fd84
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-04 09:28:51 +02:00
Morten Johan Sørvig
078f83a761 Compile: remove "register" keyword in MD5Transform
"register" is usually ignored by the compiler and
is deprecated in C++11

[-Werror,-Wdeprecated-register]

Change-Id: I3a10f2128e4a4574b2cd3861bddbbd4ba6a3683f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-04 01:29:35 +02:00
Joerg Bornemann
10a0ac759e Windows XP target support for MSVC >= 2012
To enable windows xp support, we must do two things:
1. linker flag must be /SUBSYSTEM:CONSOLE,5.01 or
   /SUBSYSTEM:WINDOWS,5.01. For x64, the version is 5.02.
2. Do not use Windows Kit 8. Win SDK v7.1A is recommended. Prepend the
   right include paths and lib paths to INCLUDE and LIB before
   building.

The Windows XP target support is enabled by passing "-target xp" to
configure.

Task-number: QTBUG-29939

Change-Id: I84c8439606cc2a9d27d64947702846faa4f1e4a2
Reviewed-by: Lucas Wang <wbsecg1@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-03 18:31:45 +02:00
Gatis Paeglis
6ad458bc93 Fix regression in key handling.
libxkbcommon 0.4.1 added two new functions, xkb_state_key_get_utf{8,32}(). They
combine the operations of xkb_state_key_get_syms() and xkb_keysym_to_utf{8,32}().

The xkb_state_key_get_utf{8,32}() functions now apply Control transformation: when
the Control modifier is active, the string is converted to an appropriate control
character. This matches the behavior of libX11's XLookupString(3), and is required by
the XKB specification:

http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier

Task-number: QTBUG-36281
Change-Id: Ib45f45d801291c171640600384107a35d7d56b9b
Reviewed-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-03 14:20:25 +02:00
Gatis Paeglis
bd40a7cc44 Update bundled libxkbcommon version to 0.4.1
This is the latest version, released on Mar 27 2014. It includes:

https://bugs.freedesktop.org/show_bug.cgi?id=75798
https://bugs.freedesktop.org/show_bug.cgi?id=75892

Required for fixing input when running Qt application on Mac OS X
with XQuartz and for fixing QTBUG-36281.

Change-Id: Idc4d3c99a4008a10b91ab51c8910b36909974703
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-03 14:20:19 +02:00
Laszlo Agocs
581d10bdf2 Avoid recreating the underlying context in QGLContext wrappers
QGLContexts created from a QOpenGLContext get their valid flag reset,
resulting in creating a totally new underlying context. This is wrong
and becomes visible when sharing is expected between contexts (since the
QGLContext's underlying QOpenGLContext will not have sharing).

Task-number: QTBUG-37893
Change-Id: I8cb37c11dfb400a77e510bf4c8219bedc742309e
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-03 14:18:41 +02:00
Topi Reinio
dfb70fbfc4 Doc: Fix Qt Gui filter name in Assistant
Use bookcase for the filter name like the rest of the modules.

Change-Id: I9690d0b6a6f3abb11837120da75832475b975b5d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-04-03 11:07:07 +02:00
Jocelyn Turcotte
4bbf313e9d Fix UI squishing when using QWidget::setRenderToTexture
When resizing a window, a window might not be resized synchronously with
its backing store. We need to use the actual texture size as the transform
to avoid stretching the rendered texture.

Change-Id: I945f6d190577ccdcb54483a267a1e42df1ca3156
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-03 11:07:07 +02:00
Samuel Gaist
afacf694d5 Use Finder bundle identifier over path for OS X bundle detection
Currently, checking if Finder is the application returned for
opening a bundle is done using its absolute path. Finder might
be relocated in future OS X versions which makes this approach
less clean.

Using Finder's bundle identifier allows us to ignore where it is
stored in the filesystem as the identifier will not change.

Task-number: QTBUG-31884
Change-Id: Ib4c3412fb206fadda04eb547bc6a4eef02ee949a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-03 11:07:07 +02:00
Dyami Caliri
2d8b40439d Cocoa: Fix crash when disconnecting an AirDisplay monitor.
There are some cases where unplugging a monitor temporarily leaves
a QCocoaScreen object with an invalid m_screenIndex. Debugging shows
that the OS does not report the screen update before Qt attempts a
repaint. This calls devicePixelRatio(), which calls osScreen(), and
the index for the screen is out of bounds.

By temporarily exiting updateGeometry() when the screen is unavailable,
we avoid the crash. The OS quickly reports the monitor state change
and everything returns to normal, unnoticed to application.

Task-number: QTBUG-37606
Change-Id: Iacb2ff22bd3df72a5d87b2289242fb393625af57
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-03 11:07:07 +02:00
Kari Pihkala
bdf55f62a2 Change the hidpi cursor hotspot coordinate mapping
All hidpi coordinates in Qt are device independent points and
the hidpi cursor hotspot should follow that convention.

Change-Id: Id5295cae7a463e9a3ea85d2b0a18a5020dc97656
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-04-03 11:07:07 +02:00
Morten Johan Sørvig
acebf67712 Cocoa: Close ToolTips on parent window move.
Treat Qt::ToolTip windows the same way as Qt::Popup
windows: The parent window keeps track visible
transient child windows of this type and closes
them when appropriate.

This improves the locator popup window behavior in
Qt Creator: It now closes when moving the main Qt
Creator window.

Change-Id: Ibc5d0713469b7c9aba2fd13fb1eb559706c8c4ed
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-04-03 11:07:07 +02:00
Morten Johan Sørvig
66178447e9 Mac: Use QString::toNSString in QtBase.
The string is now autoreleased.

This fixes a memory leak in qt_mac_QStringListToNSMutableArrayVoid

Task-number: QTBUG-20347
Change-Id: I11ebeb264af4c8ce98968f2221eea772f24c12d4
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-04-03 11:07:07 +02:00
Morten Johan Sørvig
d6202762c1 OS X: Fix QRubberBand drawing on retina displays
Extend the existing rect adjustment to cover the
upper/left edges as well. Check for a valid rect
before drawing.

Task-number: QTBUG-34534
Change-Id: I156abf4fb52924c350ec24fb44eadca86b2d5339
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Steve Mokris <smokris@softpixel.com>
2014-04-03 11:07:07 +02:00
Kai Koehne
b11adb825c Logging: Be also more strict with value of logging rule
Only accept lower-case "true" and "false", as documented.

The old check didn't match either the documentation, nor the QSettings/
QVariant behavior (where, for a boolean value, any lower-cased content
that not empty, "0" or "false" is considered true).

Change-Id: I317d29c16a27f862001b9dff02e8298df8acf5a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-04-03 11:07:07 +02:00
Laszlo Agocs
828cfb4019 Avoid double clicks confusing popups
Setting qt_button_down on DblClick is dubious and breaks popups like menus
since they won't appear correctly on every click anymore when clicking on
them rapidly several times.

Task-number: QTBUG-37891
Change-Id: Ic6cbbbe8b42891d2f9fa2ff66aa42bb89230d896
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-04-03 11:07:07 +02:00
Andrew Knight
4dd9a02001 d3dcompiler_qt: Fix default precompiled path
The trailing slash was missing, which caused the resulting path to be
wrong.

Change-Id: Iaa9dee15e744307c2d438181964b71c412fd9709
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-03 08:54:48 +02:00
Gatis Paeglis
0dbd8c0be7 Be less verbose about invalid keysyms
Report invalid keysyms only when DEBUG_GENERATOR is defined.

It is not unusal that Qt applications are used on old linux
distributions where Compose files might be far behind the current
development, therefore we should be less verbose when encountering
invalid keysyms. On Red Hat 5 compose key plugin reports ~3200 lines of
warning messages:

"Qt Warning - invalid keysym: U1001D1BC"
"Qt Warning - invalid keysym: U1001D16F"
"Qt Warning - invalid keysym: U1001D1BA"
"Qt Warning - invalid keysym: U1001D165"
"Qt Warning - invalid keysym: U1001D16F"
...

Task-number: QTBUG-34483

Change-Id: If0c51d300508ef164ad7fc59b0a76a838cd5a3b9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-04-03 08:44:34 +02:00
Friedemann Kleint
d5ff16bc8e Fix access of tmpStorage in QODBCResult::exec().
Instead of using a list and appending / popping of elements, use
a vector of constant size and access via index to avoid
bookkeeping errors.

Task-number: QTBUG-37831

Change-Id: Icb5a182626c63e693b04daaf7a2f70997d9aeae1
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-04-03 08:20:48 +02:00
Lisandro Damián Nicanor Pérez Meyer
00cfcfefb3 Enable s390[x] detection.
It has been working in Debian for some time.

Change-Id: Ib5741a4ba68bf95c7020336c84bc66257ff27809
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-03 07:42:32 +02:00
Christian Strømme
c9241a1a7b Android: Don't accept the volume-key events.
On Android the volume keys are by default connected to the global volume
control and by accepting them we remove this feature. Meaning each
application would need to re-implement this functionality.
Ideally we should only accept the volume keys if they where accepted by
the user to avoid overriding default behavior, but we currently don't
have the infrastructure to do that.

To revert back to the old behavior the env. variable
QT_ANDROID_VOLUME_KEYS can be set.

Task-number: QTBUG-36570

Change-Id: Ib053a40383f2de452f385b19f7795c2fc23fc4fe
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-04-03 00:28:22 +02:00
Christian Strømme
5f6cbfb070 Android: Stop ART from complaining about missing thread names.
The new Android jvm (ART) complains loudly if we attach without
supplying a thread name.

Task-number: QTBUG-35441

Change-Id: I962d613be0db50f3ca9a4c786b36003f31c9db14
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-03 00:28:10 +02:00
Jocelyn Turcotte
b94493e6c8 Avoid an "OpenGL Error: 1282" output when resizing a QOpenGLWidget
When we delete the previous FBO in QOpenGLWidget::resizeEvent while
it is the currently bound FBO, the QOpenGLContextPrivate::current_fbo
will not be updated and will try to be bound during the initialization
of the new FBO.

Fix the issue by explicitly releasing the FBO on destruction if it
is current.

Change-Id: Id049889c4857526750bbecf3dd27343e44449c12
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-02 10:06:07 +02:00
Jocelyn Turcotte
f7971d37cb Add a way to share context between QtQuick and QtWidgets
This will replace QSGContext::setSharedOpenGLContext.

To be able to allow sharing the Chromium GL context with both
QWebEngineView and QQuickWebEngineView, we need some way of setting
the sharing within QtWidgets and QtQuick. Since they don't depend
on one another this patch allows the sharing context to be set
through QtGui.

Change-Id: I91b365dd06ec925b4c5a99ac82c222778781fe8e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-04-02 10:06:00 +02:00
Jocelyn Turcotte
7672f25f44 Enable the depth and stencil buffers by default in QOpenGLWidget
QGLWidget rendered to the default framebuffer, which had a depth and
stencil buffer attached by default.

Keep this behavior by adding the attachments to the FBO by default
in QOpenGLWidget.

Change-Id: I6f72a444eac3d8eabb7a539ad12216f1e5d2183d
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-04-02 10:05:52 +02:00
Gatis Paeglis
ee3dea8d3f [xcb] Fix build failure
Build failure was introduced by 9bb634a617.

When linking with systems provided libxkbcommon, then DFLT_XKB_CONFIG_ROOT
can't be accessed directly.

The reason that this slip through CI is that on CI machines Qt
is build with bundled version of libxkbcommon.

In addition this patch improves keymap error message, by making it more explicit for
users what could be the reasons for "keymap compilation" failures and what should
be done to make input work. As it turns out this is a common issue on old systems,
servers and some VNC clients.

Task-number: QTBUG-37971

Change-Id: I77667a404150ee7ab8465a065e23ca5eea63c33b
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-04-02 08:47:36 +02:00
Fabian Bumberger
2c36469a16 QNX: Fix OpenGL autotest
On QNX grabbing the frame buffer returns the content of the back buffer.
In order to execute the OpenGL tests properly a swapBuffers is executed before
in order to be able to retrieve the content of the front buffer.

The patch also documents this platform behavior.

Change-Id: I7a501818ec6eea061f2f54f95854f68cb72e0534
Reviewed-by: James McDonnell <jmcdonnell@qnx.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-01 23:35:21 +02:00
Friedemann Kleint
9a14731b7c Windows CE: Fix message about freetype font rendering.
Task-number: QTBUG-37976

Change-Id: Ib4bf6ba8f62e2dc4f3860313442fa57c67f06d9a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-01 19:18:43 +02:00
Laszlo Agocs
d8281a92b8 Do not set fwdcompat bit for a compatibility profile QGLFormat
AMD drivers do weird things. Provide a workaround.

Task-number: QTBUG-37909
Change-Id: Idabd6ebb6e1447cb9bd92c7711a50aaa8575b9d6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-04-01 19:18:43 +02:00
Alberto Mardegan
0a86c31272 When looking up the window hierarchy, stop at foreign windows
If the window being activated is an embedded window, the parent window
will be a foreign window (usually not even belonging to the current
process); we shouldn't attempt to focus it.

Task-number: QTBUG-37984
Change-Id: I2ea03a86b30bbc43cde643e18e0e1d020e5f2c84
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-04-01 15:54:49 +02:00
Laszlo Agocs
b4128d0f7d Use an offscreen surface in VAO cleanup
Avoid failing the makeCurrent() on iOS that does not currently support
using a window with different contexts.

Change-Id: I2e10ad7e382161625a78518d02ad94edaff591ca
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-04-01 15:51:33 +02:00
Maurice Kalinowski
30db2159aa Fix offset calculation on WinRT
According to MSDN "the offset must be a multiple of the allocation
granularity". We use this already for the win32 version by splitting
into offsetLo and offsetHi. However, we did not convert it back to the
correct argument passed for MapViewOfFileFromApp.

Now all auto-tests for mapping succeed.

Task-number: QTBUG-37773
Change-Id: I7e43f906cb93164b58f4e5e3f88388cdace865d7
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-04-01 12:29:14 +02:00
Andrew Knight
caf34b9f0a WinRT winmain: Pass ImagePath as part of ImageParams in Xap packages
ImageParams is used to pass arguments to main(), but when used the
original argv[0] is dropped. To remedy this, expect argv[1] to contain
the same value found in the Xap's ImagePath.

Change-Id: I2fb3b9956304fdcdeec4424ea56289d56ad4fe0b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-01 12:28:10 +02:00
Konstantin Ritt
b0718bfaf4 Fix unused variable warning
> qstring.cpp:5325:1: warning: 'defaultCollator' defined
> but not used [-Wunused-variable]

Change-Id: I29fe2006a678f4f0b3b504b90120c0e99d7090fb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-04-01 12:20:16 +02:00
J-P Nurmi
0cb2c760c2 Item views: respect selection mode when closing an editor
Task-number: QTBUG-31411
Change-Id: I1a52eb739e0bc2afa7227f006461916df8ecaf48
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2014-04-01 05:27:00 +02:00
J-P Nurmi
cc08fc7bfd Item views: respect focus policy when closing an editor
Task-number: QTBUG-31411
Change-Id: Ib0a72755c35a553653ea014672d59979a550b7ae
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2014-04-01 05:26:50 +02:00
Andrew Knight
423823dd2d d3dcompiler_qt: Improve shader source structure
The following adjustments are made:
 - A precompiled path, defaulting to a QRC path, is added for looking
   up precompiled shaders
 - The standard service source/binary paths are created if needed, in
   order to avoid fast-fails when the service cannot create the structure
   itself fast enough.

Change-Id: I966e54c0b35bafdaf0b3a32b76eb896308aca6db
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-03-31 19:50:37 +02:00
Laszlo Agocs
c4aabeb2b8 Propagate textureChildSeen properly
even if setParent() is not called afterwards.

Change-Id: Ie54e227c7adda2710fbd46176e9a15252aef2985
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-31 19:50:37 +02:00
Friedemann Kleint
18a444c330 Send touch update events to widget if there is a gesture pending for it.
Otherwise, touch update/end events were ignored and the gestures
were never triggered (unless a native widget was used).

Task-number: QTBUG-37759

Change-Id: I4b0145ffe535065e1458164b67bc8d9e33a4af97
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-31 17:30:32 +02:00
Konstantin Ritt
4a46b15514 Make QWindowsMultiFontEngine support deferred fallback families query
This finishes 800232e1d3, which encovered
a tricky issue in QFontEngineMultiQPA::createMultiFontEngine().

Task-number: QTBUG-37836
Change-Id: I6d432e09e755f5d9ded09752c4c092f4857ad224
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-31 17:28:00 +02:00
Konstantin Ritt
5f19e2c8f3 Fix QFontCache::Key comparison for custom font fallbacks case
Just a C&P typo, of course we have to compare lists, not their sizes.

Change-Id: I40542035b87f5bb8d75207cb02c0826cc3a2a413
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-31 17:27:47 +02:00
Konstantin Ritt
5dfe7b5fed Drop dead code
The QFontEngineMulti's `base` font engine always non-null.

Change-Id: I5092b66bc839a6a3216ffa0b0afe55a8b62be620
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-31 17:27:24 +02:00
Paul Olav Tvete
eccf1c51a6 Android: input method fixes for SwiftEdit keyboard
* Report correct pre-edit information when calling updateSelection()
  on endBatchEdit()
* Fix getExtractedText() to report the correct offset and cursor position,
* Fix setSelection() to use the correct cursor position.

Task-number: QTBUG-35689

Change-Id: I7e8427d0f5a18abf18ba2faf9d510756ddf6044b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-31 14:01:35 +02:00
Tor Arne Vestbø
e432787ad0 iOS: Share default-FBO for windows between contexts in a share-group
The current implementation of QOpenGLContext sharing assumes that the
contexts form a tree and that leaf-nodes are destroyed before their
parents.

We build on this assumption and keep track of the default FBOs for
windows in the root context of the tree. This allows two shared
contexts to both makeCurrent() on the same window surface without
resulting in two FBOs being set up (which doesn't work on iOS due
to the CEAGLLayer already being tied to another render-buffer).

Change-Id: Ib9f8c597effe488480fe99e10846be22c257f490
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-31 13:48:52 +02:00
Marc Mutz
38b66bdcde QNX: use QStringList::join(QChar) overload
Doesn't construct a temporary QString.

Change-Id: I368c5f997f74c1ce6b2930ac4df292c7a6d5c87c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-03-31 13:12:38 +02:00
Kai Koehne
b5731ceef1 Update copyright year in tools output
Change-Id: I9ee9604303b3cb29f89a4252df5af35e729f6249
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-03-31 12:46:44 +02:00
aavit
624ac989ce Fix compile for embedded Android
It also has a broken declaration of posix_memalign

Change-Id: Ie8f245564f80b04901425729b46953828204efaf
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-03-31 12:13:15 +02:00
Samuel Gaist
35a11d6fce OS X QSettings auto test/writing check update
This patch aims to provide an updated test that follows changes started
in 10.7: new rule is that only root can access SystemScope settings. It
also disables the sync() workaround code path which is at least not
executed during the tst_QSettings execution and returns wrong value to
the test.

From Apple's documentation:
"Note that modification of some preferences domains (those not
belonging to the “Current User”) requires root privileges (or Admin
privileges prior to OS X v10.6)—see Authorization Services Programming
Guide for information on how to gain suitable privileges"

https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFPreferencesUtils/Reference/reference.html

[ChangeLog][QtCore][QSettings] QSettings now returns the correct value
for isWritable() when using SystemScope settings.

Task-number: QTBUG-9824
Task-number: QTBUG-21062
Task-number: QTBUG-22745

Change-Id: Ib6a1490ec596b99d189ec4de9a0f28ecfd684172
Reviewed-by: Liang Qi <liang.qi@digia.com>
2014-03-31 12:12:21 +02:00
Andy Shaw
f2111ff1d7 NSScreen screens may be empty so add the main screen in that case
In some circumstances NSScreen screens can be empty yet there is still a
valid main screen so we prevent any problems arising by ensuring we work
with the main screen in that instance.

Task-number: QTBUG-37876
Change-Id: I5827009a9894eb8c1d4f5addc6c6f59e1c50c3d0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-29 21:23:18 +01:00
David Fries
24ac9f518d XCB: use requested primary screen DISPLAY=:0.1 when possible
The current logic requires primary->output to not be specified, or
match the output number.  This fails when the output by that number
doesn't currently have a display attached, as non-connected outputs
are skipped.  This means setting the display to :0.1 for Qt5 will put
the window on :0.0 and it can't be moved to :0.1 after the fact.  The
solution is to pick the first output on the requested screen, then
override if an output exactly matches the primary output value.  That
way it will at least be on the requested screen.

Tested with Xephyr, ATI, and nVidia (proprietary driver), where the
nVidia had the primary output disconnected.

Task-number: QTBUG-15418
Change-Id: I7951dcef74cb135dc12a6e133a71c5852eae9778
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-29 21:23:03 +01:00
Shawn Rutledge
51d4eb8f5b If no screens, attempting to create a window results in clean exit
Asserting is only relevant for debug builds, and there were a couple
of other places that a segfault would typically occur before the assert
had a chance.

Change-Id: I1abc82eb3ecfa91050117fab1525f4cbd82ff486
Task-number: QTBUG-37876
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-29 21:22:38 +01:00
luyikei
c5805acccd Remove a duplicate code of else-if statement
I found a useless else-if statement in qwidgettextcontrol.cpp.
It is duplicating.Needless to say,it should be removed.

Change-Id: Ic70b995196f7199e4aa5263a4937c1678b130357
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-03-29 17:31:16 +01:00
Marc Mutz
de10bf4955 QEvent: document and check when registerEventTypes() returns -1
In tst_QEvent, add a check that exhausts the available event type ids and verifies
that registerEventTypes() returns -1 in that case, as documented.

I haven't found a way to test the other case in which -1 is returned.

Since this test operates on a global write-only registry the new test case needs
to keep track of whether the earlier test cases have run successfully. If they
didn't, skip this test case.

Change-Id: I68ea9d17d10dcec22175994aba269dd09c9adf43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-03-29 12:40:05 +01:00
Marc Mutz
396e3a18d7 QNX: don't copy a QStringList twice every loop iteration
Apparently, the function before returned const-&, but now returns by-value.

Use the member data variable directly, the function is const anyway.

Change-Id: I324bc675fd7c9b5bfb28c475eba0c0275379132c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-03-29 12:31:42 +01:00
Konstantin Ritt
e009a3156b Fix build on [older] MinGW
> error: 'REFKNOWNFOLDERID' does not name a type
> error: 'GetKnownFolderPath' does not name a type
> error: 'SHGetKnownFolderPath' was not declared in this scope

REFKNOWNFOLDERID is a typedef for `const KNOWNFOLDERID &` and
KNOWNFOLDERID is a typedef for `GUID`.

Change-Id: I2371f49aba6e20b0bd44aad423dd822e5ee152d4
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-03-29 10:39:11 +01:00
Allan Sandfeld Jensen
f2e6570e4f Fix drawing paths with constant opacity onto PDF
The native PDF strokes can not be used with constant opacity as any
overlapping parts of the path will end up being drawn multiple times
getting the wrong final opacity. A constant opacity should therefore
be treated the same as opacity on the pen color, and trigger the
fallback drawing.

Task-number: QTBUG-37101
Change-Id: I44f70a8b494567ee89804a5fa6333304a5abe91e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-03-29 10:39:11 +01:00
Richard Moe Gustavsen
8cde2faebc iOS: don't scroll towards cursor during touch press
While the user is touching the screen, postpone scrolling
until we get a touch release. Scrolling in the middle of
a touch sequence will change the coordinates under the
touch, and cause some artefacts.

Change-Id: I02ef420abaab780a459f014d4b4cfb75c8fbb725
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-03-29 10:39:11 +01:00
Richard Moe Gustavsen
46acfa5d2a iOS: stop keyboard from reopending after the gesture finishes
On iOS we have set the style hint 'SetFocusOnTouchRelease'. This is in
conflict with the 'hide keyboard' gesture, since a control can
try to regain focus (and open the keyboard) if the gesture ends
on top of it. So we need some extra work-around code to prevent this
from happening.

The correct way would probably be to cancel the touch sequence once
the gesture triggers, but this is not well implemented in Qt yet,
especially in combination with widgets and mouse synthesis.

Since usage of the gesture behaves really bad in some cases (e.g
if using the TextEdit example) we need to apply this for now.

Change-Id: Ib3327c0bd94d722b4c4793bc6d152d6d19810e4b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-03-29 10:39:11 +01:00
Richard Moe Gustavsen
cd1f44a9fc iOS: animate screen from current in-flight geometry
If you show/hide the keyboard quickly while we scroll the
screen, the scroll will appear to jump. The reason is that
the screen animation will start from where the model layer
is at, and not the presentation layer. So specify that
the animation should start from the current state of the
presentation layer.

Change-Id: I3db87ab11aab583eb50784b0c0a03a9a07c8b822
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-03-29 10:39:11 +01:00
Richard Moe Gustavsen
1f82af17f6 iOS: keep keyboard rect in sync
If you resign/become first responder several times
while the keyboard is animating (e.g changing focus between
focus objects while the keyboard is animating), iOS will
short-cut the whole animation, and jump directly to
keyboard end-state. For that reason, we always need to handle
keyboardRectChanged, and not bail out early. This is
fine, since the guard we had was really only meant for
keyboardWillShow/Hide in the first place.

Change-Id: I3a3d1e7061962286c538360029ed38410dc0f347
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-03-29 10:39:11 +01:00
Israel Lins Albuquerque
075c876f9a [QtSql]QIBASE]add support for prepared queries in numRowsAffected
Prepared queries need to be handled as procedures.

Change-Id: I4b4d7743fe45c416ca83ceb942aa48d79731f2f8
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-03-29 08:46:00 +01:00
Christian Strømme
d432091622 Android: eglBindAPI() won't return on certain devices.
On some devices eglBindAPI() will block forever if called before
eglInitialize().

Task-number: QTBUG-37635

Change-Id: Id27f37e3efcd2ff16e97e1f3381ac3ae8ae0ef33
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-29 02:28:43 +01:00
Frederik Gladhorn
0bd8cc831a Accessibility Mac: CheckBoxes need value attribute
Task-number: QTBUG-37921

Change-Id: I305f983f2fd96b52960060351402ff70a62c3a91
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-03-29 00:40:46 +01:00
Frederik Gladhorn
214a3b093d Accessibility: Set checkable state for checkbox and buttons
Change-Id: I8048c223917a8494a6a4d9016870d3a0762758bf
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-03-29 00:40:46 +01:00
Frederik Gladhorn
af2f227080 Fix typos
Change-Id: I5388666f68f44b052b8950741a5d43f951ba4931
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-29 00:40:46 +01:00
Leonard Lee
685f8fe550 Do not rely on the list of standard font sizes for QFontDialog.
QFontDialog should always show the correct size, even if the size
is not available in the list of standard font sizes. Native font
dialogs across common platforms show the correct size at all times.

Inside init() function, the size list requires proper initialization
since the initial value of size is zero.

Task-number: QTBUG-10317
Change-Id: Idc9e922ac95f797ac98bbf6c885e52828c4c48fd
Reviewed-by: Liang Qi <liang.qi@digia.com>
2014-03-28 22:52:19 +01:00
Lars Knoll
c4d8734c50 Avoid out of bounds memory reads when scaling images
The calculation of the width/height required for the
scaling algorithm was prone to floating point rounding
issues, where the lower value got rounded down, the higher
one rounded up. This could lead to a situation where we
iterated over one more line/pixel in the line than we have
in the source image.

Correct this by passing the dimension of the source image into
the function and bounds checking the values before iterating.

Task-number: QTBUG-35927
Change-Id: If44b2235a479224660d508a0504fec40d724763a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-28 22:52:19 +01:00
J-P Nurmi
123ae472e2 Fix disappearing transient scrollbars
When a transient scrollbar is already at the end and user attempts to
scroll further, the scrollbar is "flashed" to indicate that the scroll
area is already scrolled to the end. This is done so that the scrollbar
is first painted with a flag turned on to make it appear visible and
then again with the flag turned off to make qstyle start fading it out.

The previous code that relied on paint events to clear the flag was
error prone, and caused the scrollbars to get stuck in an inconsistent
state. This change makes sure that the flag gets cleared regardless of
whether a paint event in each state is received or not.

Task-number: QTBUG-37787
Change-Id: I907697c32cd4d55208a490804a221a5dd6bf7b0b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-28 20:46:53 +01:00
Paul Olav Tvete
3c6c14c0bf Android: implement batch editing for input methods
Task-number: QTBUG-37584
Change-Id: I59f063b2e4b6427a66f7b561cfae7193ceafa43c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-28 18:04:22 +01:00
Friedemann Kleint
9b28ab3f38 Pass events to QGestureManager from the main (GUI) thread only.
Task-number: QTBUG-20946

Change-Id: I964452c1e97bd3d3a521e33abeb2f7d8cdbc89a9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-03-28 13:14:42 +01:00
Jędrzej Nowacki
d4a8a29e0b Reduce clang compilation time of tst_qmetatype by ~2%
Change-Id: I64fe12dd0bf9c35ae06fc5a68addc36848cdda3b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2014-03-28 13:05:56 +01:00
Tor Arne Vestbø
fb3577039c iOS: Add support for offscreen GL surfaces without using hidden windows
There's no need to create a hidden window to get a surface on iOS, as
the platform supports FBOs. Note that defaultFramebufferObject() returns
0 in the case of offscreen surfaces, which is technically not a valid
FBO on iOS due to the indirect rendering, but binding and rendering
to the zero-FBO seems to be no-ops, so clients may safely call eg
glBindFramebuffer(GL_FRAMEBUFFER, ctx->defaultFramebufferObject())
to restore the default FBO after drawing to its own FBO.

Change-Id: I2e67f5d69c0698562052f5ac1df0bbfaa3337148
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-28 13:01:52 +01:00
BogDan Vatra
4cb0e96505 Android: Convert plain text to html text for native dialogs.
Task-number: QTBUG-37824

Change-Id: I380b41d300b198b6cf3060bbecb5b98e0190b69a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-28 12:50:04 +01:00
Andrew Knight
0ddf86236e d3dcompiler_qt: Directly link the d3dcompiler DLL on WinRT 8.1
The compiler DLL is a system module starting with Windows 8.1, so
directly link to it instead of expecting a packaged DLL. This makes
shader precompilation completely optional on this platform.

Change-Id: I46cd175ac32e4909a518a059721241b1d6e7be17
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-03-28 07:58:47 +01:00
Andrew Knight
993907d299 ANGLE: Don't export DLLMain functions for static builds
These ifdef guards were originally a part of
"0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch",
but were lost during the last ANGLE upgrade.

Task-number: QTBUG-37842
Change-Id: I4340c1641675dd310c14454a851eb4bc0ae2ec0d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-03-28 07:58:45 +01:00
Sergio Ahumada
d688b7c07c Deprecate QFont::setRawName() and QFont::rawName()
We don't support xlfd fonts anymore and indeed QFont::setRawName()
is an empty method.

[Changelog][QtGui] QFont::setRawName() and QFont::rawName() are
deprecated.

Change-Id: Ic52d42a9bc200ba8b246dd4e28c77f84e086dad5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-27 22:02:39 +01:00
Mitch Curtis
3df521dd98 Mark QPoint, QPointF, QRect, QRectF as reentrant.
Task-number: QTBUG-37667
Change-Id: I978a53e075efcfba8898c8e96bce8f19350dd6c4
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-03-27 17:51:21 +01:00
Mitch Curtis
992ed38e4e Fix typos in QFont documentation.
Change-Id: I0e8de5b47ec7b64719f875eecc46cc8ef009642b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-03-27 17:51:21 +01:00
Tor Arne Vestbø
2654fdb346 iOS: Check FBO status and return failure from QIOSContext::makeCurrent()
The Khronos documentation for glCheckFramebufferStatus recommends calling
the function to see if the framebuffer is complete prior to rendering.

We now give more info to clients that call makeCurrent(), by storing the
state of the default FBO and returning that, instead of always returning
true and leaving the clients vulnerable to calling OpenGL functions on a
non-complete FBO.

Change-Id: Ia99c21f811ac799b350f07e73b2ae4b173d71120
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-27 17:51:21 +01:00
Tor Arne Vestbø
98e90f700a Keep track of destroyed QOpenGLContexts in QOpenGLVertexArrayObject
QOpenGLVertexArrayObject saved the QOpenGLContext it was created in at
the point of QOpenGLVertexArrayObjectPrivate::create(), but didn't set
the saved context back to 0 in QOpenGLVertexArrayObjectPrivate::destroy().

The result was that the zero-pointer checks in the VAO destructor never
hit, and we ended up trying to make a destroyed QOpenGLContext current.

This bug was triggered by the QFontEngine having a limit of 4 concurrent
glyph caches, so when we created the fifth glyph cache we would remove
an earlier one, which destroyed its VOA, that referenced a QOpenGLContext
for a window that had been destroyed already.

We now reset the context back to 0, and disconnect aboutToBeDestroyed()
at the point of QOpenGLVertexArrayObjectPrivate::destroy().

Change-Id: Ib16f3877b310144886cf863b16697c137e7c7941
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-03-27 17:51:21 +01:00
Liang Jian
666c25c089 Fix race condition in QOpenGLMultiGroupSharedResource
In QOpenGLMultiGroupSharedResource::value(), the m_resources memeber of
opengl context group will be checked and may be inserted a new value. This
function may be called from different threads with the same opengl context
group object: Think about that OpenGL context A and B are shared, they
live in different thread, and in each thread we call
QOpenGLContext::functions() to the context, that may cause the race I
mentioned above. So I put a QMutexLocker to prevent race condition.

Change-Id: I101a28f46b2af72b3094a9945880efeb3563482a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-27 17:51:21 +01:00
Erik Verbruggen
dd453adbe7 Mac: make FSEvents-based QFileSystemWatcherEngine more robust.
- Record the last event ID with every callback. This event ID is passed
to FSEventStreamCreate when restarting the stream, so the watcher will
receive all events that occurred since invalidating the previous stream.

- Never start with kFSEventStreamEventIdSinceNow, because this will
generate a (bogus) soft-assert in FSEventStreamFlushSync in CarbonCore
when no event occurred since stream creation. The last globally
generated event ID is used instead to simulate the "now".

- Do not dispose and recreate the stream in the callback, but use a
queued signal-slot connection to schedule this on thread that owns the
watcher.

Change-Id: I02f5a845d9e27f9853ed97925ab9c7a5bc0dede1
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-03-27 17:51:21 +01:00
Gabriel de Dietrich
ff3dcc49c4 Cocoa: Don't stop NSApp when showing a modal dialog
We manage embedded modal sessions with a stack and only run
the top-most session. We also stop the last modal session
before starting a new one. However, if there is no modal
session running yet, we end up stopping NSApp. This seems
to cause ill side effects on OS X 10.9. Notably, starting
a new modal session outside QCocoaEventDispatcher, like when
opening a native file dialog, makes this last modal session
impossible for the user to quit.

In this patch, we make sure NSApp is kept running if there's
no modal session running yet, akin to calling QDialog::exec()
at the event dispatcher level. The behavior for ensuing modal
sessions remains unchanged.

Task-number: QTBUG-34677
Change-Id: I6a23b191e4dce18514504b8e953f8caa7fad8731
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-03-27 17:51:21 +01:00
Friedemann Kleint
aa2980d36d Streamline code in standard gesture recognizers.
Always initialize result variable, make static casts to QTouchEvent *
local.

Task-number: QTBUG-37759

Change-Id: Ib48034906afae8090a3be965a11f17d7d119bc5f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-27 17:51:21 +01:00
Friedemann Kleint
225ada44eb Windows: Suppress window state change to normal when going from maximized to fullscreen.
Task-number: QTBUG-35166

Change-Id: Idcf2d2a5fd0dc59f35a287c106ca772d801550c0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-03-27 17:51:21 +01:00
Gatis Paeglis
9bb634a617 Improve keymap error handling
- add QT_XKB_CONFIG_ROOT envvar, this can be used to provide an alternative
  XKB configuration search paths (default XKB configuration root is detected when
  building Qt library). At runtime these paths might change - when dropping Qt
  application binary into a system with different setup.

Change-Id: Ia21a3e7f0339c95793c1f543d1a95b1591e5d8df
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-27 17:51:21 +01:00
Gatis Paeglis
9c326376c9 Add better support for keymap update handling
Use the new X11 support API xkb_x11_* released in libxkbcommon version 0.4.0.

From the commit message where this API was introduced:

"These are function to create an xkb_keymap directly from XKB requests
to the X server. This opens up the possibility for X clients to use
xcb + xcb-xkb + xkbcommon as a proper replacement for Xlib + xkbfile for
keyboard support.

Why not just use the RMLVO that the server puts in the _XKB_RULES_NAMES
property? This does not account for custom keymaps, on-the-fly keymap
modifications, remote clients, etc., so is not a proper solution in
practice. Also, some servers don't even set it. Now, the client just
needs to recreate the keymap in response to a change in the server's
keymap (as Xlib clients do with XRefreshKeyboardMapping() and friends)."

This patch moves XKEYBOARD presence decision from compile time to runtime
for a proper remote X client support.

Task-number: QTBUG-31527
Task-number: QTBUG-32760
Change-Id: I4d402668cda2126ef180b27022154f96b1874b1d
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-03-27 17:51:21 +01:00
BogDan Vatra
bc2e7054ef Android: Change Ministro's source to 5.3
Task-number: QTBUG-37879
Change-Id: If9a3f38a5dc267862a166ac4c8e6940739eab911
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-03-27 17:51:21 +01:00
BogDan Vatra
13b38ac661 Android: registerTouchDevice at startup
I'd like to keep registerTouchDevice from androidjniinput.cpp, touchEnd
as a backup for buggy Android devices that are not setting
Configurations.touchscreen field correctly.

Task-number: QTBUG-36007
Change-Id: Ib8f107474baa278b2d82d9ca14913512dfff01c2
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-27 17:51:21 +01:00
BogDan Vatra
18d031fb18 Don't create screen surface if there are no raster windows.
Change-Id: Idaf5df814bb087707654d7ad7046ba8799f99c0a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-03-27 17:51:21 +01:00
Maurice Kalinowski
bd9f490d45 Disable non-fullscreen windows for WinRT
The integration seems to have been missing this flag. Hence we tried to
open new windows in non-fullscreen mode causing lots of issues. For
instance this resolves QCombobox popup problems.

Task-number: QTBUG-37593
Change-Id: I3d3e3699dff91dcb95613893c2a5bdefc90131b7
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-03-27 16:01:02 +01:00
Jonathan Liu
3c68252bf5 Doc: Fix typos
Change-Id: I720813b126f02d4813c88811316a0fa99961c6d8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-27 15:36:58 +01:00
Yoann Lopes
b3f201b8af Android: use fbo read back workaround with specific GPUs.
Namely, the Mali 400 and the Adreno 200. We used to enable this
workaround only for the Samsung Galaxy Tab 3, which has a Mali
400. The same problem was confirmed with the Samsung Galaxy
Note N7000 (Mali 400) and the ZTE Blade (Adreno 200).

Task-number: QTBUG-33951
Task-number: QTBUG-34984
Change-Id: Ic624962986f718285b98ab4ca48e22f9aa110753
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-27 15:33:35 +01:00
Kai Koehne
e7270b68fe Doc: Update year to 2014
Change-Id: Iae2f31232fb364b26aa4da99048d92c262b4fdec
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-03-27 15:22:33 +01:00
Eskil Abrahamsen Blomfeldt
d1ed2dee51 Android: REG: Fix launching intents
When the launch mode is singleInstance, then intents will not be
launched as activities inside the same task, but as separate
tasks, and onActivityResult() is always called immediately
without any data. This is documented in various stack overflows
and google group messages if you search for it on the Internet,
and the singleInstance launch mode is documented as "not recommended
for normal use". This broke e.g. automatic downloads of Ministro. The
singleTop launch mode seems more like what we're after, and fixes
both the original issue as well as the current problem with intents.

Change-Id: Iab24a654a4433f979064509b1ef721db9ef352af
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-03-27 15:17:33 +01:00
Topi Reinio
ddf2e2367c Doc: Move IPC example documentation
Examples under examples/ipc were not part of any module
documentation. This change adds the above folder to
Qt Core documentation, and moves the corresponding
files so that the example documentation is built
correctly.

Change-Id: If1f34ce7ef04a02df8a87f820bb2e68ffa723dd4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-03-27 15:16:20 +01:00
Mark Brand
ad22303bff update bundled sqlite to 3.8.4.2
The "Fixed CE build of sqlite3" patch is preserved in this change.
(ea70ec8711)

Change-Id: I7da6504a1d1bee7926a122d7c4ec3a2bf4035d03
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-27 14:42:07 +01:00
Fabian Bumberger
74cade1ee4 Fix application font removal when using FontConfig
This patch fixes an issue when a font that was added with
QFontDatabase::addApplicationFont can not be removed any more.
The reason for that is that QFontconfigDatabase::addApplicationFont
adds the font to the FontConfig application set from where it
cannot be removed any more and is picked up every time the font database
is repopulated (e.g. after a call to QFontDatabase::removeApplicationFont).

This also fixes the QFontDatabase autotest which unfortunately does
not fail on linux, because it tries to add "FreeMono" (which in most
cases is already there as a system font). So this patch removes FreeMono
and adds LED_REAL as test font.

Change-Id: I70fc823075923aa426da1eb3e052affcc416e399
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-03-27 14:41:53 +01:00
Fabian Bumberger
3f4277c264 QNX: Fix geometry changed event for non FS windows
For non full screen windows the geometry change event was not sent.

Change-Id: I982621d87fe248bbe13640dd3e17b31fb9f30120
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-03-27 14:41:19 +01:00
Fabian Bumberger
38fc11b74b QNX: Retrieve name of the display
Task-number: QTBUG-34545

Change-Id: I51d36c7352351b0770a1a076bdcc738677d7fcb6
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-03-27 14:41:11 +01:00
Frederik Gladhorn
f16d690a2f Accessibility Mac: Fix handling of top level widget
This simplifies how we handle QNSView for accessibility purposes.
Instead of trying to half-merge the top level widget
(window->accessibleRoot) into the view, just have the view
always return it as child.
This makes the accessibility implementation for QNSView simpler
and makes applications that show a top level widget such as a button
possible. (We would return accessibility ignored for the button before).

As a side effect finding the active focus and hit-testing should be more reliable as
well.
Task-number: QTBUG-37794

Change-Id: Ib52037f88da8887a0bdc77204b0f3daddfe7709d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-03-27 14:37:16 +01:00
Shawn Rutledge
7aec099ca3 OSX: a window can be de-maximized by resizing
After that, QWidget::isMaximized() should return false.

Task-number: QTBUG-37703
Change-Id: Ic8b0de63ab007066cd277f511dfaa969404ff069
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-27 14:35:00 +01:00
Laszlo Agocs
75f9c75f0a Enhance QOffscreenSurface docs wrt the format
Prevent nasty surprises on some EGL implementations.

Change-Id: I0c6c8a6c631d4dcb979afd81a150491a42aa63f8
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-27 14:29:43 +01:00
Andrew Knight
244e2ef7b9 WinRT: Use registerFontFamily to reduce font registration overhead
Adopt to the new lazy font loading strategy in order to reduce memory
and startup time associated with populating the entire font database.

Change-Id: I0134cc123f73cb8485fe85c4a6b8e3b3a3a2cab0
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-03-27 08:19:41 +01:00
Lars Knoll
071098b08b Make QWidget::render() work correctly with all paint devices
Make sure QWidget::render takes correct code paths with all
kinds of paint devices.

Correctly restore the inRenderWithPainter flag. The old code
would not correctly restore the flag, likely leading to
inconsistencies. Remove the unused last parameter in
QWidgetPrivate::render. Remove the special handling
for QPrinter in the same method.

Task-number: QTBUG-26564
Change-Id: Iba43269b090abd8dd88c5225b75e1ee9239d58f9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-27 07:31:37 +01:00
Lars Knoll
5279134935 Reuse one QCollator instance for QString::localeAwareCompare
Constructing a QCollator is somewhat expensive, and made
localeAwareCompare really slow. As QCollator (at least with
the ICU implementation) is not thread safe, use one collator
per thread. This speeds up collation of a long list of strings
by a factor of 250 for the test case in the bug below.

Task-number: QTBUG-36149
Change-Id: I645cdc3546347d1dcc7a03b7563b628c7f756944
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-03-27 07:31:01 +01:00
Sze Howe Koh
cd08d34452 QDoc: Doc: Use correct terminology ("signal" vs. "signal handler")
Change-Id: I0c6cdc77296b8a1a759671bac2c920bc05d0cbcb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-03-26 07:22:35 +01:00
BogDan Vatra
12bd35aa24 REG: Fix window repaint geometry
Task-number: QTBUG-37530

Change-Id: I642c8ef8cf7de50e4a84d8356693b82f8674cece
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-26 07:22:35 +01:00
BogDan Vatra
f1f07eae2d Android: Fix software keyboard show/hide state
Task-number: QTBUG-34831

Change-Id: Ic38334d011ceef2dc75e4fb3fcea48f62aeea757
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-26 07:22:35 +01:00
Eskil Abrahamsen Blomfeldt
0b87f4f6c9 Android: Fix font merging
Our fallback fonts would contain a minimal list of hardcoded fallback
fonts, which is neither sufficient for displaying all text, nor
portable to different vendors which can supply different font sets.

[ChangeLog][Android] Fixed font merging problem which caused e.g.
missing glyphs for Arabic numerals.

Task-number: QTBUG-37738
Change-Id: Ic971343a1cd5610c79a81f6f6152c637937b5626
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-03-25 14:19:27 +01:00
Laszlo Agocs
d668f1be22 Fix regression in minimized state handling
WM_STATE and _NET_WM_STATE are not the same.
c6e271da6d introduces a severe regression
in this respect, making applications on xcb not to follow window state
changes properly.

Task-number: QTBUG-37695
Change-Id: Ia058bc11d5aa988eab513939c9f755c2f77512ee
Reviewed-by: Martin Klapetek <mklapetek@kde.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-03-25 14:00:35 +01:00
Andrew Knight
7f41e56ec3 WinRT: Prevent GUI dispatcher lookup from non-GUI thread
When we create an event dispatcher outside of the main thread, we
shouldn't be looking up the core event dispatcher as it will fail. This
ends up printing a scary warning for all e.g. Qt Quick apps when in
reality nothing bad actually happened.

Task-number: QTBUG-35327
Change-Id: I2060f0a9d4baffc42ca727e8d4e1ef7c13f6a2df
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-03-25 12:59:36 +01:00
Laszlo Agocs
15be1e8c06 Fix up warnings in linuxfb
Remove the warning about the graphics mode switch. In some environments
it just pollutes the output since it will always fail.

Change the errno-based warnings to qErrnoWarning.

Change-Id: Ib7a7bfe64eda29996db288e52d369dcfad76c096
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-25 12:51:05 +01:00
Laszlo Agocs
f254474d71 egl: Remove commented code
Fix also the statement about buffer size handling.

Change-Id: I94e93fa4df7fee9b789ecca33d8722fbfc86ccc5
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-25 12:51:01 +01:00