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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Reserve the insertionPoints vector capacity prior to multiple append()-s.
Change-Id: I97ab5b2a1add9f2e87c04ad0707bf516c13ff4d7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
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>
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>
Setup the GL context as shared with the Qt global share context.
Change-Id: I199cfc7d290466d0ad99294bcffcd738b615862b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
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>
The "Fixed CE build of sqlite3" patch is preserved in this change.
(ea70ec8711)
Change-Id: I163a4bcc92f47838c8203d8f5d78bbdcb0c1fd84
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
"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>
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>
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>
This is the latest version, released on Mar 27 2014. It includes:
https://bugs.freedesktop.org/show_bug.cgi?id=75798https://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>
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>
Use bookcase for the filter name like the rest of the modules.
Change-Id: I9690d0b6a6f3abb11837120da75832475b975b5d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
The trailing slash was missing, which caused the resulting path to be
wrong.
Change-Id: Iaa9dee15e744307c2d438181964b71c412fd9709
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
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>
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>
It has been working in Debian for some time.
Change-Id: Ib5741a4ba68bf95c7020336c84bc66257ff27809
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>
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>
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>
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>
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>
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>
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>
AMD drivers do weird things. Provide a workaround.
Task-number: QTBUG-37909
Change-Id: Idabd6ebb6e1447cb9bd92c7711a50aaa8575b9d6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
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>
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>
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>
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>
> qstring.cpp:5325:1: warning: 'defaultCollator' defined
> but not used [-Wunused-variable]
Change-Id: I29fe2006a678f4f0b3b504b90120c0e99d7090fb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>
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>
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>
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>
The QFontEngineMulti's `base` font engine always non-null.
Change-Id: I5092b66bc839a6a3216ffa0b0afe55a8b62be620
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* 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>
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>
It also has a broken declaration of posix_memalign
Change-Id: Ie8f245564f80b04901425729b46953828204efaf
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
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>
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>
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>
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>
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>
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>
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>
> 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
- 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>
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>
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>
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>
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>
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>
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>
The "Fixed CE build of sqlite3" patch is preserved in this change.
(ea70ec8711)
Change-Id: I7da6504a1d1bee7926a122d7c4ec3a2bf4035d03
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
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>
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>
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>
After that, QWidget::isMaximized() should return false.
Task-number: QTBUG-37703
Change-Id: Ic8b0de63ab007066cd277f511dfaa969404ff069
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
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>
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>
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>
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>
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>
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>
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>
Fix also the statement about buffer size handling.
Change-Id: I94e93fa4df7fee9b789ecca33d8722fbfc86ccc5
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>