For KMS we can always know the correct rate so report it from the backend's custom
screen implementation.
For the rest, query from the framebuffer. If the fb driver publishes the timings then
we can calculate the vertical refresh rate from them. If not, default to 60.
Task-number: QTBUG-44971
Change-Id: I854a34e7c0d652790cc2ac967715828ec76f5733
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
For some reason, the QML/JS parser doesn't like them,
so they must be removed when qdoc parses JavaScript
code. This update handles every case I could find
except jquery.min.js, which is a different problem.
Change-Id: Iacbc4eda554516496a642189368d63d6560e3571
Task-number: QTBUG-44817
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Fix access or uninitialized memory. It is safe in this case, but causes
valgrind's memcheck to complain unnecessarily.
Change-Id: I01ad09d282b07f7099ad6bed85f4327b3c7c677f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Try to prevent crashes on Windows and broken textures on Linux.
Task-number: QTBUG-40653
Task-number: QTBUG-44988
Change-Id: I1fd259ba5ca3980c3087411e1dae1ae56bb2c2e4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The internal state of the input handlers need updating too. This was not possible
in the past due to the one way communication from the input handlers (that are
potentially loaded as interface-less generic plugins), but using our new private
QInputDeviceManager in QtGui we can now easily implement "talking back" from QtGui
to the input handlers, regardless of them being plugins or compiled in.
The rest of setPos() is in place already for eglfs.
linuxfb will be handled in follow-up patches.
Task-number: QTBUG-44856
Change-Id: Id72fdb8b1ea176ddfe082e466e7a538a2a98a005
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
We only ever use one, never both.
Change-Id: Iee8cbc07c4434ce9b560ffff13caf94c05dba338
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
In addition the logic in QGuiApplication that picks the target window for input
events with a null window has to be enhanced to be compatible with how real windowing
systems work: mouse events following a press are delivered to the same window until the
release, even if the cursor has left the original target window.
Task-number: QTBUG-44814
Change-Id: I3fea84ac77a5ccebeae5def64f92d8d2e03d13ff
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
We need to make sure that a large scope ID saved in a QString does get
converted properly back to an integer.
Change-Id: Iee8cbc07c4434ce9b560ffff13c9bd0e9008bd9c
Reviewed-by: Richard J. Moore <rich@kde.org>
Let's make sure we don't accidentally have it wrong in one of the three
versions.
Change-Id: Iee8cbc07c4434ce9b560ffff13c9bcf75ba66a66
Reviewed-by: Richard J. Moore <rich@kde.org>
This is similar to what QPixmapIconEngine does.
Change-Id: I00b9e4083fa03fa0602b8e363055a612791bd149
Task-number: QTBUG-44981
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This deduplicates qmake rules in platformsupport and platform plugins.
Change-Id: Ie9c7d933c4433b96bf502e9753a12faa238b4569
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
To make echo hide all the commands of making the debug file it needs
to use && to separate commands instead of newline.
Change-Id: I6c9b408b897a285b769a402fa4d923c110334504
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Further Split apart Windows CE/Windows code paths to provide 2
implementations of populateFontDatabase():
- The desktop version uses a callback which only
registers the font families using
QPlatformFontDatabase::registerFontFamily() to be
populated on demand later by populateFamily().
- The Windows CE version is unchanged.
Task-number: QTBUG-43774
Task-number: QTBUG-44647
Change-Id: Iad4ec849006a4daf86a5caea9afc89e83ccc7c63
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Since quoting was fixed, separate debug info has no longer installed
correctly because it relied on executing shell commands in the target
name.
This cleans up the generation and installation of separate debug info
by using resolve_target.prf.
Change-Id: I3ee47c0e4dc3de600c42f56b17315a69925c4724
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This is needed by qtx11extras now that we can meet a nullptr QScreen.
Change-Id: I755523cbbbbe188f454bd518d2d86a981542458f
Reviewed-by: Richard J. Moore <rich@kde.org>
When building a module for the first time the paths won't exist as they
are only created when you run "make". However, if you run qmake with
'-r' you need the compiler flags to be available already before that.
Task-number: QTBUG-43175
Change-Id: Ib784c432f29bb8c62b9ef23e59ccb515e1d96f28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The native socket engine sets the socketProtocol to that when it means
it's using IPv6 with v4 compatibility on (v6only = false).
We mustn't have faced problems so far because the multicast tests set
don't test v6only = false.
Change-Id: Iee8cbc07c4434ce9b560ffff13ca0aff60673940
Reviewed-by: Richard J. Moore <rich@kde.org>
The the static cursor methods still need to be compiled.
Change-Id: Ic92eb706af67d3c2645e45cd91cb099c3263a869
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
If a widget which is not a window has a width or height of 0 that
doesn't mean we don't have to invalidate its backing store. On the
contrary, the backing store must be invalidated in order to clear stale
contents from previous paint events.
A window, however, can be completely ignored if it shrinks to 0 as the
window system will take care of it.
We don't have to clear the attribute for non-windows, either.
In Qt4 we use the Qt::WA_OutsideWSRange attribute only for widgets
which are windows when determining what to do with a geometry change.
See qwidget_x11.cpp or widget_win.cpp in Qt4.
Task-number: QTBUG-42727
Change-Id: I3655737057b803ad4b92601a9851055a81bd4b6d
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
The return type was not printed, for \qmlmethod commands used
in QML files. The parameter types and default values weren't
being printed either. This update corrects those problems.
Change-Id: I68301fb2040c9dc5f5650e7dd3fee9c42197e3f7
Task-number: QTBUG-44064
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Suddenly :(( With Security Framework v 7.0 dated by 17/02 SSLHandshake
works differently when our server socket is requesting a client side authentication
and client provides no certificate. Despite of kTryAuthenticate (this means,
auth. _can_ fail) server receives an error from SSLHandshake too early.
We have to handle this in startHandshake (when serveMode && canIgnore).
Change-Id: Ie55540078e2944e80cf2f4ade8b000acf29d6ca2
Reviewed-by: Richard J. Moore <rich@kde.org>
Fixes the drawn position of end points in drawLine.
Based on a patch by Jørgen Lind, and modified so that
it caused no test regressions.
Task-number: QTBUG-38144
Change-Id: I24aa28480cc6ae09abf91d80378970565a29b254
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
This was motivated by a real segfault:
#0 QScreen::handle (this=0x0)
at qtgui-5.5.9999/work/qtgui-5.5.9999/src/gui/kernel/qscreen.cpp:112
#1 0x00007faaf5d5e85e in QXcbNativeInterface::connectionForWindow (this=this@entry=0x7fab04d684f0, window=window@entry=0x0)
at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:483
#2 0x00007faaf5d5fa53 in QXcbNativeInterface::nativeResourceForWindow (this=this@entry=0x7fab04d684f0, resourceString=..., window=window@entry=0x0)
at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:304
#3 0x00007fab048b8b57 in QX11Info::connection ()
at /var/tmp/portage/dev-qt/qtx11extras-5.5.9999/work/qtx11extras-5.5.9999/src/x11extras/qx11info_x11.cpp:358
#4 0x00007fab02ce14c6 in NETEventFilter::nativeEventFilter (this=0x7fab04ea5e70, ev=0x7faaec003a60)
at kwindowsystem-5.7.0/work/kwindowsystem-5.7.0/src/kwindowsystem_x11.cpp:229
...at which point I tried to stop playing the
get-backtrace-patch-rebuild-repeat cycle and looked at the stuff which
looked fishy to my untrained eye. So this is speculative in nature, but
I think that each of these cases can be hit and dereference a nullptr.
Change-Id: I046debaa1b49fa55e876247fc62f3eb924496fe8
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Changed cornerarea to be visible only if both scrollbars are visible.
Removed unused Q_DEAD_CODE_FROM_QT4_MAC hasMacSizeGrip case.
Task-number: QTBUG-44084
Change-Id: I4f240268902fa42496befd3754133145d28d4ad6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Since we use CoreText API to populate the font DB, we
should also make sure we use consistent data when doing
queries.
This partially reverts and ameds b619c35d85.
Change-Id: I6a3470fbee719ae1ea3085c252a4870040b9af1a
Task-number: QTBUG-41487
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
On devices by some vendors (Android 4.4+), the default UI theme
will have translucent system UI which is placed on top of the
main activity layout. When this is unexpected, it may lead to
the system UI overlapping with the application's UI on these
devices. By default we tell Android to account for the system UI
in the main activity's layout, so that the window contents are
positioned outside of it. This is done with a new outermost layout
which is just used to size the QtLayout correctly.
Since there is a use case where people explicitly want translucency
on the system UI and have adapted its contents to accommodate for
this, we supply the android.app.allow_overlapping_system_ui setting
which can be set to true in the AndroidManifest.xml to override the
default behavior.
[ChangeLog][Android] On devices with translucent system UI, Qt's
window is now positioned to avoid overlap with this by default.
This behavior can be overridden in the application's
AndroidManifest.xml.
Change-Id: I2b34e948f3bd655f883f30b0419d9c6ba69242be
Task-number: QTBUG-38700
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
When showing a QWindow, we transfer first responder status to its
QUIView. If another QWindow was active with a text responder at
that point, the text responder will loose first responder status
in favor of the new view, and the keyboard will hide.
Now, if the new window has a focus object with the same IM state
as the previous focus object (in the previous window), m_imeState
will not change, and QIOSIntegration::update() will assume that
nothing needs to be done to show the keyboard, even if it's
actually hidden.
This patch will change the logic, so that we:
- show the keyboard if its supposed to be visible, even if
m_imeState did not change.
- Only recreate the text responder if it needs a different
configuration than the one we already got (not only
from changes to Qt::ImEnabled)
Task-number: QTBUG-40695
Change-Id: I6f6788af4cbff5c7abe4f5a29e23a7cefea6b711
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
MSVC creates .lib file when ever dll with exports is built. Remove
this file too in distclean target.
Task-number: QTBUG-44685
Change-Id: I84ecb57626926b5bce06a200ff2b705fd2117686
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
We now have support for more complex exclusive builds configurations,
e.g., on iOS with simulator and device configurations, so we can't hard
code the logic for choosing the right exclusive build to test.
Change-Id: I358687b297b7bf1eb28eef0ef0aaf44b89860404
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
QGuiApplication sets options passed to the plugin through -platform
as properties on the QPlatformNativeInterface. To handle those we need
to inherit QPlatformNativeInterface first (which is the QObject
subclass), and include the Q_OBJECT macro.
Change-Id: Ia496851c64cbb0036c26e7ed0683d0ecfa8319cc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
It's pretty easy to forget to run qmake from a vcvars prompt. Doing so
causes the UUID to get persistently written as empty, breaking the
vc project.
Change-Id: I5badb31ad4f606abbe8c71979019e097c748e07a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Peng Wu <peng.wu@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
We need to track the active popup globally, having
parent windows track child popups is not sufficient
since there may be one or more intermediate windows
in between the event receiving window and popup window.
Add API to QOCocoaIntegration for tracking the global
popup window and use it instead of the per-window
tracking. Make sure to only close popups on clicks
outside the popup only. Add code to QNSView::handleMouseEvent
that redirects mouse events to the active popup.
Add manual test.
Change-Id: Ia3e3fd42d8fddf5c69f0c6879b333ca544521f61
Task-number: QTBUG-43464
Task-number: QTBUG-31937
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
qdoc's QML parser has fallen behind the QML: parser in
QtDeclarative. Bring it up to date.
Change-Id: I12a688873564762434852960350c56655004e460
Task-number: QTBUG-44868
Reviewed-by: Martin Smith <martin.smith@digia.com>
In case the loadGlyph() was called for a glyph to fetch metrics only,
loadGlyphFor() never fetches the data for that glyph
but returns a non-null result.
Change-Id: I2b258c4b7880059d41dc02f1e5a43903706d3888
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
and only cache non-scalable glyphs in defaultGlyphSet
if a requested transform is translation.
Change-Id: I49d936736871bd455e573335c014ddefe8bb915e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
And avoid conversion when the cached FT transform could be used.
Change-Id: I9f6bf0a6c6fa166092de698f3ddbbf203e2b3820
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QFontEngineMulti expects the fallback families list to be initialized
prior to the first call to engine(int), however in some scenarios,
the initialized and cached engine gets destroyed and re-created later,
with no fallback families list set, which causes an assertion.
Change-Id: I8d19cc91f3a067f6bf77b36bd87010dd967b4c49
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This was easy to hit with KDE Plasma 5.2.1; KWindowSystem called
QX11Info::appRootWindow() which in turn tried to dereference a nullptr
returned from QXcbConnection::primaryScreen().
#0 QXcbConnection::rootWindow (this=<optimized out>)
at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbconnection.cpp:1303
#1 0x00007fc26da096d7 in QXcbNativeInterface::rootWindow (this=this@entry=0x7fc27d1734d0)
at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:425
#2 0x00007fc26da0ab21 in QXcbNativeInterface::nativeResourceForIntegration (this=0x7fc27d1734d0, resourceString=...)
at qtgui-5.5.9999/work/qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:223
#3 0x00007fc27c563148 in QX11Info::appRootWindow (screen=screen@entry=-1)
at qtx11extras-5.5.9999/work/qtx11extras-5.5.9999/src/x11extras/qx11info_x11.cpp:158
#4 0x00007fc27a98c444 in NETEventFilter::nativeEventFilter (this=0x7fc27d425b60, ev=0x7fc264004ad0)
at kwindowsystem-5.7.0/work/kwindowsystem-5.7.0/src/kwindowsystem_x11.cpp:192
#5 0x00007fc2795d0a8a in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>,
eventType=..., message=message@entry=0x7fc264004ad0, result=result@entry=0x7ffc96ecf348)
at qtcore-5.5.9999/work/qtcore-5.5.9999/src/corelib/kernel/qabstracteventdispatcher.cpp:460
#6 0x00007fc26d9ea941 in QXcbConnection::handleXcbEvent (this=this@entry=0x7fc27d173580, event=event@entry=0x7fc264004ad0)
at qtgui-5.5.9999/src/plugins/platforms/xcb/qxcbconnection.cpp:971
Change-Id: I98a5d767cd7e143f00666f6fc78e9dc10893513d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QVarlengthArray is not a good data structure when you need
to dynamically append to it without knowing its size in advance,
as it reallocates on every append. Use a QVector instead.
Task-number: QTBUG-44737
Change-Id: I68eab11eacd8368e94943511874aead823a149ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>