This fixes a recent regression following the integration of
change:
7cc1656fef21e6bdc044968a79f0a41155357c29
(Make sure menu bar has a parent window ...)
As it now consistently crashes on mac in several of the
Qt Quick Controls examples, it is critical that it gets into
the release branch.
Change-Id: If3db1025229a7f7fd4e7ecc703d5f655db73964d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
One less obvious part of this patch: the fontCache pointer in engineData was not
safe. It isn't safe to rely on pointer addresses to verify we're cleaning up the
right thing, as a sequence of malloc()/free()/malloc() can return the same
pointer, and nothing was cleaning up the dangling pointer in engineData.
With this, it is possible to safely drop OpenGL contexts in QtQuick under all
conditions with no possibility of crashes.
Done-with: Aaron Kennedy <aaron.kennedy@jollamobile.com>
Change-Id: I7b91384251593730124323a74737d41333a05f59
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
On BlackBerry the first window shown is treated as root window and
should be displayed full screen. The geometry has to be adjusted
properly to achieve this.
Task-number: QTBUG-34930
Change-Id: I6c011620116cc463e16dd352521b2b901a9f9f69
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
The ShowIsMaximized and ShowIsFullscreen style hints were not granular
enough to build a default behavior from that would be correct for all
platforms. The recent Android patch that excluded dialogs from being
shown maximized (Ia249e93dbbea1) has now been moved into a platform
override in the Android integration plugin, leaving other platforms
to the default behavior of using the style-hints. We still special
case popup-windows though, as that behavior has been there for a
while.
Task-number: QTBUG-34969
Change-Id: Id36346d71bfc46171383ffe334592ca0b94e456f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The dockwidget's toplevel window would be a parent of the container's
window when floating. When plugged back into the mainwindow the
dockwidget's window is destroyed and the container's window along
with it. Added a function toplevelAboutToBeDestroyed to unparent
the containers window before this happens so parentWasChanged will
work correctly.
Change-Id: I06679cfb3a8fa3834c0db0be5973c012b8277275
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
It breaks down when the view-controller is fullscreen and we want to
take statusbar height into account as well. Unfortunately we can't
use constraints either, as it's iOS6+.
The approach of managing the geometry manually is closer to what
Android does as well.
Change-Id: Ib521ba0f50b110c440ab68aacef5a524d5d41154
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Instead of hard-coding it to assume the properties of the main/device
screen.
Change-Id: I94c978d4334cae5be9d1094a0c315031e54e8e1f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
As tested and assumed by tst_QWindow::isActive().
Change-Id: I8d09263ce0acc9c3390a70b4089396257197a1be
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We might have more of them in a multi-screen setup or when implementing
support for modal windows using sub-viewcontrollers.
Change-Id: Ibe98273a13af981fffe2704a2c05bfd9d3f3e9e0
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We don't want platform behavior for whether or not maximized/fullscreen
windows can be resized to affect the test for resize event propagation.
Change-Id: I8c118733ca5d2553aacf24d0b8debeb1a4e27103
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
introduce XPLATFORM_MAC which is properly initialized from the spec
instead of from the host.
use that and BUILD_ON_MAC where appropriate.
minor bug: during command line arg validation we use BUILD_ON_MAC even
when XPLATFORM_MAC would be in order, because the latter is not
available at that point yet. the solution would be delaying the
validation, but that doesn't seem worth the effort now.
Task-number: QTBUG-33896
Change-Id: I63f361212961bfdd82efde2ca71a1f48904a85fb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
... which is right after performing the platform detection, as proper
license checking needs to know the target platform.
we can do that now, as we moved all more expensive or side effect laden
processing to a later point.
as a side effect, we also get rid of the weird early cmdline parsing.
Change-Id: I0fda0a15a1ea2082603f7097e89aa422853f30fa
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
is the only sane thing, and now that there are no dependencies on
anything else any more (in particular anything slow or side effect
laden), we can actually do it.
this removes some nasty OPT_HELP checks spread throughout the code, thus
further reducing data dependencies.
Change-Id: Ib0a00e1514e2aa25ec3b527ba9f5719e3214640b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
constexpr requires inline functions. We convert more member functions
to inline functions while retaining a version of those functions
inside QtGui. This prevents any BC breakage.
Change-Id: I325b78da6b41611bda3994869f474c700b6fb306
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QBBSystemLocaleData emits qwarnings when it fails to open or read a pps object.
If the user code installs a message handler that will invoke QLocale API again
(i.e QDate, QDateTime, ...) which leads to a deadlock situation, since
the QBBSystemLocaleData global static object's ctor() is not yet done.
This patch logs the QBBSystemLocale's warnings to stderr and
skips the Qt message handler.
Change-Id: I3d51f85761253e09b14a44179dd14a887733b392
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This mechanism is used by QtWebEngine to extract the platform GL
context. In the QNX case, the platform context is an EGL context, so
the resource you need to ask for is the "eglcontext". Compare to the
xcb native interface which has a similar implementation already.
Change-Id: I873eaadf96898abb24de347ac624c88cd54254cb
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
When you move a dockwidget from one screen to another then it needs to
be kept at the same position on the new screen, i.e. with the mouse
pointer. This fix ensures that this is happening including when the
screens may not 100% align up with each other.
Task-number: QTBUG-33369
Change-Id: If414effdd0e0415629ca31a86f8bbe382dd29f80
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Whenever a window gets blocked, then the qt_button_down variable should
be reset as it is not going to receive the release event for the mouse.
This fixes problems with the mouse cursor not being updated when moving
over widgets (such as QLineEdit) after a dialog is shown in response to
a press event.
Change-Id: Idfd072eaf36f51b816a0b2a0391cdc447d7a5d9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
the help would echo the defaults adjusted by command line overrides and
environment variables for some options. this was entirely pointless.
it also printed the result of the os detection, which was mostly
useless.
but the primary reason for doing this is reducing data dependencies,
so the code can be moved up.
not touching the windows configure, as it's a lot harder and currently
that behavior isn't in the way of what i need to do.
Change-Id: Ide62119091c8494fb3bea2b607f140268f057919
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
it's counterproductive to do it earlier: it's passed down to configure
tests, which then log less info than they could.
but primarily, this serves the purpose of minimizing the amount of code
executed before platform detection.
Change-Id: Iff19b8555de19d048ea6d9341af965871b314c54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
minimizing the amount of code executed before platform detection.
Change-Id: Ib2c0d97ce5040ced8c4c41d74f428fe7d0f75664
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
it's entirely pointless to flood the user with information and force him
to scroll back when he most likely just made a typo.
apart from that, this reduces the data dependencies, thus easing further
refactoring.
Change-Id: I7b24274d453de54a4f02481a66d77e27d4ab0657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
moving dead code out of the way of further refactoring.
Change-Id: If558406cdf13d61478634dd7eff644dc67b0e53d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
have this option independent code out of the way before starting option
processing.
Change-Id: I5a08caeb25689b155c256ef82505c000112f5039
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Give processes a more complete environment (openSUSE
requires more variables to start an X11-process),
add test column indicating whether a test is
supposed to crash. If it is not, report crash reason.
Change-Id: I1e0ad59824963f69ee425f331d845741be2b3928
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The code was using the "long" type when a 32 bit type was actually
needed. This can cause bugs in those systems where "long" is 64 bits
wide, such as Linux x86-64 (which is LP64).
Task-number: QTBUG-34861
Change-Id: Iab289b2af3847dd62d8b4ecea51896936ca4c7a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
... so it will be found when included. That file was added with
commit 3b6b615334,
"export QT_NO_<foo> equivalents to the build system"
Change-Id: I38208aafe5b274d5976cec5d5149a41e6a963798
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Be more rigorous about checking if we're in a session before invoking IMF functions. In
particular the code would call initEvent if a key was received while no text field had focus
leading to a crash.
Also closeSession is now always called when a session is terminated rather than just
setting sInputSession to 0 and hasSession is always called to check for a valid session.
Change-Id: I22ce1c9bcdf8dd130f05ae319c4cc1e01afc4456
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
When clicking on a widget currently focused, w/o having Qt::ClickFocus
set as focus policy, the focus should stay on the widget and not get
propagated to the widget's parent.
Task-number: QTBUG-34042
Change-Id: I53f1153829cc7228de02a90e38125b5cf4ee5008
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>