Commit Graph

6812 Commits (689a1e186b76853144802d9c29f0346856bd5fde)

Author SHA1 Message Date
Andy Shaw 6108d8f515 ibase: Silence warning about incompatible function types
Task-number: QTBUG-68330
Change-Id: I1bb272ec647f9fb5f67f67f04600e51409ebd40a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-06-06 07:18:36 +00:00
Sergiy Korobov 7b79798275 Fix QWindowsWindow::requestActivateWindow()
QWindowsWindow::requestActivateWindow() does not work correct if
QWindowsWindowFunctions::AlwaysActivateWindow is passed as a parameter
to QWindowsWindowFunctions::setWindowActivationBehavior().
When the calling process is not the active process, only the taskbar
entry is flashed. It is not correct. The window should be always
activated, even when the calling process is not the active process.

Task-number: QTBUG-37435
Task-number: QTBUG-14062
Change-Id: I7a321d7bac744a7776278210b1b5a2fd4288aa43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-06-05 14:41:21 +00:00
Tor Arne Vestbø a15db3a81a iOS: Guard all uses of APIs not available in application extensions
Change-Id: Ic058a0c07f6cdd0a015f46db96fce1536a712711
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-06-05 12:24:05 +00:00
Tor Arne Vestbø 8058380904 macOS: Manually compute frame rect for zoomed/maximized state
We cannot rely on AppKit to compute the zoomed frame for us, as it will
not allow borderless windows to be zoomed, and also has bugs in corner
cases with multiple screens, where the zoomed window jumps from the
current screen to a nearby screen.

The latter happens when the zoomed rect overlaps more with a nearby
screen than it does with the current screen. In this case AppKit zooms
the window on the nearby screen, but this is unexpected from the user's
perspective, who zoomed the window on the current screen, so we make
sure to always keep the window on the current screen by repositioning
the window correspondingly.

Task-number: QTBUG-67543
Change-Id: I8762c5cbf2e3b317a6caf11d820712596e15114a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-06-05 12:10:16 +00:00
Gabriel de Dietrich 23ae05cf68 QMacStyle: Fix clipped arrow in QToolButton
A quick and reasonable fix is to make sure the arrow fits in
SC_ToolButtonMenu returns. In the future, we should keep the
arrow's actual size and offset the icon accordingly.

Change-Id: I218fa7726efbe4576a72889c41685de87ac14ac1
Task-number: QTBUG-68517
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-06-04 16:44:25 +00:00
Gabriel de Dietrich 0866fe2079 QMacStyle: Fix QComboBox left contents margin
Change-Id: I89a5e0c271bdaced8440e123c63c5435fa725856
Task-number: QTBUG-68518
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-06-04 16:44:16 +00:00
Sergiy Korobov 94f249977c Fix QWindowsNativeInterface::platformFunction()
QWindowsWindowFunctions::setWindowActivationBehavior() does not work
because QWindowsNativeInterface::platformFunction() is broken.

Task-number: QTBUG-37435
Task-number: QTBUG-14062
Change-Id: Id5688316654ea8ad47d5c68894c376cb83e3583a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-06-01 07:30:31 +00:00
Tor Arne Vestbø 7e2177464f macOS: Allow moving out of fullscreen state using titlebar button
Even if the window isn't configured with Qt::WindowFullscreenButtonHint,
the user might call showFullScreen(), which we respect and move the
window into fullscreen. In this state, we need to keep the collection
behavior as NSWindowCollectionBehaviorFullScreenPrimary, otherwise the
zoom button will have no effect and the user can't move out of fullscreen.

Change-Id: I77a4b4ee4b42fabc4c6ed2f529ff57acc31d6c24
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-05-30 23:12:32 +00:00
Tor Arne Vestbø 286c153583 iOS: Handle application state for application extensions
Change-Id: I97df0f8ecf93e28bfbe9c719922f1ee5ec12b563
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-05-30 09:46:39 +00:00
Joerg Bornemann 9f27bfb31a Make sure we can build with -no-feature-draganddrop
We move QInternalMimeData to a separate file, because this class is
used, even if draganddrop is disabled. From now on, include
qinternalmimedata_p.h instead of qdnd_p.h for QInternalMimeData.

Change-Id: I594e08e2e90d574dc445119091686b4b69e4731b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-05-29 18:31:35 +00:00
Tor Arne Vestbø dd8e73504e macOS: Respect maximum window size when computing zoomed state geometry
AppKit will normally compute this automatically based on the
contentMaxSize property of the NSWindow, which we set correctly
based on the window's maximum size, but since we ignore the
frame proposed by AppKit (due to not working for borderless
windows), we need to take the maximum size into account ourselves.

We follow the lead of QCocoaWindow::propagateSizeHints(), and
interpret the window's maximum size as referring to the client
area size, not including the frame geometry, but AppKit expects
the NSWindow's frame, so we need to manually add the frame.

In addition, AppKit expects the frame in the native coordinate
system, so we need to map to it. This was an existing bug, that
never manifested before taking the maximum size into account.

Task-number: QTBUG-67376
Change-Id: Id4cf6ff5640610f809472e5b1d591b4ec17df602
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-05-29 10:54:21 +00:00
Tor Arne Vestbø 0b1342f374 iOS: Send window-system event also when embedded in native iOS app
The iOS event dispatcher has been split into two; one dealing with the
QPA event processing, which we should always do, and one dealing with
the longjumping that we do when running the user's main on a separate
stack.

Change-Id: I1f819db33c608aad130ff23cbbadcf84363a32d2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 5414d372d4)
2018-05-29 10:53:11 +00:00
Tor Arne Vestbø dc55000140 iOS: Don't assume our UIWindow is a QUIWindow
Change-Id: I6494e4a476273b131aedcf409abdb1ffffa5b62e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit ab9b026d27)
2018-05-29 10:53:10 +00:00
Andy Shaw 8d19afcc81 ibase: Don't use deprecated QSqlError constructor
Task-number: QTBUG-68330
Change-Id: Ie6ece8574462699fca401139ea00f1925b0a440b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-05-18 12:46:59 +00:00
Andy Shaw b0f3cc1594 sqlite: Allow for duplicated placeholders with just one placeholder
This accounts for a case of a placeholder being duplicated in the
prepare query, but where only one placeholder was used. This amends
e4e87a2ece

Task-number: QTBUG-68299
Change-Id: Ia92ee912facd51a13e7222886debb219b24442b0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-05-16 11:42:25 +00:00
Alexandra Cherdantseva 9c707f140e Windows Platform: Redirect wheel event to a window under mouse cursor
Revert a part of af5c8d04fb
which affected mouse wheel event redirection.

Task-number: QTBUG-63979
Change-Id: Ice88675aadbb8a7477b3758a607db5979d62562c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alexandra Cherdantseva <neluhus.vagus@gmail.com>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-05-16 09:02:40 +00:00
Friedemann Kleint b145201128 Windows QPA: Fix wrong initial size when launched on secondary screen
Send changed events from QPlatformWindow::initialize()
synchronously so a protentially changed screen takes
effect in QWindow::resize() called by QWidget::show_sys().

Task-number: QTBUG-67777
Change-Id: I889500d458caf0e782bdbc237ce790f0b0bc2d95
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-05-16 08:23:42 +00:00
J-P Nurmi 410b943516 QMacStyle: remove unused qlibrary.h include
Fixes build with -no-feature-library, because the qlibrary.h header
contains QT_REQUIRE_CONFIG(library).

Change-Id: If64ece8bd77e8824b86dc91f95dd9062cb2a1644
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-05-15 08:14:06 +00:00
Jan Grulich d55165b9c4 Fix filter parsing in flatpak FileChooser portal
Filters are usually in format (Name (*.foo *.bar)), but valid filter is
also (Name ( *.bar *.foo )), containing additional spaces. When we split
content in the brackets divided by spaces, there will be then empty
strings which we need to filter out, otherwise the result we send over
DBus is not valid.

Change-Id: Iaa265189408f47324bc9b269d534bf4c8d7d2cae
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-05-15 08:06:17 +00:00
Tasuku Suzuki fefe5cdf0c Fix build without features.cursor
Change-Id: I450bd9f160c64f718c49e87d274c1ccc4a657aca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-05-15 00:42:15 +00:00
Qt Forward Merge Bot 552c45bea9 Merge remote-tracking branch 'origin/5.11.0' into 5.11
Change-Id: Id6e2acd5e31c1ac858ddf1d8873a6f10694141de
2018-05-09 13:48:42 +02:00
Joni Poikelin 3a912e92bb Fix building with -no-feature-shortcut
Change-Id: I7576055a6d81d6a7a075ebff16ca6b0ced4e984e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-05-08 06:15:43 +00:00
Tasuku Suzuki 8f7dcba204 Fix build without features.timezone
Change-Id: I3f8421103afa61baf415636b4dc8cf93fb477bcc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-05-08 01:59:08 +00:00
James McDonnell e67671d7cb Generate more Windows/Linux-like Qt keyboard events
The QKeyEvent::key values were significantly different on QNX
and some QKeyEvent::text values were also different/missing.

Also makes it possible to enter numbers via the numeric keypad.

Change-Id: Ifcf6284b99a893a87974d37ec6d6976f88241e61
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Dan Cape <dcape@qnx.com>
2018-05-04 13:12:14 +00:00
Richard Moe Gustavsen da32360ffc macOS: ensure mouse events from the global monitor has the correct button set
The global monitor will be used when popup windows are visible to
catch all mouse events. But only certain kind of NSEvents has a
buttonNumber set to something useful. So we need to check for
this case before we create a QPA event.

Task-number: QTBUG-60887
Change-Id: I5631c76ae82b8bfd232642036a08b5a8a29491c7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-05-03 08:14:05 +00:00
Timo Aarnipuro cc812f516c Configure window manager to support RCar D3
Initialize the device earlier and enable the screen as well.
These changes are also compatible with the RCar H3.

Change-Id: I4a83dedc0eed9df181c32e60ebf3666824d2a6c6
Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-05-03 05:55:45 +00:00
Andy Shaw 3e001feb4d If the page size is not valid on the new printer, set a custom size
When the page size was not valid on the new printer, it would end up
having the wrong page size name on the new printer. What should happen
in this case is that it should set the originally set page size as a
custom page size on the printer instead.

Task-number: QTBUG-62221
Change-Id: Iaca34ae262f5d0685ca60e4ca4b38229a2283289
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2018-05-02 13:32:09 +00:00
James McDonnell 01c12a5c1a Feed external geometry changes to Qt
So that Qt responds correctly when window managers make geometry
changes.

Note: Older versions of screen, such as the screen from the QNX 6.6.0
4036 patch, don't produce SIZE/POSITION property events.

Change-Id: I7e1e5982a2cbd3f57d468b43869af8558c6d50e7
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2018-05-02 13:01:58 +00:00
James McDonnell 5ea238cda6 Add screenContext native property
Retrieving it via some other screen object can be painful especially
when there isn't a readily available screen object to use.

Change-Id: If13e808435ea6f2909d5b4c3c5c736950e00aa5a
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2018-05-02 13:01:39 +00:00
James McDonnell 8bcb8b069e Flush the initial clear blit with SCREEN_WAIT_IDLE
Without it, the clear runs asynchronously and screen may clear
pixels _after_ Qt updates them.

Change-Id: I0c0844676d8a4387439a2f818ee08942ccaf6b08
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2018-05-02 13:01:27 +00:00
Tor Arne Vestbø 6257ccd4b8 macOS: Don't trigger deferred needsDisplay when using timer-based requestUpdate
We've reverted to using the default timer-based request-update mechanism
for now, so the code in [QNSView updateRegion:] needs to ensure it's only
triggering a deferred needsDisplay if requestUpdate was done via the
(now disabled) [QNSview requestUpdate], which uses setNeedsDisplay.

Task-number: QTBUG-68048
Task-number: QTBUG-68047
Change-Id: I0421a32773908daa0f1be0075f4f2d25c90c8aea
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-05-02 12:30:54 +00:00
Mathieu Velten 23b139038a xcb: round down the scale factor for values < 0.8
This solves huge UI on some (most ?) HD 13 inches that have
a calculated scale factor around 1.75.

Task-number: QTBUG-53022 QTBUG-57211
Change-Id: I6cc22d3e47d38cb1d5a0daf5646a936256664e48
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-05-02 09:31:39 +00:00
Stephan Binner 364bd6ca74 Convert features.toolbar to QT_[REQUIRE_]CONFIG
Move declaration of pick/perp helpers up the dependency chain

Change-Id: I7084ed829a057a0c45d60445c416fb07f2cb5624
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-05-02 09:07:03 +00:00
Frederik Christiani c127fc83ad Show high DPI custom cursor on macOS
Set the devicePixelRatio to 1 on the scaled down pixmap.
A scaled down version of the high DPI pixmap is added to the NSCursor in
addition to the high DPI one, but the devicePixelRatio must be set
correctly on the smaller of the two for macOS to pick the right image
to use on a high resolution display (retina).

This change also fixes the problem that only a high DPI custom cursor
with a hotspot in the upper left quadrant is applied by macOS. I suspect
that the NSCursor was discarded by macOS, because the hotspot was
outside the device independent bounds of the smaller scaled image.

Task-number: QTBUG-52211
Change-Id: I7e552e8f62f5255dd3786da44b2f619f6790c37a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-26 08:56:32 +00:00
Friedemann Kleint 1b1fd81a81 Windows QPA: Add missing calls to keyboard initialization
Add calls to changeKeyboard() to the QWindowsKeyMapper constructor
and the handling of WM_INPUTLANGCHANGE so that the locale is
correctly initialized and changes are processed.

Change-Id: Ia30d8c6434ca85165e4882240ae16f9a75dcf4ff
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-04-25 07:42:55 +00:00
Friedemann Kleint f7980f4eda Windows QPA: Fix handling of VK_DECIMAL/VK_SEPARATOR
Remove the hardcoded mapping from the key table for fallback keys
since the keys are locale-dependent.

Task-number: QTBUG-57992
Change-Id: I016ab5f7f7e8abfd30f6416d2e7597db7deecb9b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-04-25 07:42:43 +00:00
Morten Johan Sørvig 0f6a6b2bff Cocoa: Don’t starve the event loop on requestUpdate()
Some of our examples, and perhaps also some applications,
call requestUpdate() immediately after producing a
frame. This can cause Cocoa to immediately start
(trying to) draw a new frame without processing e.g.
input events.

This should (and will) be handled by rate limiting
updates with CVDisplayLink. In the mean time fall back
to using the base class QPlatformWindow implementation,
which is implemented using a timer, which will allow
for input event processing.

Change-Id: Ic2541f344b2f4018d785404a06274959a7bad2df
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-04-24 19:48:50 +00:00
Gabriel de Dietrich c7eb2c173e QCocoaFontDialogHelper: Fix NSFontManager delegate warning
According to Apple's documentation, there's no delegate
in NSFontManager. We set its target instead. The action
is changeFont: by default.

Change-Id: I8c01bfa97c78dd8097f38c27353748d13f51489f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-04-24 19:46:14 +00:00
Gabriel de Dietrich 143cf9e467 QCocoaWindow: Fix handleMouseEvent() compilation warning
qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm:408:53: warning:
      'handleMouseEvent<QWindowSystemInterface::DefaultDelivery>' is deprecated [-Wdeprecated-declarations]
                            QWindowSystemInterface::handleMouseEvent(window(), window()->mapFromGlobal(localPoint.toPoint()), localPoint,

Change-Id: Ifbf8c46e31a1de2089ce0e16cec087fdd9adb64e
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2018-04-24 17:42:53 +00:00
Friedemann Kleint 994e0e4c36 Windows QPA: Fix Korean IME removing words when using CTRL shortcuts
Ignore the WM_IME_ENDCOMPOSITION message in that case.

Done-with: Tobias Koenig <tobias.koenig@kdab.com>
Task-number: QTBUG-58300
Change-Id: I9506754a149905222a324b85634964fce398d3ac
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-04-23 12:57:43 +00:00
Friedemann Kleint a38c46ad85 Windows QPA: Fix ambiguous shortcut overload warnings for ALT-keys
Use the match with the least modifiers (prefer Shift+9 over
Alt + Shift + 9) resulting in more missing modifiers.

Task-number: QTBUG-67200
Change-Id: I90463c0dfaadda29dcd24a08ba35c91fac8bd04c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-04-20 21:37:39 +00:00
Friedemann Kleint a0a22037cd Windows QPA: Fix duplicate/missing native events
Add utility functions to QWindowsContext input messages sent to
native event filters (event dispatcher and window system interface).

Do not send input and similar events to the event dispatcher since
QEventDispatcherWin32::processEvents() also sends them.

Note though that QEventDispatcherWin32 does not receive all windows
messages.

In QWindowsKeyMapper, send the WM_CHAR/WM_IMECHAR events from
where the messages are removed.

Task-number: QTBUG-67095
Change-Id: I5f61294fcb3aee7e0eacd840a2010d128cd02a5d
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-04-20 21:37:27 +00:00
Oswald Buddenhagen cf204590ea Merge 5.11 into 5.11.0
Change-Id: I11c61dc1259ed66d871ecab2666085ccf37a9342
2018-04-20 12:21:57 +02:00
Allan Sandfeld Jensen 0c51b832f5 Also support reset notification on non-nvidia
In 5.11 robustness was added for nvidia drivers, this patch extends
that to other opengl drivers, and fixes the reported format.

Change-Id: Ia81934c3bcf13e7300fb4e75674ea63317039870
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-19 07:43:54 +00:00
Andy Shaw 34e34f2209 iOS: Use the non deprecated application:openURL function
In iOS 9.0, the original application:openURL function was deprecated
and replaced with a newer one. As iOS 9.0 is no longer supported we can
safely switch to the new one. This is also required to prevent a crash
when the LSSupportsOpeningDocumentsInPlace and UIFileSharingEnabled keys
are set to true in the Info.plist file.

Change-Id: I59a7ee82e3ddb2777ef78e28b964ef8666c629af
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-04-18 19:44:37 +00:00
Gabriel de Dietrich 0c936d7411 QCocoaPlatformTheme: Fix tooltip background color
It use to be yellowish in the past, but modern versions
of macOS show it light gray.

Change-Id: I8cca5cbb37c73a6dfc79e633a746b9a7d7bced05
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-18 17:22:29 +00:00
Gabriel de Dietrich e991fd4802 QMacStyle: Fix SC_ComboBoxEditField rect
Change-Id: I851e4bb1e0177ef5c594328c717e58ec7c9494e3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-18 17:22:20 +00:00
Gabriel de Dietrich 85cb183488 QMacStyle: Fix appearance of selected inactive tab bar button
Because we use toggle NSButton for selected tabs, the inactive
appearance doesn't follow what NSSegmentedControl would have
shown. Therefore, we fall back to our good old habits, i.e.,
render on a pixmap and do some pixel transformations.

Change-Id: I838a2f23abee5846219ba67328c79fa8cc359a9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-18 17:22:13 +00:00
Gabriel de Dietrich 48900145a4 QMacStyle: Clean up code, remove dead bits
Change QMacStylePrivate::drawNSViewInRect() signature
to remove all the unused parameters.

Reuse recent tab direction functions where appropriate.

Includes the infamous outter -> outer fix.

Change-Id: I8f92d79d8a6c3b5903bfbb13293afb6f72a5340b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-18 17:21:54 +00:00
Jan Arve Saether be4eaca053 Do not ignore MenuItem on macOS
The idea was probably to ignore it since macOS already provides
accessibility for a menu item in its native system menu. However, a Qt
Quick Controls2 Menu will instead show a non-native menu, which should
not be ignored.

Task-number: QTBUG-63522
Change-Id: Ib5ae16ad991ebd7a18fa73b8f576f20b1c14d4c8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-04-18 13:28:44 +00:00
Tor Arne Vestbø e0e1c7ec2d iOS: Trigger manual layout of root view controller when coming out of background
When rotating the device when the application is in the background iOS will
ask the root view controller to layout its views when then foregrounding the
application, but at that point the application state is still in the suspended
state, meaning we block any view resizing or rendering.

To ensure the views are resized correctly, we trigger a manual layout after
the application comes out of the suspended state.

Task-number: QTBUG-67719
Change-Id: I1ef0a4133d4b94edaac7b0f3cb4e49e367eb76d4
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-04-18 11:32:11 +00:00
Gatis Paeglis d5ac11891d xcb: prevent crash with pixmap cursors on XRender-less X servers
We were using xcb_render_* APIs without checking if the server even
supports this extension. Attempting to use an extension which is
not present will always result in a crash. This patch adds the required
guards and refactors how we detect presence of XRender extension.

Also instead of falling back to some odd-looking bitmapped version
just leave the current cursor unchanged. That is how we did it in
Qt4 AFAICT.

Task-number: QTBUG-66935
Change-Id: I4f27f1d65a77563ec34f3e0e94492c9236d7f9a6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-14 17:03:10 +00:00
Gatis Paeglis 7286d9d8dd xcb: fix bitmap cursor loading performance regression
... introduced by 422838685c.
Instead of completely droping caching for bitmap cursors we can do
the same what is done in libXcursor - have a fixed size cache, with
oldest entries eventually being replaced with new bitmaps. This
fixes the original issue, where the hash was growing indefinitely
until running out of file descriptors and won't have the performance
penalty as in 422838685c.

Task-number: QTBUG-66897
Change-Id: I14f80b46f97fd0e2c920e17a31ffbc0441cd9d22
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-14 17:03:01 +00:00
Gatis Paeglis cba414a26b xcb: cleanup the code for detecting when to create/destroy SHM segment
- removed the check for "m_segmentSize > 0" as according to the code it
will never be <= 0.

- wrap the entire logic in connection()->hasShm() { .. } as that is when
the logic becomes relevant. This makes the code more readable.

Change-Id: I572420df8e29cc46593f8a13c250f8c05c6a9108
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-14 17:02:53 +00:00
Oliver Wolff a8906e3510 winrt: QWinRTEGLContext: add isValid functionality
QPlatformOpenGLContext::isValid always returns true
but it is possible that creation of the context fails
in QWinRTEGLContext. This case should be reflected in
isValid because other places (like QOpenGLContext::isValid())
rely on it and not having proper information about the
validity of the context might lead to crashes.

Task-number: QTBUG-67568
Change-Id: If989ca47cdf7b27c44961beee5d97a4647184b0a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-04-13 12:16:54 +00:00
Gabriel de Dietrich 38a16b8be0 QMacStyle doesn't depend on Carbon anymore
We also remove the old documentation file that is now
mostly outdated.

Change-Id: I32c9c6b0984be5e41653a92b0b9287a89f73ee38
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 16:39:34 +00:00
Gabriel de Dietrich 375dd7ad34 QMacStyle: CE_TabBarTabShape is now HITheme-free
This should be the last bit of QMacStyle depending
on HIToolBox APIs.

Small and mini sizes support coming later. Same
for the focus ring.

Change-Id: If625fccb87ebd0607b96a8c5040888df5a2a1032
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 03:49:12 +00:00
Gabriel de Dietrich c3d2862ed3 QMacStyle: SE_TreeViewDisclosureItem is now HITheme-free
Change-Id: I34f1325adc661edde7bba7d7374bc8cfb80900ae
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 00:22:54 +00:00
Gabriel de Dietrich 7c86719566 QMacStyle: PE_FrameTabWidget in now HITheme-free
Change-Id: If14e67bdae41099bb87fe2d7c4f65926d325766b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 00:22:48 +00:00
Gabriel de Dietrich 4b9e6b65c9 QMacStyle: Remove cached focus ring drawing
We go for direct drawing for now. Some of the logic was
a bit sketchy, and we need to measure how useful is caching
and eventually compatible with the focus frame animation.

Change-Id: Id30a68f77a4129197536e8ca251906ee8a730925
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 00:20:48 +00:00
Gabriel de Dietrich 91fa300cbe QMacStyle: CC_ComboBox is now HITheme-free
For the time being, no more stretched QComboBox. They
were already looking bad before and nobody complained,
so it's a non-issue. In the future, we might use square
combo boxes in the same way as we do for push buttons
but for non-editable QComboBox only.

Removes what is now dead code, including some leftovers.

tst_QMacStyle updated to reflect size changes to accom-
modate the focus ring.

Change-Id: I60fac86b9acb52cc96373bca0b3cad598ec4f1e7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-12 00:20:42 +00:00
Dmitry Shachnev a35c6a49c9 glx: Fix loading OpenGL library when libGL.so symlink is missing
Task-number: QTBUG-67537
Change-Id: Ib59bc27582f44b0c6b04efa57c44d877e1685bbb
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-04-10 19:57:51 +00:00
Tor Arne Vestbø 49a760e454 iOS: Remove sending of duplicate touch events after broken merge
The merge in 0f315adf91 resulted in keeping both code paths,
in effect sending two touch events for each native touch event,
and also re-introduced the bug fixed by sending the touch events
asynchronously in some cases.

Change-Id: Id81f02d9597f4e0baeaddbdf9057fa32b6c31b2f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-04-10 08:59:12 +00:00
Andy Shaw ef2d1e3970 Extend the MariaDB define check to cover the later versions too
Change-Id: Ide89b4e07feb116bf152cbf3f5630d313e8ba0f1
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-04-10 08:07:51 +00:00
Gatis Paeglis 89ab15ac91 xcb: various coding style cleanups in qxcbbackingstore
- Pass QXcbBackingStoreImage a pointer to QXcbBackingStore. This
allow for simpler QXcbBackingStoreImage ctor.

- Use member initializers.

Change-Id: Ia992390060bb30e1184813cd0d115a8bf0fbc237
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-09 16:31:06 +00:00
Gatis Paeglis 315327f3d6 xcb: rename two classes in qxcbbackingstore
QXcbShmImage to QXcbBackingStoreImage as it is an image that
might or might not have SHM capability. The current name implies
that it always uses SHM.

QXcbShmGraphicsBuffer to QXcbGraphicsBuffer as it has nothing to
do with SHM.

Change-Id: I57ced75891e8b10515142769278a7f3f40da91ef
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-09 16:30:50 +00:00
Andy Shaw ec23d96c86 oci: Use OCIBindByPos2 to accommodate data longer than USHRT_MAX
OCIBindByPos2 is only needed when using execBatch(), binding data that
is longer than USHRT_MAX works for exec() so this is left unchanged.

Change-Id: Ifdcf91939d184f225d24c13052ea0b81611ecf91
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-04-06 12:44:37 +00:00
Jan Grulich 470a50375a Avoid multiple connections to same response in FileChooser portal
When not specified, xdg-desktop-portal keeps using same Request object
over and over when returning response, causing multiple connections
to same slot on same DBus object. While this is not problem when using
FileDialog just once, it is a problem for QML FileDialog which is
usually reused. For this purpose x-d-p provides handle_token option
where you can specify token to be used when creating Request objects.

Change-Id: Ie6569700c48e05fcefa4d5c22c921410f87ea7ae
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-04-06 05:07:05 +00:00
Gabriel de Dietrich cff9142942 QMacStyle: Fix "on" toggle button text color
Change-Id: I344c63debdcf012a16305f1b2124e8ad0785d982
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-04-05 21:03:57 +00:00
David Edmundson 63a433f6c8 Make nvidia resets opt-in based on QSurfaceFormat::ResetNotification
We can't be sure every user will check the return value from makeCurrent
and reset appropriately.
Even though after a reset a user will be left with the same garbage as
before, it's safer than a potential infinite loop.

Change-Id: I5b328c654ad2a89c5b8c4399e2eb38150f4f384b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-05 19:57:09 +00:00
David Edmundson f1fc449016 Support graphics reset status for offscreen surfaces in XCB-GLX
I originally didn't to match the ANGLE code, however it's important for
all surfaces to be able to know to reset if their makeContext fails.

This is espcially relevant on some Linux nvidia drivers which has a bug
where while(glGetError()) won't ever clear whilst a reset is in
progress.

Change-Id: Iae3502168cda748c601a9aee1497e40c6d82cd83
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-04-05 14:50:51 +00:00
Friedemann Kleint 2823cc6d4b Windows QPA: Fix override cursor not working when re-entering the window
Return early from QWindowsWindow::applyCursor() when an override cursor
is set.

Task-number: QTBUG-67467
Change-Id: I0d3ceead8bbbd3c6295c216a944a1ef15b6f8190
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-04-05 09:00:51 +00:00
Jarek Kobus ab7d48625a Fix read-only text browser sometimes jump to the top of the document
Respect the inputMethodAccepted() attribute of QPlatformInputContext in
the ibus input context plugin. This is what for example the windows
input context plugin does, too.

A text browser that is read-only should not receive input method events
that include a cursor placement. So when it receives the focus, we must
only convey the received-focus information to the input method if the
widget is editable (or accepts input method events generally speaking),
because as soon as the ibus process learns about it, it will send an
input method event that looks like a "let us reset the state a clean
start and place the cursor at the beginning" message. We are not
interested in reaching that state with the ibus process.

Task-number: QTBUG-63066
Change-Id: I1b0e5f8a396bc31169d6081f9325092b447cf60a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-04-04 08:53:35 +00:00
Morten Johan Sørvig 306df144b4 Cocoa: Make QMacNativeWidget paint correctly
QWindows with transparent pixels (of which QMacNativeWidget
is an example) must be composited, even if they are
content views.

This will display the NSWindow background instead
of solid black for the areas where the Qt backingstore
has transparent pixels.

Change-Id: Ibee1327e11bc64975900b4c5d632dd5f103da4c8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-04-03 06:03:40 +00:00
Mauro Persano 2e496e9322 Windows: handle multiple transient children when closing windows
On Windows, we must update the transient children of a window that's
about to be destroyed or its transient children will be destroyed as
well. This is already being done in the case of a single transient
child, but there are still problems when there are more than one.

Change-Id: Ib0de6767bf43dca508ecdb87cbdfedb59e9146e8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-29 15:07:45 +00:00
Jürgen Hunold ee6164942d Allow compilation with clang-cl disguised as cl
Task-number: QTBUG-63512
Change-Id: I7e0c4e144262a175c39508090c935c73186fac65
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-28 18:18:05 +00:00
Gabriel de Dietrich e83f1900f6 QMacStyle: Fix spinbox implicit height
We don't need to accommodate for the fake frame anymore.

Change-Id: I2d84441d4239e1ff68f640dffda1a0d1a97fa2b3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:44 +00:00
Gabriel de Dietrich 857e73e042 QMacStyle: Fix text color for disabled default buttons
Change-Id: I7c6ba0c3818a3e269e0350153cbde355bafd249a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:39 +00:00
Gabriel de Dietrich 76bec0c49a QMacStyle: Remove CT_ToolButton related dead code
sizeFromContents() just adds 10 points to the tool button
size and returns. Therefore, the HITheme code that used
to be shared with CT_PushButton becomes effectively dead.

Change-Id: Ib0519b0037ec3097a00e2c14067d851040853499
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:32 +00:00
Gabriel de Dietrich 50428e9727 QMacStyle: SE_PushButtonContents is HITheme-free
This also removes a few HITheme-related functions that
are no longer needed.

Change-Id: I356938d1e99f5fed106c945a94050fa35db58716
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:27 +00:00
Gabriel de Dietrich 2562fe35cf QMacStyle: Do manual button sizing for CT_PushButton
We guarantee the same sizes as previously with HITheme
for most common cases. Exotic cases may break and will
be fixed along the way.

Change-Id: I3e3e6ea702c7489c1cbaa821a30916f63c440c1f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:21 +00:00
Andy Shaw 7775eb248a sqlite: Support using execBatch() with duplicated named placeholders
Also expands the tst_qsqlquery::batchExec() test to account for this
case and generally test the functionality. In addition it is made to be
more robust to avoid any discrepencies with the testing data. The test
in general is also cleaned up to enable more of it being tested with
the different database drivers where possible.

An expected fail is added for MySQL due to the fact that it has a bug
where null timestamp entries are being converted to the current
datetime when adding it as a bind value.

Change-Id: I0061bd1c69ae35b4858afc49420f13ce59cf48ae
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-27 16:50:19 +00:00
Christian Ehrlicher 69948f4899 QSqlResult: use QVector<int> instead QList<int> for indexes value
Minor tweak: QList<int> is taking 64bit per entry, QVector<int>
only 32bit - this should reduce memory usage a little bit.

Change-Id: I3e17269feb4840343f5cecfc71f8fccd70edc80f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-23 17:03:23 +00:00
Gabriel de Dietrich fae42e1e73 QMacStyle: Don't highlight square buttons text when pressed
Native square buttons keep their text black when pressed or on.

Plus using the QStyleOptionButton variable over the QStyleOption
one where appropriate.

Change-Id: Idba8197e64d408e8a0987f1ef9243fde08e3e839
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:25:24 +00:00
Gabriel de Dietrich b8dc00ea4b QMacStyle: Refactor button sizing
We prepare for a better world without HITheme.

Sadly, we can't guarantee Cocoa will be good enough as a
replacement. So, expect more hardcoded values and margins.

Change-Id: I915906b5dbfbfbfc8c7f5c3224fc0ed98562bb9f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:24:56 +00:00
Gabriel de Dietrich 3e665c8df8 QMacStyle: Make CE_PushButtonBevel square if large enough
Meaning, if larger than the size of a regular NSButton.

No intermediate size square buttons anymore. We'll try to get
the closest one later, once the sizing problem is solved.

We also refactor the button creation code a bit.

Change-Id: I965520469546aea596cd1abec2309b40d70399ce
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:24:35 +00:00
Gabriel de Dietrich bec1e609ec QMacStyle: No more HITheme for CC_ToolButton
As for CE_PushButtonBevel, sizing is still pending. These
two seem to go together anyway.

Change-Id: I631c3f32ba201b16adbfa264a2920bfb636fb86f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:24:12 +00:00
Gabriel de Dietrich e3561dbda0 QMacStyle: No more HITheme for CE_PushButtonBevel
For rendering only. Sizing is still pending and, consequently,
square buttons since these depend on the button's intrinsic size.

Change-Id: Iacadc02a1a75970b221543b32ca724c92e118ce1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:24:05 +00:00
Gabriel de Dietrich 3691c41115 QMacStyle: Make CocoaControl a full type
And one small code clean-up.

Change-Id: I57c71ce2e18c95529ee45ba4fdfc68e21209e384
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-22 21:23:59 +00:00
Pasi Petäjäjärvi 14157a1a3e Add env variable to set QNX screen debugging information
Enables different QNX Screen graphics system information
as overlay.
Following are valid options for the env variable:
* fps, posts, blits, updates, cpu_time, gpu_time, statistics

More info:
http://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.screen/topic/group__screen__debugging_1Screen_Debug_Graph_Types.html

Change-Id: I8cbee44de31bb2aaf3892a063769f4740027242b
Reviewed-by: Adam Treat <adam.treat@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
2018-03-22 13:37:10 +00:00
David Edmundson ee54df0311 Support GLX_NV_robustness_video_memory_purge in XCB-GLX
Nvidia doesn't handle suspend very well in Linux and textures get
corrupted. To handle this Nvidia has a bespoke extension to query when
this has happened.

This patch checks if graphics have been reset and invalidates the
surface.

Task-number: QTBUG-56610
Change-Id: I0b97d539ce6cc2b9cfe41c71bf6efd4f68496cd6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-03-22 08:23:18 +00:00
Andy Shaw f4435d2d5c offscreen: Check that native interface is valid before using it
If the offscreen platform plugin is used on Windows then it can end up
crashing since there is no native interface. This prevents a crash from
occurring when these functions are called.

Change-Id: I526fc0703771fa5f85b26d182ad3b15ef1a3ada5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-21 18:11:49 +00:00
Marcel Krems 5f66486cc2 Fix crash when deleting a QSqlQueryModel after closing the database
Task-number: QTBUG-66553
Change-Id: Ib5c04ebe5ac2b7581613e0044804072eb0980b2e
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-21 13:50:43 +00:00
Nathan Collins 992f673782 macOS: Handle NaN mouse event positions
When performing gestures such as Exposé or Mission Control with the
mouse button down, the position of the mouse release event is
returned with NaN values. This causes
QGuiApplicationPrivate::processMouseEvent to be called recursively
and ultimately crash.

Task-number: QTBUG-67194
Change-Id: If1536bc4dc2075c498cdd6c5afe57c86bdaac13b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-21 10:45:47 +00:00
Morten Johan Sørvig 45c62aae4b Cocoa: Restore resizable window mask setting to 5.9 behavior
This should be tied to the CustomizeWindowHint flag:
if that flag is set we start out without NSResizableWindowMask
and possibly add it later on if WindowMaximizeButtonHint
is set.

Change-Id: I7e826d4bd357a8a17c60cfef948af25d61b66ebf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-21 10:25:55 +00:00
Sergio Martins fc8fd50816 Fix subpixel rendering on Windows/FreeType
FT_LCD_FILTER_H wasn't defined because we weren't including the header.
To fix it just remove the checks, as was done for Linux and assume
sub-pixel is there. If it's not then no harm done, it won't use any.

Change-Id: I76f50cb17e41621c45c03cb7d5c75c110557ea68
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-20 21:16:22 +00:00
Ulf Hermann 5a4787dca0 Modernize the "regularexpression" feature
Use QT_CONFIG(regularexpression), disentangle it from QT_BOOTSTRAPPED,
switch it off in the bootstrap build, remove the #ifdefs from
qregularexpression.{h|cpp}, and add QT_REQUIRE_CONFIG(regularexpression)
to the header.

qregularexpression.{h|cpp} are already correctly excluded in tools.pri
if !qtConfig(regularexpression).

Change-Id: I21de154a6a118b76f99003d3acb72ac1e220d302
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-03-20 08:19:25 +00:00
Lars Knoll 83c01a5909 Fix display recognition for IBUS
The parsing of the DISPLAY environment variable was wrong,
and only worked by accident for DISPLAY=':[0-9]'.

Task-number: QTBUG-62068
Change-Id: I6860e3907c9b1ad6e538d1b5d08628cd306b4aa1
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-20 07:52:52 +00:00
Friedemann Kleint 1cb439dc94 Windows QPA: Fix potential crash in leave event handling
Add a check for window != nullptr.
Amends af5c8d04fb.

Task-number: QTBUG-67101
Task-number: QTBUG-57864
Change-Id: I2bbbbe514fc494fd569d0932d508c53c0544f665
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-03-20 00:36:20 +00:00
Andy Shaw e4e87a2ece sqlite: Prevent a crash when sqlite does not detect any parameters
When using a virtual table inside a SQLite database it is possible that
it does not report the right number of parameters. Therefore we need
to account for this case to prevent it from crashing when trying to
bind parameters it thinks does not exist.

Task-number: QTBUG-66816
Change-Id: I3ff70bb1fe73091f43c3df53616f75858e451cfd
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-17 23:14:14 +00:00