Commit Graph

7755 Commits (7cbe1ca33da54cf2b6c8494bad39b6570f798014)

Author SHA1 Message Date
Johan Klokkhammer Helsing 0bdded64ac eglfs_viv_wl: Clean up the wl_display
Task-number: QTBUG-74879
Change-Id: Idb39a39a10bccb1822bdb80343fbe1b5c92560e9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-04-10 06:12:54 +00:00
Qt Forward Merge Bot ff88e20b83 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I44eda44bf424fdcffab048a2534905d6162e5559
2019-04-10 01:00:08 +02:00
Friedemann Kleint b1709bdc72 Windows QPA: Fix Drag and Drop of images onto MS PowerPoint
Use the PNG format only for transparent images.

Fixes: QTBUG-64322
Change-Id: I5e02132ca446876e20fcf46f2ef8daa599e85e71
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-04-09 19:45:43 +00:00
Dmitry Kazakov 534df5a33b Fix QTabletEvent::uniqueId() when Qt uses WinInk
A new 'pointerId' is assigned to the stylus every time it enters
tablet's proximity. But applications expect this ID be constant,
at least during one application run. Therefore, it needs to use
'sourceDevice' instead.

Basically, WinInk doesn't have an ability to distinguich two
different styluses connected to the same tablet. We cannot do
anything about it, it is supported only in WinTab.

Task-number: QTBUG-74700
Change-Id: I8328f1e5102b037b370082e69e965ab68b487882
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-04-09 09:51:26 +00:00
Friedemann Kleint 8045ccc382 Windows QPA/File dialog: Pass up http[s] URLs
The native Windows allows for typing in http[s] URLs directly (without
checking existence). Pass these up.

Fixes: QTBUG-71785
Change-Id: I60237bab596ca3f52e6f513f17544ff94e9080da
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-04-08 18:44:42 +00:00
Andre de la Rocha 8957cb2682 Windows QPA: Fix mouse button reported in non-client events
The current mouse buttons state was being retrieved from WPARAM
for all mouse messages. However, for non-client messages this
parameter contains unrelated information, which resulted in
non-client events reporting incorrect button state. Changing it to
retrieve state using GetAsyncKeyState() for non-client messages,
like in the legacy mouse handler implementation.

Fixes: QTBUG-74649
Change-Id: Ia246164208707072e584dd521697e9d31d3e65ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-04-08 15:04:56 +00:00
Qt Forward Merge Bot ce7f14d2e0 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iec860bb703f983b7438e67c695b9c454e72b3e0f
2019-04-06 01:00:08 +02:00
Friedemann Kleint df7eec6bcb Windows QPA/File dialog: Refactor code copying non-file shell items
Remove the canCopy() check which is not required and pass up the error
message. Remove special characters and use the base name of the display name
which can be an URL.

Task-number: QTBUG-71785
Change-Id: I22966cb8d1f5bca0bbca71cf3ebe66e4ede1a747
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-04-05 10:28:00 +00:00
Qt Forward Merge Bot 0998a9d1d5 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I010a6322d12e038fdce247a58dfb05e204c2ff3b
2019-04-05 10:57:24 +02:00
Morten Johan Sørvig e227c33455 wasm: improve event coordinate handling
targetX and targetY are canvas-local coordinates,
while Qt generally works with window-local and global
coordinates.

Add coordinate mapping calls where needed and make
sure we pass correct coordinate types to Qt.

This starts mattering when we have canvases which
are not located at (0, 0).

Change-Id: I28563310ca17d0cc5535317cff99fcd82d3723db
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-04 09:30:02 +00:00
Morten Johan Sørvig 7bae1bd5cb wasm: hide canvas text caret
Another side effect of setting contenteditable on the
canvas. Seen on Firefox.

Change-Id: I789ba4d7e6fbbdbf14b66fe1ae57183ec04e04bb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-04 09:29:50 +00:00
Friedemann Kleint ab47587856 Windows QPA/File dialog: Avoid UI hangs caused by empty results
Typing in invalid URLs results in empty result lists.
Emit rejected() in this case.

Task-number: QTBUG-71785
Change-Id: Ia257b85a5c4370227f753752f6a473bbb3a054be
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-04 08:28:07 +00:00
Qt Forward Merge Bot f80b7995f3 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia7328524f2cd9d5995ac8705f0fe0bf570b2e831
2019-04-04 01:00:07 +02:00
Tor Arne Vestbø accf7ce024 macOS: Disable explicit layerContentsPlacement
It was needed to allow lazy resize of the backingstore IOSurfaces, but
that feature hasn't been enabled yet, and explicitly setting the layer's
contents placement to NSViewLayerContentsPlacementTopLeft resulted in
the layer animating when the window was moved from screens of different
scale factors.

We need to investigate this further, but in the meantime fix the
visual regression by disabling the explicit layer contents placement.

Change-Id: I63ea1eab9cf3fa6480e88844918ed98e6aa72620
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-04-03 08:01:28 +00:00
Morten Johan Sørvig f99fe9cee9 wasm: implement QDesktopServices::openUrl()
Call window.open(url, ”_blank”) for a new tab.

Change-Id: I227904f905262c7aedd086203ed816b53f66359c
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-02 11:19:47 +00:00
Allan Sandfeld Jensen 0683bbc67c Fix remaining Q_DECL_OVERRIDE instances
Change-Id: I512ea5a6c8cf2928b276af7f83f00a1df5879595
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-04-02 10:48:29 +00:00
Qt Forward Merge Bot 2f8dcdf93c Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-04-01 23:08:25 +00:00
Qt Forward Merge Bot ffe9c395dc Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia5d893e57deb78bc32e2053a5a79543ff847fe32
2019-04-02 01:00:26 +02:00
Morten Johan Sørvig 81ed119da1 wasm: make windows fullscreen by default
(fullscreen as in use the entire canvas area, without
showing window decorations)

This is a better default for Qt on the web where window
decorations are not common. We also avoid the “window
close” trap, where there is no way to re-open a closed
main window.

Change-Id: Ie0fbf6ada3f49244bee765ea882acb473809e715
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-01 20:24:58 +00:00
Dmitry Kazakov e453222414 Fix tablet jitter on X11
We should get the correct stylus position from the valuators,
not from the X11-provided global position. Global position is rounded
to the nearest FP16 values, which is not enough for smooth painting.

[ChangeLog][Platform Specific Changes][X11 / XCB] QTabletEvent
coordinates now come from AbsX/AbsY valuators in the X11 event, in
more precise 32.32 fixed-point format, scaled to fit the virtual
desktop.  It's possible to revert to using the legacy 16.16-format
event_x/event_y coordinates as in previous releases by setting the
QT_XCB_TABLET_LEGACY_COORDINATES environment variable.

Task-number: QTBUG-45375
Fixes: QTBUG-48151
Change-Id: Ie701446b3586296bcb8fb09158f387ba6a7cbf07
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-04-01 14:36:47 +00:00
Timur Pocheptsov 409e3eab09 QMacStyle - fix PE_InticatorTabClose handling
for the case a custom style sheet is in use and QStyleSheetStyle
replaces the widget (close button) with its parent (QTabBar).
We still need this button though to compare against tabButton
on a hovered tab. This allows us to have, indeed, native-looking
tabs as documented (aka similar to Safari or the "Terminal" application).

Change-Id: I53ff78699e705db6d7c7b84774b8e188a1277535
Fixes: QTBUG-61092
Fixes: QTBUG-74689
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-04-01 14:11:25 +00:00
Andy Shaw 6ccbe7ffdf macOS: When a menu item has an italic font it should respect this
Change-Id: Id8d2c5c0d0407ead66700d38634f342f489a2842
Fixes: QTBUG-69489
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-04-01 13:10:55 +00:00
Morten Johan Sørvig 69beb5f5a0 wasm: add resizeCanvasElement() API to qtloader.js
HTMl does not have per-element resize events, which
means Qt has not way of knowing that a canvas has been
resized and that the canvas buffer size should be updated.

Depending on the use case, the hosting JavaScript code
that caused the canvas resize could also inform Qt
that the canvas has been resized. Add API to do this,
which calls the existing canvas/screen resize implementation.

Other solutions taken/not taken:

- browser window resize events: these are available,
and we install an event handler in qwasmeventtranslator.cpp.

- DOM mutation events: would detect changes to the
the size attributes themselves, but not if the size
indirectly changed, e.g. “width: 100%” depends on the
parent width. Not implemented.

Change-Id: Ib324bb30f523e9fceea68000b95bf857a1d36b6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-04-01 07:18:05 +00:00
Morten Johan Sørvig 73db765aaf wasm: support adding and removing canvases at runtime
Add qtloader API:
  addCanvasElement()
  removeCanvasElement()

These functions call the corresponding add/remove screen
functions on QWasmIntegration.

Task-number: QTBUG-64079
Change-Id: I537c11f3b5fb9240cca9b6313dd45f803d865ac6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-04-01 07:17:58 +00:00
Qt Forward Merge Bot 0a7302abbc Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I9935bacae0d6ba532418fc3d28adbc7ca1463604
2019-03-30 01:00:07 +01:00
Kai Koehne 1a707be8b4 Do not look for pg_config, mysql_config in PATH when cross-compiling
Otherwise it can happen that we pick up the tool for the host system,
which will break compilation.

Users can still pass
 -psql_config /path/to/pg_config

or
 -mysql_config /path/to/mysql_config

manually.

[ChangeLog][QtSql] When cross-compiling pg_config, mysql_config
are not looked up in PATH anymore. Pass -psql_config path/to/pg_config
or -mysql_config path/to/mysql_config to explicitly enable PSQL or
MySQL in this setup.

Fixes: QTBUG-73565
Change-Id: I35ff32322bac69f1575ce6c846a56ac2ae3b8d55
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-03-29 11:43:19 +00:00
Qt Forward Merge Bot b176a6a159 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia3591d7288bac3bf441f27e486d35e2c5c481993
2019-03-27 10:28:55 +01:00
Timur Pocheptsov a868942b11 QMacStyle - workaround NSButtonCell (disclose button type)
Under the 'Dark' theme as a system one, in an application forcing
'Aqua' (and thus 'Light') appearance, disclose button (drawn as
a triangle) can suddenly become transparent (apparently selecting
a 'Dark' codepath internally). Different ways to fix this (attaching
NSButton to a view, setting appearance on this button manually, etc.)
- all seems to have no effect. We resort to manually drawing this
button on macOS > 10.14 if 'effectiveAppearance' is 'Aqua'.

Change-Id: I6f54c0c4cf8fdd1ba53263ba9535e3055be46d42
Fixes: QTBUG-74515
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-27 05:59:21 +00:00
Morten Johan Sørvig f4ac50a838 wasm: Use common “qt” prefix for exported functions
Prevent namespace collisions and make sure Qt functions
are grouped together.

Change-Id: I217188ee93e4300e273d10a79d6014179fc5a1ef
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-03-26 10:26:51 +00:00
Friedemann Kleint 8f1acd29e4 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I71cc71881fb638e207d83a8733bad8f267701c0f
2019-03-26 08:27:02 +01:00
Lorn Potter 945198fd23 wasm: update depreciated getElementById
Change-Id: Ibef29f0fd2cb2012a05400a855cb4985f9164d92
Fixes: QTBUG-74601
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-25 23:12:55 +00:00
Morten Johan Sørvig 98b3321e6f wasm: disable threaded rendering
Enabling makes QtQuick to attempt to access window.devicePixelRatio
[via QWasmWindow::devicePixelRatio()] from a web worker.

Change-Id: I957df29060c7eb8c47d02bc67c8c5c2219b570f4
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-03-25 20:50:17 +00:00
Yan Shapochnik 2fedce8ed8 QMacStyle: Fix QTabWidget document mode on macOS Mojave dark mode
Fix styling and positioning of QTabWidget tabs on macOS Mojave while
using dark mode

Change-Id: Ibe0c90b7625c4f4ff895083fefaade74305ba0ea
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-25 15:48:53 +00:00
Yan Shapochnik efb74002c5 macOS: Use the correct text color for QPalette::ButtonText color role
Fixes the text color displayed in the QToolBar on macOS Mojave dark
mode

Change-Id: Ic4415295e314a8fc1c4fbb58964386e0563b8d44
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-25 15:48:45 +00:00
Takao Fujiwara 9b6222598c Calculate Qt::Key from keysym for IBus ForwardKeyEvent signal
QKeyEvent instance requires Qt::Key but currently X11 keysym is assigned
and the IBus QT module forwards the wrong key events.
Now QXkbCommon::keysymToQtKey() can generate Qt::Key from keysym and
forward the correct key events.

Change-Id: I25f0a9e9319b4a5f42847f8592ad3a30f6c9349d
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-03-25 13:49:54 +00:00
Timur Pocheptsov 4d77c37522 QMacStyle - make focus ring less transparent
But only for the 'Light' theme. For "Dark" the system
color fits well (without our rather strange and random
0.5 we set for some reason).

Change-Id: Ic5c8372913515611a567090f82852ffc7ca14eb7
Fixes: QTBUG-74095
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-03-22 05:10:08 +00:00
Andy Shaw 4daf5204ba Cocoa: Clear the shortcut used when hiding a native menu entry
The shortcut needs to be cleared if the native menu entry is being
hidden due to the fact it was changed. Otherwise it will not show the
shortcut anymore as it sees it as in-use.

Change-Id: Ifb10db855766e4de71db06ea006f6d63497f3193
Fixes: QTBUG-74113
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-21 14:21:49 +00:00
Friedemann Kleint a1c37462ee Windows: Fix tooltip flicker on GL surfaces
QPlatformWindow::initialGeometry() would assign a default height to
the initial geometry of the QRollEffectClassWindow since it has height
of 0. This causes the obtained geometry to not match and subsequently
a geometry change being sent synchronously.

Introduce a new flag QWindowPrivate::resizeAutomatic similar to the
existing QWindowPrivate::positionAutomatic to prevent assigning a
default size and pass through the geometry as is where required.

Fixes: QTBUG-74176
Change-Id: I70c66490838a2c4dfe200ec86094d28bd984dd03
Reviewed-by: Kati Kankaanpaa <kati.kankaanpaa@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-21 13:39:51 +00:00
Eirik Aavitsland e8a990c674 Fix aliased font rendering in native xcb mode
Freetype creates 1bpp bitmaps in msb order, while XRender expects lsb
order.

Change-Id: If8dd8e07c424df2d135f56f1ce105ef94963f536
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-03-21 13:21:43 +00:00
Morten Johan Sørvig 09a2a9bc4a Cocoa: always send queued user input events
User input events will be queued if processEvents()
is called with the ExcludeUserInputEvents flag. User
code then expect that the queued events will be sent
when the corresponding exec() call returns.

We were sending queued user input event at the beginning
of processEvents(). However, the cocoa event dispatcher
also has a mode where it makes a blocking call to
[NSApp run], in which case processEvents() never returns
during event processing. This means we don’t get to call
the queued-event-sending code.

Factor out the queued-event-sending code to a new
sendQueuedUserInputEvents() function. Call it from
postedEventsSourceCallback() to make sure the queue
is emptied after the ExcludeUserInputEvents processEvents()
call is done.

Task-number: QTBUG-69687
Change-Id: I4ff554ef4d39a69356736c33a650886b56bfdb4c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-21 12:53:24 +01:00
Val Doroshchuk 9b6928b7cc Fix crash when app is going to shutdown but conf manager is requested
If the app is finished and going to shutdown,
qNetworkConfigurationManagerPrivate() returns nullptr.

Change-Id: I01915021d8698802b3a1d0dee43203cd3d4aba74
Task-number: QTBUG-76090
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-06-12 08:26:54 +00:00
Vova Mshanetskiy 1ade5ea41a QAndroidInputContext: Improve compatibility with virtual keyboards
This commit improves QAndroidInputContext's conformance to Android's
InputConnection interface and/or consistency of it's behavior with
Android's native EditText control.

* Composing region is now completely independent from cursor and
selection, as required by InputConnection documentation. Also, Qt will
now never clear composing region (i.e. call finishComposingText())
without receiving a command to do so from the keyboard. This is
important for the following reasons:

- Some keyboards misbehave if we change composing region without
  receiving a command from them. Notably, Samsung Keyboard does
  (QTBUG-68822).

- Due to asynchronous nature of interaction between QAndroidInputContext
  and the keyboard, when user drags cursor handle quickly, the keyboard
  may call setComposingRegion() to mark a word, which is no longer under
  the cursor. This was causing text corruption (QTBUG-43156,
  QTBUG-59958). Also SwiftKey makes such calls when user presses Enter
  key (QTBUG-57819).

- For similar reasons selecting a word with a double-tap could cause
  text corruption. The keyboard may call setComposingRegion() in
  response to the first tap after the second tap has been processed and
  the word has already been already selected.

This is achieved by keeping track of start and end of composing region
independently from the editor. Whenever possible (i.e. when there is no
selection and the cursor is inside composing region), the composing text
is represented as preedit text inside editor. And whenever that is
imposible, the editor is told to commit, but QAndroidInputContext keeps
information about composing region internally to be able to correctly
interract with the keyboard.

* deleteSurroundingText() has been re-written to work correctly when
there are selection and/or composing region. Some keyboards (e.g Ginger
Keyboard) do call deleteSurroundingText() when there is non-empty
composing region.

* All operations are now performed inside a batch edit (i.e.
QAndroidInputContext now calls beginBatchEdit() and endBatchEdit() on
itself) to ensure that an intermediate state is never reported to the
keyboard, whenever an operation requires more than one
QInputMethodEvent. BatchEditLock helper class was added to call
begin/endBatchEdit() in RAII style. m_blockUpdateSelection has been
removed because m_batchEditNestingLevel is now used instead of it.

* Selection start and end positions are now reported to the keyboard so
that start <= end. Some keyboards can not handle start > end.

* getTextBefore/AfterCursor() now exclude selected text from their
return values. While Android docs say "text before/after cursor", what
they really mean is "text before/after selection" because "the cursor
and the selection are one and the same thing". Some keyboards (e.g.
Gboard) were behaving incorrectly when selected text was being returned.

* getExtractedText() now tries to obtain and return the whole text from
the editor. This is to fix compatibility with some buggy keyboards
(e.g. Samsung Keyboard, Minuum) that ignore startOffset field and
assume that selectionStart and selectionEnd are absolute values. Then
they issue commands with wrong indexes in some cases.

Fixes: QTBUG-43156
Fixes: QTBUG-59958
Fixes: QTBUG-57819
Fixes: QTBUG-68822
Change-Id: I7e71f3bcfbb2c32248d653a4197293db03579a79
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-06-05 18:21:35 +03:00
Vova Mshanetskiy e5f2be256f QAndroidInputContext: Don't allow clearing selection by dragging handles
Android's native text editing controls do not allow user to clear
selection by dragging selection handles. Qt apps should behave in the
same way.

Change-Id: I9a7c3a2aafa484eed8ff2bbd46dd48c705195291
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-06-05 17:38:32 +03:00
Vova Mshanetskiy 710435ee81 QAndroidInputContext: Fix unneeded preedit commits when dragging handles
If the cursor handle was dragged by only a few pixels, position of the
cursor did not actually change, but finishComposingText() was called
anyway. So the keyboard was thinking that nothing changed and a word is
still being composed, but the app was thinking that there is no preedit
string. This was resulting in invalid handling of following key presses.

This commit essentially inlines
QPlatformInputContext::setSelectionOnFocusObject() into
QAndroidInputContext::handleLocationChanged(). This allows us to call
finishComposingText() and to send a QInputMethodEvent only when position
of the cursur actually changes. This also allows us to add a
QInputMethodEvent::Cursor attribute into the event for consistency with
QAndroidInputContext::longPress().

Change-Id: I2fc82f138f717991f34024cdf521236845dc0adf
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-06-05 17:38:32 +03:00
Erik Kurzinger 0c18311785 Track swap interval in QXcbWindow
As per GLX_EXT_swap_control, the GLX swap interval is specified on a
per-drawable basis. However, QGLXContext only tracks it per-context
using the m_swapInterval member. If a new drawable is made current to a
context, it is still necessary to call glXSwapIntervalEXT to change the
swap interval, even if it has been previously called for the same
context with a different drawable.  However, currently,
QGLXContext::makeCurrent doesn't do this if its m_swapInterval field
matches the new swap interval. This change removes m_swapInterval from
QGLXContext, instead tracking it in QXcbWindow. This still avoids
unnecessary calls to glXSwapIntervalEXT, while ensuring the swap
interval is always set for new window drawables.

Change-Id: Idc34101476c6af618059f6f3d8925dee743994a3
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-06-13 08:20:41 -07:00
Qt Forward Merge Bot 19510477b4 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ie7f68dcd5650e0037b6c3313cc9ffdcd7c494fbe
2019-03-21 01:00:07 +01:00
Qt Forward Merge Bot 6893919b0c Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/gui/kernel/qplatformintegration.cpp
	src/gui/kernel/qplatformintegration.h
	src/plugins/platforms/wasm/qwasmintegration.cpp
	src/plugins/platforms/xcb/qxcbconnection_screens.cpp

Change-Id: I15063d42e9a1e226d9d2d2d372f75141b84c5c1b
2019-03-20 14:09:30 +01:00
Eskil Abrahamsen Blomfeldt 26462f9c4c X11PaintEngine: Don't use system clip for non-system painting
When painting into a pixmap, we would apply the system clip,
which is a rectangle that starts at the position of the current
widget relative to the window. If the widget was not positioned
at (0,0), we would therefore clip the top left part of the drawing
when drawing into a pixmap, which is obviously not intentional.

The solution is in accordance with how it is done in e.g. the OpenGL
paint engine, where useSystemClip is set to true only if we are
drawing to a widget. The system clip should otherwise be ignored,
so we do that in the X11 paint engine as well.

Task-number: QTBUG-70387
Change-Id: I9cad26019970280a8a452dc6f1015d229120cac5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-03-20 13:07:00 +00:00
Tor Arne Vestbø 01e1df90a7 Move screen maintenance functions from QPlatformIntegration to QWSI
QWindowSystemInterface is the de facto API for any plumbing going from
the platform plugin to QtGui. Having the functions as protected members
of QPlatformIntegration was idiosyncratic, and resulted in awkward
workarounds to be able to call the functions from outside of the
QPlatformIntegration subclass.

The functions in QPlatformIntegration have been left in, but deprecated
so that platform plugins outside of qtbase have a chance to move over to
the new QWSI API before they are removed.

Change-Id: I327fec460db6b0faaf0ae2a151c20aa30dbe7182
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-03-19 13:08:25 +00:00
Liang Qi b1a216649e Merge remote-tracking branch 'origin/5.13' into dev
Conflicts:
	qmake/generators/makefile.cpp
	qmake/generators/unix/unixmake2.cpp
	src/corelib/thread/qthread_unix.cpp
	tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp

Change-Id: I1df0d4ba20685de7f9300bf07458c13376493408
2019-06-14 13:45:18 +02:00
Friedemann Kleint 38f1a36f60 Windows QPA: Fix clang warnings about repetitive type names
Fix warning like:
warning: use auto when initializing with new/reinterpret_cast to avoid duplicating the type name [modernize-use-auto]

Change-Id: Ieb7f052919173f6923e68de9f9e849dee45e36e7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-06-13 10:04:44 +02:00
Andy Shaw dc75337447 Windows QPA: Make the expected screen be in sync with the geometry changes
When the window moves to a new screen then we should ensure the screen
is updated at that point with the new size so it can account for any
scaling changes.

This reverts f1ec81b543.

Change-Id: I2be3aab677c4677841a07beaaf373f498483b320
Fixes: QTBUG-72504
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-03-19 10:41:45 +00:00
Jesus Fernandez 12aafa294a Avoid warning about the deprecation of QString::QString(const char*)
Fixes the warning:
‘QString::QString(const char*)’ is deprecated: Use fromUtf8, QStringLiteral, or QLatin1String [-Wdeprecated-declarations]
     return new QEglFSKmsEglDevice(this, screenConfig(), deviceName);
                                                                   ^

Change-Id: I36654f40219bf0f487e70cf2900d3f30335d4fc1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-03-18 10:38:37 +00:00
Qt Forward Merge Bot a1808c5dbe Merge remote-tracking branch 'origin/5.12.2' into 5.12
Change-Id: I5f9d8090a07056411fb65d7de60eb679d00e99a3
2019-03-15 11:10:10 +01:00
BogDan Vatra 9b72613512 Fix link error on linux
On debian buster (using gcc 8.2) I'm getting link error:
...86_64-linux-gnu/libdl.so /usr/lib/x86_64-linux-gnu/libEGL.so
/usr/bin/ld: .obj/qxcbeglintegration.o:(.data.rel+0x8b8): undefined reference to `typeinfo for QXcbBasicConnection'

Change-Id: I4c2b5aad8eac44737982d68f46fbc80e3b830668
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-03-15 05:04:59 +00:00
Lorn Potter 11228e54b6 wasm: fix touchpoint handling
emscripten sends a touchstart event for every touch point when a new
touch point happens, so this makes them moved or stationary if already
known.

This allows QtQuick PinchArea to work.

Task-number: QTBUG-72214
Change-Id: I8e7c0cd2d78b07cfeae21491846cc31092359050
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-15 02:04:09 +00:00
Qt Forward Merge Bot e608b5d555 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I2bf3b4ceb79364330eae4cbf3cdee9a82d1be46d
2019-03-15 01:00:43 +01:00
Tor Arne Vestbø 77a4915bf9 macOS: Add IOSurface based backingstore for layer-backed views
The naïve approach used for layer-backing in the past caused a detach
of the backingstore QImage on each beginPaint, since the image was
assigned to the layer via a CGImageRef that participated in the
QImage implicit sharing (and had to, so we couldn't get around that).

We now use IOSurfaces, wrapped in a QPlatformGraphicsBuffer abstraction.
The surfaces can be assigned to the layer's content the same way images
could, but allows us to reason more closely about whether or a buffer
is in use, and increases the chance that we will have a zero-copy path
to the screen.

Unless the window has requested a surface format with single buffering
we use a dynamic swap chain of buffers. In most situations there will
be two buffers in play, one assigned to the layer and one ready to
paint to, but during resize and some other situations the buffers
will grow temporarily to accommodate the increased back-pressure.

Since QBackingStore is documented as having single-buffer behavior,
we take care to persist content between the buffers before every
swap. By doing this before swapping, instead of before each paint,
we can avoid preserving areas that will be painted to anyways, and
will in many situations (such as blinking cursors e.g.) end up not
persisting anything.

The RasterGL surface case is handled by reading out the buffer data
and doing a manual texture upload. In the future we can support
direct texture access via CGLTexImageIOSurface2D, but this requires
QPlatformBackingStore::composeAndFlush to learn how to support other
targets than GL_TEXTURE_2D, as CGLTexImageIOSurface2D only works with
GL_TEXTURE_RECTANGLE_ARB targets.

Fixes: QTBUG-48763
Fixes: QTBUG-72360
Fixes: QTBUG-71162

Change-Id: Ica12f69b244e54d0fd31c929730d15657c286af8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-14 21:51:27 +00:00
Christian Andersen 74aeacace4 Windows QPA: only calculate invisible margins when window has a frame
In commit ec97be5585 an invisible frame calculation was added for
Windows 10 that fixes QWidget::move(0,0) for main windows and dialogs.
But because e.g. Qt::ToolTip windows do not have a window frame, the
invisible margin calculation causes them to pop-up in the wrong
position (off by a few pixels).

[ChangeLog][Windows] Fixed QToolTip pop-ups and QComboBox animation
pop-ups being off by a few pixels on Windows 10.

Fixes: QTBUG-74062
Change-Id: I218e8409a250a8b81ecd1d409b597ebd01fb255f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-03-14 12:15:47 +00:00
Friedemann Kleint 15f88a7c01 Windows QPA: Output all adapters in diagnostics used by qtdiag
Split up the code detecting the GPUs into small helpers. Add a
QDirect3D9Handle class providing Direct3D9 functionality, add
GpuDescription::detectAll() and add a QVariantList "gpuList" property to the
native interface.

Task-number: QTBUG-50371
Task-number: QTBUG-65882
Change-Id: I8673542d327837babc2ad8f507da76e8ff5524ea
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-03-14 12:15:11 +00:00
Lukáš Turek 036fe49580 XCB: Fix clipboard breaking when timer wraps after 50 days
xcb_timestamp_t is a 32-bit unsigned value in miliseconds, so it
wraps after 49.7 days. When it happens, QXcbConnection::m_time stops
updating and copy & paste in an application would not work until the
application is restarted. This patch detects the timer wrap and
allows m_time to wrap too. The fix was verified in KDE desktop with
applications running for 51 days.

Fixes: QTBUG-65145
Change-Id: I328c4179c1b1f71914adda6f9a0ca3991a7e808e
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-03-14 12:14:30 +00:00
Karim Pinter 68a2b3d46a QNX QPA: Add support for Qt Virtual Keyboard
If the QT_IM_MODULE environment variable is set, then it loads the
IM module accordingly, otherwise it is using the PPS one, if it is
available.

Task-number: QTBUG-54576
Change-Id: Icb8b474805053d8297029096365783c2cabc2cbc
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
(cherry picked from commit 8a7c373f8e)
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-03-14 06:46:06 +00:00
Robert Szefner 2c6593b721 QPSQL: Use nullptr for pointers
Change-Id: I2b61cf0b81550c0878b0f06488a933c4b14e4728
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-03-13 10:57:19 +00:00
Robert Szefner 3fa5e637fb QPSQL: Fix code formatting
Only whitespace changes.

Change-Id: I474aa1b477be7081b58bd781417861878b207f4e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-03-13 10:57:15 +00:00
Robert Szefner 52c0bb5994 QPSQL: Use qstrtod() function for string to double conversion
A change to qstrtod() will give us a small performance improvement.
Because the qstrtod() function does not correctly parse the NaN values,
an appropriate check condition for NaN has been added.
Also changed code structure so now the double conversion function
is called only in one place.

Task-number: QTBUG-65748
Change-Id: I49d40e5157e79cc5fce35db4c4272d1ccd270c6b
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-03-11 13:18:38 +00:00
Qt Forward Merge Bot 0a02de62d1 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iecdf00ca61d819bde532daa42f093860ec4a499e
2019-03-11 01:00:06 +01:00
Tor Arne Vestbø a0a1d9c581 iOS: Fix broken application background tracking
e0e1c7ec2d amazingly both removed and inverted key parts of the
logic for tracking the background state of the application.

Fixes: QTBUG-74272
Change-Id: I9a9e8720f32e8228d27ee6b6a1fb35e5f7b7cedc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-03-09 10:57:21 +00:00
Morten Johan Sørvig caa74f16d4 wasm: support rendering to multiple canvases
Qt (via the the qtloader.js API) now supports rendering
to multiple canvases. The application sees each canvas
as a QScreen.

Make qtloader.js support multiple canvases:

  var qtloader = QtLoader({
    canvasElements : [array-of-canvas],
    showCanvas: function() {
      // make canvas(es) visible
    },
 });

The canvases were previously created/returned by showCanvas(),
however this function is called after the Qt app has
been started and adding screens that that point is
too late. (This worked before since there was only one
screen, and no need to connect each screen instance
to specific canvas.)

Remove QWasmScreen, QWasmCompositor, and QWasmEventTranslator
singletons from QWasmIntegration. These are are now
crated per-screen and are owned by the QWasmScreen.

Task-number: QTBUG-64079
Change-Id: I24689929fd5bfb7ff0ba076f66937728fa4bc4e4
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-03-08 10:09:57 +00:00
Lorn Potter 452c644c5c wasm: make wasm platform target a specific canvas instead of default
This allows for multi canvas use

Task-number: QTBUG-64079
Change-Id: I69c998aa4c2869bb5b7f14ba65bb63284365ad70
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-03-08 10:09:46 +00:00
Liang Qi 2add2dbdaa Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/network/access/http2/hpacktable_p.h

Change-Id: Ie0c296667dfdebba84f4858056a1ac80c24ee7df
2019-03-06 12:31:50 +01:00
Gatis Paeglis 856fb1ab44 xcb: check for nullptr when reading AT_SPI_BUS property
We always have to check the return value of xcb_get_property(),
but this code did not do it. These xcb functions do not check
for validity of the pointer, so we have to make sure that we pass-in
something valid:

 void *
 xcb_get_property_value (const xcb_get_property_reply_t *R)
 {
    return (void *) (R + 1);
 }

 int
 xcb_get_property_value_length (const xcb_get_property_reply_t *R)
 {
    return (R->value_len * (R->format / 8));
 }

Fixes: QTBUG-74067
Change-Id: Iabbc81e6079d96c7314d16dd78783de07f9ad629
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-03-06 07:59:50 +00:00
Tor Arne Vestbø 4eda22ea0d macOS: Improve mouse logging
Change-Id: Icc81f73e728d9b3669afc37b0c1ef73588f24749
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-03-05 22:30:05 +00:00
Friedemann Kleint f792fed2ff XCB/libxkbcommon input context: Fix crash when invalid local is set
Fall back to querying the locale.

Fixes: QTBUG-74216
Change-Id: Ibd60572454741e64f649ecc3e37f593a8e2b2bda
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-03-05 18:34:19 +00:00
Tor Arne Vestbø 65d2f0d173 macOS: Modernize qnsview_dragging.mm
Style fixes, modern Objective-C usage, and use of convenience APIs.

Change-Id: I04801b0b5f0d2213b4bcf1b0158fc32e57432d28
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-03-05 14:40:01 +00:00
Morten Johan Sørvig 070f75d3b0 wasm: improve clipboard fallback path
This improves handling of cut/copy/paste clipboard events,
ands allows clipboard access via the common keyboard
shortcuts.

Make the canvas be eligible for clipboard events by
setting the contenteditable attribute. Install clipboard
event handlers directly on the canvas.

Suppress Ctrl+X/C/V key event handling in the keyboard
event handler in order to make the browser generate
clipboard events. Send synthetic key events from the
clipboard event handlers to make the app copy/paste
to Qt’s clipboard at the correct time.

Access the system clipboard data using event.clipboardData.

Task-number: QTBUG-64638
Change-Id: I584b78ffa2b755b1b76e477b970255c6e5522f6a
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-03-04 08:21:28 +00:00
Tor Arne Vestbø a74b2b5f15 macOS: Initialize QNSView mouse related members with other mouse logic
Change-Id: I4ff67028823d62ed67bf4303a58bee127bd76501
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-03-02 00:47:46 +00:00
Qt Forward Merge Bot 607338f98f Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I83f6ed9480bf21020ce7a9431010d87a88df84a1
2019-03-02 01:00:08 +01:00
Gatis Paeglis 2065bc070d platforminputcontexts: use libxkbcommon compose key API
Our implementation of compose table parser was added on Mar, 2013.
libxkbcommon added APIs for the same thing in Oct, 2014 (ver: 0.5.0).
After removing RHEL 6.6 from the list of supported platforms we were
able to move the minimal required libxkbcommon version to 0.5.0. Now
we can use the xkbcommon-compose APIs on all supported platforms.

With this patch we can drop nearly 1000 lines of maintenance burden.
This patch fixes user reported issues with our implementation.

Known issues:

- Testing revealed that xkbcommon-compose does not support non-utf8 locales,
and that is by design - https://github.com/xkbcommon/libxkbcommon/issues/76
Our implementation did work for those locales too, but it is unclear
if anyone actually uses non-utf8 locales. It is a corner case (work-arounds
existing) and likely a configuration error on the users' system.

- Looking at the release notes for versions above 0.6.1, only one issue
that stands out. Compose input does not work on system with tr_TR.UTF-8
locale, fixed in 0.7.1. Compose input works fine when using e.g. en_US.UTF-8
locale with Turkish keyboard layout.

Note:

With Qt 5.13 we have removed Ubuntu 16.04 and openSUSE 42.3 from CI:

Ubuntu 16.04  - 0.5.0
openSUSE 42.3 - 0.6.1

CI for Qt 5.13 has:

Ubuntu 18.04  - 0.8.0
RHEL-7.4      - 0.7.1
openSUSE 15.0 - 0.8.1

Currently the minimal required libxkbcommon version in src/gui/configure.json
is set to 0.5.0, but we could bump it to 0.7.1 to avoid known issues from above,
but that is a decision for a separate patch.

[ChangeLog][plugins][platforminputcontexts] Now using libxkbcommon-compose
APIs for compose key input, instead of Qt's own implementation.

Fixes: QTBUG-42181
Fixes: QTBUG-53663
Fixes: QTBUG-48657
Change-Id: I79aafe2bc601293844066e7e5f5eddd3719c6bba
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-03-01 14:31:37 +00:00
Gatis Paeglis a34e81ab8b platformsupport/input: add xkbcommon utilities lib
xcb/eglfs/wayland - all use XKB keyboard configs and APIs. There
is a lot of duplicated and naturally a diverging code. This patch
adds a helper library to avoid all the mentioned problems and unify
feature set between these platforms.

qlibinputkeyboard:

Added a fixup for 2803cdf758. From
spec: "keysyms, when bound to modifiers, affect the rules [..]",
meaning we can't look at keys in isolation, but have to check if
bounding exists in the keymap. This is done by using
xkb_state_mod_name_is_active() API, but that API has its limitations -
https://github.com/xkbcommon/libxkbcommon/issues/88
I will fix this separately in the LTS (5.12) branch.

We need to read the modifier state before the key action. This
patch fixes a regression introduced by aforementioned patch, which
caused modifiers being reported wrongly in QKeyEvent::modifiers().

qtwayland:

Moved toKeysym(QKeyEvent) from qtwayland repository into this library.
For this and other key mapping functionality wayland was duplicating
the key table. All of that will be removed from qtwayland, and calls
will be replaced to use this lib. Adjusted toKeysym() to fix QTBUG-71301.
Qt keys don't map to ASCII codes, so first we need search in our key
table, instead of mapping from unicode.

lookupStringNoKeysymTransformations():

fixed off-by-one error, where we were including terminating NUL in
QString.

Fixes: QTBUG-71301
Task-number: QTBUG-65503
Change-Id: Idfddea5b34ad620235dc08c0b9e5a0669111821a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-03-01 14:31:28 +00:00
BogDan Vatra 8880ef7931 Terminate Qt gracefully
When the application is closed via the task manager on Android
then we need to ensure that that the application can close down
any running event loops. So we wake up all the event loops and
then call quit() directly on the application object to start a
graceful termination of the application.

In order to aid the graceful termination of Qt then a check is
added to ensure that it does not try to create a new surface when
the application is suspended. This prevents it from locking
while trying to create a new surface when this is not possible.

Fixes: QTBUG-70772
Change-Id: I6795b3d280e178d7f1207004a1b965a31a0cc9e9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-02-28 13:43:21 +00:00
Qt Forward Merge Bot 55b4641962 Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-02-28 01:47:50 +00:00
Qt Forward Merge Bot 043f99954f Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Icc9b061c56e969756f0351c936cdeb8063c86079
2019-02-28 01:00:15 +01:00
Lorn Potter 15adc79bbc wasm: fix clipboard use
Change 5242126a inadvertantly removed clipboard functionality

Change-Id: Ie15e08470dd51d1c166063bbd443fd04416b2786
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-27 23:37:43 +00:00
Lorn Potter f6ce77f3e4 wasm: activateWindow when needed
Task-number: QTBUG-74066
Change-Id: I6babab888de118c8c881fd8a18a90049563d7a23
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-27 18:20:49 +00:00
Elena Zaretskaya ca991ee22d Segfault when the exiting the application under platform eglfs
If you run an application under eglfs, it falls with segfault on the
exit. For example, examples/gui/analogclock,
examples/widgets/widgets/analogclock, examples/opengl/cube,
examples/opengl/qopenglwidget, etc. (I have added the function
keyPressEvent to exit  by qApp->quit(), if needed).
It isn't appear in applications using QQuickView or QGLWindow.
This is because QCoreApplication destructor, where the variable self = 0
(therefore, qGuiApp = 0), is called before than
QOpenGLVertexArrayObject::destroy(), where qGuiApp is accessed
(qGuiApp->thread()).

Task-number: QTBUG-73824
Change-Id: I1dc55d5e811bfe8a8ea2178752e8771f8644d356
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-27 15:30:40 +00:00
Friedemann Kleint 2c31516a1e Windows QPA: Fix override cursor when modal window is present
Handle WM_SETCURSOR to apply override cursors to window that do not have
mouse capture (as is done in Qt 4).

Fixes: QTBUG-58590
Change-Id: I7ff6f799da1b8d4b4396c0a6137778a11a192617
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-02-27 08:10:49 +00:00
Allan Sandfeld Jensen 96f6cab22c Blacklist nouveau and llvmpipe for multithreading
After removing Mesa drivers from being blank blacklisted, we still need
to blacklist nouveau specifically due to their lack of proper locking:
https://bugs.freedesktop.org/show_bug.cgi?id=91632

llvmpipe is similarly blacklisted for now, as we lack enough information
to know if the underlying issue behind QTCREATORBUG-10666 has been solved.

Fixes: QTBUG-73715
Change-Id: I1a60b562cd9db94fa8462b922d6bfeebf0088dc5
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-26 18:10:03 +00:00
Friedemann Kleint 9694d754b8 Haiku: Fix mis-spelled module in .pro
Fix warning:
Project ERROR: Unknown module(s) in QT: eventdistpatcher_support-private

Change-Id: Ic74481621c541fc0a13640c5e5cae2df44ffb091
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-26 12:16:09 +00:00
Gatis Paeglis 58cad5caf2 build compose input context plugin not only for XCB platform
It can be used by any platform that uses xkbcommon for keyboard
input: wayland, eglfs.

Change-Id: Iba7d8989f922063cdceb94c1c4bcd8d8e4ae294e
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
2019-02-26 11:46:12 +00:00
Qt Forward Merge Bot 04479f1952 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Id511850002d9274d17891c063376ac4b3ff939dd
2019-02-26 01:00:19 +01:00
Andre de la Rocha 00cfb4d780 Windows QPA: Generate proper event when dragging item outside window
When an item was dragged outside the window, the mouse release event was not
being properly delivered and the item would stick to mouse cursor after
moving it back into the window.

Fixes: QTBUG-72994
Change-Id: Ibce990390c866e16d58f7d969673dd05e862d97e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-25 14:26:09 +00:00
Robert Loehning 85b0ce8ca3 Fix can not -> cannot
Change-Id: Ie9992f67ca59aff662a4be046ace08640e7c2714
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-02-25 13:03:45 +00:00
Mikhail Svetkin 1be070a2be qtlite: Fix build the source code with -no-feature-shortcut
Change-Id: If47149466a5da901e3eb6e6f2dcfb0a7816bc60b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-02-25 12:20:36 +00:00
Qt Forward Merge Bot 64085d9b2f Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I9e7cb1b131b7b216aad8ed1b1536669fd1557c21
2019-02-22 01:00:27 +01:00
Morten Johan Sørvig b5c16921cc wasm: make setting the cursor shape work again
Commit 960af0d64 ported away from EM_ASM but also
changed the logic. Set the canvas.style.cursor property,
like it originally did.

Change-Id: Ie4b23abeae54173894bff1db000a305c459684bb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-21 17:27:07 +00:00
Gatis Paeglis 3d7616a316 offscreen: remove false condition
This plugin does not use any XCB libs.

This patch amends 94a4f06fb8
and 744be250bf

Change-Id: I33e2647ace3d9f32a420551b3b198e33a182a06f
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-02-21 16:26:48 +00:00
Jan Grulich 1d3a162bfe Properly convert filename to bytearray when sending over portal
We should be using QFile::encodeName() to properly convert filenames
from string to bytearray. This takes user's locale into account.

Change-Id: I090f73f21feb73af166e88baa0e7f4a595cdb25b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-21 10:53:19 +00:00
Qt Forward Merge Bot 2e8987b7ec Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-02-21 01:34:52 +00:00
Qt Forward Merge Bot 0c0c4a23bc Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I830beea26863323ab78a5d4b093f7763d77ad3da
2019-02-21 01:00:08 +01:00
Lorn Potter ca32a373b3 wasm: fix crash on window close
Change-Id: I07d6edfbfbf056240262b833ccb708dc15f830a3
Fixes: QTBUG-73678
Task-number: QTBUG-73678
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-20 23:03:06 +00:00
Tor Arne Vestbø 10565c5ef3 macOS: Decouple screen property updates from application delegate
Change-Id: I489c37131bf715d45f147964de4a8cd8c02adbcb
Fixes: QTBUG-72966
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-20 07:46:51 +00:00
Tor Arne Vestbø 2fc4635e98 macOS: Remove special handling for hiding tool windows on application hide
The code was needed when we had QCocoaWindow::hide(), that guarded the
ordering out by checking the visible state of the NSWindow. We no longer
have that method, and setVisible doesn't have the same guard.

Added a comment in setVisible to prevent future travelers from adding
logic that introduces the same situation.

Change-Id: I0514619a303daceb1cd7d334f0de4bfce6c3e96f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-20 01:30:01 +00:00
Andy Shaw 8796e3016f Android: Add support for getting the UiLanguages
From API 24 it is possible to get the UiLanguages correctly from
Android so if API 24 or later is available we should use this. If it is
not available, then it will fallback to the original behavior of using
the system language.

Fixes: QTBUG-68019
Change-Id: I4cfbc2b807b361c08da56a74100ba59abf5f2d0f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-02-19 06:57:59 +00:00
Qt Forward Merge Bot 67c70b22f6 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ifa143cc462301aaa305c9c85360e543553a751f0
2019-02-19 01:00:08 +01:00
Tor Arne Vestbø 0a2e91328e macOS: Set up platform window reference before initializing QNSWindow/Panel
Initializing the window will end up in [NSWindow _commonAwake], which calls many
of the getters. We need to set up the platform window reference first, so we can
properly reflect the window's state during initialization.

Change-Id: I5349273b1930ee8a57dc518db74be90d2426f61c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-18 22:58:07 +00:00
Tor Arne Vestbø 7319c342c3 macOS: Implement QNSWindow/QNSPanel mixin using preprocessor includes
We want to share the implementation between the two classes, but
Objective-C doesn't natively have a mixin-feature. Instead of using
dynamic super-calls at runtime (which worked fine, but added
complexity), we now do the mixin at compile time using the
preprocessor.

The dynamic-super feature is left in, in case we need it in other
areas in the future.

Change-Id: I95dfa7f18cba86cc518e963dd018944ef113ac06
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-18 22:57:53 +00:00
Lorn Potter 5242126a61 wasm: improve key handling
Allow for extended non English keys

Task-number: QTBUG-68189
Task-number: QTBUG-69392
Change-Id: I12187ebc1250a5c29022cd2d3ad3a77eb45c06a8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-18 18:54:44 +00:00
Tor Arne Vestbø 6273b484b3 macOS: Remove redundant tracking of modal sessions in QCocoaWindow
Change-Id: I43a40889b0731e4b480155256fc51eaa836e62a3
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-18 16:45:48 +00:00
Tor Arne Vestbø c36c5e9b55 macOS: Modernize worksWhenModal handling
The code in QCocoaEventDispatcher was dead and could be removed.

Change-Id: I0c57e64791045d65033376c096220983059028ba
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-18 16:45:48 +00:00
Tor Arne Vestbø 025128a7e0 macOS: Simplify QCocoaWindow::setVisible
We don't need all the checks for the event dispatcher, it should
always be there.

Change-Id: Ib89a9c1c5524b49c2d85fae12425d19ced960597
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-18 16:45:48 +00:00
Tor Arne Vestbø c7318e899e macOS: Remove dead code in window activation handling
Change-Id: I321ab68b51c4ba63204c0e15fec74164e2c93d34
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-18 16:45:43 +00:00
Michal Klocek 94a4f06fb8 Add run-time qpa offscreen glx support selection
Introduce QT_QPA_OFFSCREEN_NO_GLX to run offscreen qpa
without glx even if compiled with x11 support.

Task-number: QTBUG-63346
Change-Id: I647bf5df27f095c3dd27a90415cc9c445df93fd1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-18 15:37:43 +00:00
Lorn Potter 2c6c724949 wasm: add clipboard support
This feature uses the js Clipboard API and is supported only in Chrome,
as Firefox only supports reading the clipboard in browser extensions.

It also requires https or localhost access, otherwise access to the
clipboard is blocked by chrome.

Chrome users will be able to copy/paste text to and from the system
clipbaord.
Other browsers will be able to use the clipboard from within the same
application.

Currently only supports text and html.

Task-number: QTBUG-64638
Change-Id: Ie6de9d10812b776519bd6115593b433fe77059fe
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-15 12:46:57 +00:00
Qt Forward Merge Bot ef2ddcf551 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I8cad26f17834dbc9f7151edc0f17786f9e32025d
2019-02-15 01:00:51 +01:00
Oliver Wolff a2c9f9433a winrt: Handle WaitForWindowExposed
As winrt does not have native windows, exposure check was just done by
checking, whether the window is the active window. If a window is shown
fullscreen though, winrtscreen will be resized. This resize triggers a
resize of every maximized or fullscreen window that is shown.
If we enter or leave full screen mode, we have to wait until the screen
resize and the subsequent window resizes are done and only then we can
consider the windows properly exposed.

This patch reverts 54bcb9d42f  and thus
unblacklists tst_QGraphicsItem::cursor on WinRT.

Fixes: QTBUG-73545
Change-Id: If469fce319ed6b3a5d56b7bf3cbc11929b72bb11
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-02-13 14:04:58 +00:00
Michal Klocek 6bad49308a Fix handling of glxconfig and glxcontext in offscreen plugin
Return glxconfig and glxcontext, it is needed by
share context in chromium.

Task-number: QTBUG-63346
Change-Id: Ief15bf7170af9cf61a71453043a2629a4bcbcdc2
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-13 11:33:44 +00:00
Michal Klocek 652e9146ac Fix incorrect surface type in offscreen plugin
In case we use glx backend set correct surface.

Task-number: QTBUG-63346
Change-Id: I5827bf5b8e4ed60b933c25ce234fdd4a3dd20c88
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-13 11:33:31 +00:00
Michal Klocek 48f5b671a3 Add native handle for context in offscreen plugin
Offscreen plugin can be compiled with x11 support.
In case of glx add missing native handle for context.

This fixes crashes of running web engine with offscreenplugin
(with glx support).

Task-number: QTBUG-63346
Change-Id: Ia717ad2551536fbfdfb6633e506704a3ebe42a2b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-13 11:33:22 +00:00
Volker Krause 7d2d1eb9e0 Add file engine for Android content URLs
The "file dialog" on Android returns such URLs, which so far required
special-casing this in application code. With this change QFile can
consume those URLs directly.

Change-Id: I489c0db112cf1dc7497e7a90f0e9a79ea8fa5237
Reviewed-by: Nicolas Fella <nicolas.fella@kdab.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
2019-02-13 10:31:59 +00:00
Lorn Potter 960af0d64d wasm: remove EM_ASM calls in wasm platform plugin
Change-Id: I8453836b6730d18eaaa4ffe1fb9cb3933079ebee
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-13 04:12:53 +00:00
Tor Arne Vestbø 81fd7f4c8a macOS: Add auto-release pool during QCocoaScreen::deliverUpdateRequests()
Checking the application's keyWindow will autorelease the window, and
there's no root pool in place when called from the display-link thread.

Change-Id: Ic43164ad6397c92b858fb549f7a00e28b6110849
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-12 22:19:38 +00:00
Andre de la Rocha 3850404114 Windows QPA: Handle mouse input using legacy messages
This change reverts to using legacy mouse messages when handling mouse
and touchpad input, while using pointer messages to handle touchscreen
and pen input. The use of pointer messages to handle everything, added
in 5.12.0, caused issues in some particular cases, due mainly to
differences in behavior or bugs in the pointer messages, which required
workarounds in the Windows QPA, which didn't work well in all cases and
led to additional issues. For instance, DoDragDrop() does not work when
called by pointer (or touch/pen) handlers, but only after OS-synthesized
legacy mouse messages are generated. Also, in some cases pointer messages
for mouse movement are generated as non-client for client area events.
Modal loops like the ones in window resize/move and menu handling caused
some issues with pointer messages, as well. Also, we have to handle the
OS-synthesized legacy mouse message generated for touch and pen. Ignoring
them while letting the gui layer synthesize mouse events for touch/pen
may break Drag and Drop by triggering DoDragDrop() before legacy messages,
which can result in a hang inside the DoDragDrop() modal loop. This change
should fix most regressions related to pointer messages, while keeping
the enhancements in pen and touch input.

Fixes: QTBUG-73389
Fixes: QTBUG-72624
Fixes: QTBUG-72801
Fixes: QTBUG-73290
Fixes: QTBUG-72458
Fixes: QTBUG-73358
Fixes: QTBUG-72992
Change-Id: I919f78930d3965270ef2094401e827ab87174979
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-12 22:17:54 +00:00
Tor Arne Vestbø 77389ad8ff macOS: Remove screen-update disable during resize
It was needed as a workaround for the window border and window content
becoming out of sync when we were drawing and flushing to the layer
from another thread using OpenGL. Since we've disabled ThreadedOpenGL
we can remove this workaround for now.

The workaround also had other problems, as windowWillResize: did not
turn out to be a reliable signal to know when a window was about to
resize. Since we override windowWillUseStandardFrame:, we would not
get the callback when zooming windows. Conversely, if we removed the
windowWillUseStandardFrame: override, we would get a single callback
for windowWillResize:, and then multiple callbacks that the window
had resized. In addition, windowWillResize: is not only used as a
callback, but also as a way to let the window delegate restrict the
size, so it's called when e.g. AppKit determines the standard frame
of the window -- an operation that doesn't involve an actual resize
operation.

If we re-introduce a workaround using screen-update disabling we need
a better hook than windowWillResize:, and we need to track when we
disable screen updates so that we can pair them up with corresponding
screen update enables, otherwise we'll get log messages in the console
about "SLSReenableUpdate: unbalanced enable/disable update".

Change-Id: Ifca8892083c8666976391a4ada8f8d1471493943
Fixes: QTBUG-73726
Task-number: QTBUG-69321
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-12 18:34:29 +00:00
Tor Arne Vestbø 0ad651579f macOS: Don't rely on QGuiApplication::instance() during CVDisplayLink callback
The display-link callback comes in on a secondary thread, so there's a possible
race in using QGuiApplication::instance() to check whether or not we're on the
main thread.

Change-Id: Ic26bca8f5f54847a1e1b11dc92e786693c86e9de
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-12 18:34:28 +00:00
Tor Arne Vestbø 6b8610f4e8 macOS: Add explicit auto-release pool for requestActivateWindow
The API is often called from main before entering the event loop,
and the making the window first responder and key will autorelease
both the window and view.

Change-Id: Ie2a7dc14652015cbe802b57696e4a82d564e2dc0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-12 18:34:21 +00:00
Liang Qi 93bcd488af Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-02-12 18:13:34 +00:00
Nicolas Fella 2c60844bad [platform/android] Add native file dialog
Add basic native file open dialog on Android. Not all features of QFileDialog can be mapped to the
Android file dialog.

Most notably there is no "Save" dialog. The dialog returns a content:// URL. Patch 251038 adds
support for those to QFile.

Change-Id: I13d02103edcd9a089afcce8193432f24b2e0fe43
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-02-12 13:03:17 +00:00
Michal Klocek 3fe9f245e8 Add platform native interface to offscreen plugin
Adds trival support for querying "display" and "glxconfig" in case
offscreen plugin is compiled with xlib support.

This is required so this plugin could work with webengine.

Taks-number: QTBUG-63346
Change-Id: Ie0f29385cb44429ddf383ad459e0c9f3263ccffe
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-12 12:57:26 +00:00
Qt Forward Merge Bot d3b3be6865 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iad53d4f21263718b8ecf15fd2d1170d24c7b675d
2019-02-12 13:53:22 +01:00
Laszlo Agocs 2e12bfdc1e eglfs: avoid breaking builds without EGL_EXT_platform_base
Change-Id: I9183e17b42c00435f20c00a414e1f20aa3972351
Fixes: QTBUG-72559
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-02-12 10:50:52 +00:00
Tor Arne Vestbø 9f22ac0aa0 macOS: Don't send redundant geometry change events for top level windows
Top level windows already get their geometry changes via windowDidMove
and windowDidResize.

Change-Id: Ie6370aa290ef48c8b3ac770e77adb57ce43cbb47
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:42:04 +00:00
Tor Arne Vestbø 17e5158570 macOS: Treat default swapInterval (-1) as vsync-enabled display-link
Change-Id: I6d3d241d3813bfac36155ad219d4a338cb1ef6f7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:41:56 +00:00
Tor Arne Vestbø 21e25ff38b macOS: Simplify mouse tracking
We don't need to react to updateTrackingAreas, as we only have a
single tracking area that we can add once and forget. By asking
AppKit to track all events in the visible rect, we can also pass
a zero-rect for the tracking area.

Change-Id: I2545712adc49b51904d5adc11f1faca36901b49d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:41:51 +00:00
Tor Arne Vestbø 4697467e98 macOS: Explain QNSViewMouseMoveHelper for future generations
Change-Id: I61f38ee38d5afb657cd8b76b2b9dba1dac7167b4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-11 01:41:44 +00:00
Liang Qi fbfacd33be Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/android/templates/AndroidManifest.xml
	src/network/ssl/qsslsocket_mac.cpp
	src/widgets/styles/qstylesheetstyle.cpp
	tests/auto/corelib/kernel/qtimer/BLACKLIST
	tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
	tests/auto/testlib/selftests/expected_blacklisted.lightxml
	tests/auto/testlib/selftests/expected_blacklisted.tap
	tests/auto/testlib/selftests/expected_blacklisted.teamcity
	tests/auto/testlib/selftests/expected_blacklisted.txt
	tests/auto/testlib/selftests/expected_blacklisted.xml
	tests/auto/testlib/selftests/expected_blacklisted.xunitxml
	tests/auto/testlib/selftests/expected_float.tap
	tests/auto/testlib/selftests/expected_float.teamcity
	tests/auto/testlib/selftests/expected_float.txt
	tests/auto/testlib/selftests/expected_float.xunitxml

Done-With: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: If93cc432a56ae3ac1b6533d0028e4dc497415a52
2019-02-08 12:31:02 +01:00
Oliver Wolff bf7458c76f winrt qpa: Remove last windows phone leftovers
WINAPI_PARTITION_PHONE_APP is defined for all our winrt mkspecs nowadays
so the code can be used unconditionally.

Change-Id: I4f2b60a0b9bba5b407ebbc213c44a0e5b4057855
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-02-08 08:59:56 +00:00
Oliver Wolff 5f384bd39c winrt: Warn if OpenGL ES version is set to a value > 3.0
Our bundled ANGLE library only partially supports OpenGL ES > 3.0 so warn
users that there might be dragons.

Change-Id: I16711fe9f449e85dd8b2369e1fcec6c9f81d5ae0
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:55 +00:00
Oliver Wolff 932b13d3ec windows: Support OpenGL ES versions > 3.0 with ANGLE
Even though our ANGLE versions only partially supports OpenGL ES > 3.0,
there are users who want to use functionality that is available. By
setting major and minor version we can support this use case.

Fixes: QTBUG-72762
Change-Id: I9a1d3009355693baa971deb3c4bbf14c595edf0b
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:54 +00:00
Oliver Wolff 1036c45086 Revert "winrt: Skip context validation in ANGLE"
Our current ANGLE version (chromium/3280) relies on validation to be done
when doing the rendering, as the validation at the same time completes the
caching. Skipping the validation caused asserts and rendering issues.

The part of the validation that failed before is now deactivated in Qt's
copy of ANGLE as it is not relevant for our use case, so that validation
can be re-enabled now.

This reverts commit a1dec825f9.

Fixes: QTBUG-73317
Change-Id: I5fd176eaa0bc28d93ca93019b7092211fe5bcce5
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-02-08 08:59:53 +00:00
Oliver Wolff 86cf366a30 winrt: Use ES3 ANGLE code path when blitting widgets
We run into validation issues when using the ES2 code path when blitting
widgets on winrt. By using ES3 we not only avoid this issue, but there
might also be performance gains.

We now call window()->format() instead of window()->requestedFormat as the
latter will not respect the values that were set on initialization of the
native window (which is done in QWinRTWindow's constructor).

Change-Id: I5ed7a9326691375f9c9cb5d8d22ee8d1b643fbd0
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:51 +00:00
Morten Johan Sørvig de4f256d48 Wasm: enable thread support
configure.json: Make the “thread” feature be allowed
for wasm but disabled by default.

Change qmake.conf and wasm.prf to enable Emscripten
pthreads mode:
- Add USE_PTHREADS=1 linker flag
- Add PTHREAD_POOL_SIZE linker flag with a default pool size (4).
- Add TOTAL_MEMORY linker flag to set available memory (1GB)

It is possible to override options such as PTHREAD_POOL_SIZE
from the application .pro file using QMAKE_WASM_PTHREAD_POOL_SIZE
To change TOTAL_MEMORY, use QMAKE_WASM_TOTAL_MEMORY

Make qtloader.js work in pthreads mode:
- The Module.instantiateWasm callback must provide the module
  in addition to the instance to Emscripten.
- Set Module.mainScriptUrlOrBlob so that the pthreads web workers
  can access the main script

Task-number: QTBUG-64625
Change-Id: I1ab5a559ec97c27c5fc24500ba5f863bcd275141
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 16:13:26 +00:00
Friedemann Kleint a6f25dedd8 Windows style, themes: Fix deprecation warnings
Fix:
qwindowstheme.cpp:287:77: warning: 'const QBrush& QPalette::background() const' is deprecated: Use QPalette::window() instead [-Wdeprecated-declarations]
qwindowstheme.cpp:336:37: warning: 'const QBrush& QPalette::foreground() const' is deprecated: Use QPalette::windowText() instead [-Wdeprecated-declarations]
qwindowstheme.cpp:861:102: warning: 'static bool QPixmapCache::find(const QString&, QPixmap&)' is deprecated: Use bool find(const QString &, QPixmap *) instead [-Wdeprecated-declarations]
qwindowsvistastyle.cpp:635:56: warning: 'const QBrush& QPalette::background() const' is deprecated: Use QPalette::window() instead [-Wdeprecated-declarations]
qwindowsvistastyle.cpp:707:60: warning: 'static bool QPixmapCache::find(const QString&, QPixmap&)' is deprecated: Use bool find(const QString &, QPixmap *) instead [-Wdeprecated-declarations]
qwindowsxpstyle.cpp:743:58: warning: 'const QMatrix& QPainter::deviceMatrix() const' is deprecated: Use deviceTransform() instead [-Wdeprecated-declarations]
qwindowsinputcontext.cpp:448:49: warning: 'const QBrush& QPalette::background() const' is deprecated: Use QPalette::window() instead [-Wdeprecated-declarations]

Change-Id: I00a52a27b066caeb135ad4124f71ef3e09beafbf
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-06 22:11:56 +00:00
Gatis Paeglis 27065bdc50 ibus: allow filterEvent() from QWindowSystemEventHandler::sendEvent()
The async mode, which is also default mode will recurs if
QIBusPlatformInputContext::filterEvent() is called from
QWindowSystemEventHandler::sendEvent() callback.

The sync mode works fine without this patch.
Modes can be toggled via IBUS_ENABLE_SYNC_MODE envvar.

Removed redundant #ifndef and renamed one variable to
something more meaningful.

Change-Id: I8773445cef10212464cff09e3a70487fb38ac3fd
Reviewed-by: Takao Fujiwara <takao.fujiwara1@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-02-06 22:11:49 +00:00
Gatis Paeglis c0ebec51e3 xcb: respect big-request encoding in max request size
From big-request specification:

"This extension defines a mechanism for extending the length
field beyond 16 bits. If the normal 16-bit length field of the protocol
request is zero, then an additional 32-bit field containing the actual
length (in 4-byte units) is inserted into the request, immediately
following the 16-bit length field."

Meaning that the request requires 4 additional bytes. This patch provides
a convenience API for calculating maximum request data size.

Besides fixing QTBUG-73044, it was also discovered that calculations
for xcb_image_put (in QXcbBackingStoreImage::flushPixmap) were wrong.
The code assumed that xcb_get_maximum_request_length() returns bytes,
but what it actually returns is length which is measured in four-byte
units. This means that we were sending 4x less bytes than allowed by
the protocol. Furthermore, use the actual 'stride' (bytes per line) value
when calculating rows_per_put. The new stride value was introduced
by 760b2929a3, but was not updated in
rows_per_put calculations.

Fixes: QTBUG-73044
Done-with: JiDe Zhang <zccrs@live.com>
Done-with: Mikhail Svetkin <mikhail.svetkin@qt.io>
Change-Id: I06beb6082da3e8bc78225a87603914e796fe5878
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: JiDe Zhang <zccrs@live.com>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-02-06 22:11:44 +00:00
Karim Pinter 8a7c373f8e QNX QPA: Add support for Qt Virtual Keyboard
If the QT_IM_MODULE environment variable is set, then it loads the
IM module accordingly, otherwise it is using the PPS one, if it is
available.

Task-number: QTBUG-54576
Change-Id: Icb8b474805053d8297029096365783c2cabc2cbc
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
2019-02-06 22:11:11 +00:00
Boubacar DIENE b319d14110 Fix "error: too many arguments to function media_get_entity_by_name()"
Since the official v4l-utils-1.12.0 release, media_get_entity_by_name() function expects
only two arguments instead of three as in older versions thus breaking build of eglfs_kms_vsp2
backend.

Cf. https://git.linuxtv.org/v4l-utils.git/tree/utils/media-ctl/mediactl.h#n253

Fixes it by creating an overloaded wrapper function that will choose the right
version based on the signature of the media_get_entity_by_name function pointer
argument.

Fixes: QTBUG-73427
Change-Id: Idab52558b6f2f23137456c21e33ece1ef0e9aa4e
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-02-06 07:36:34 +00:00
Joerg Bornemann 05bcfb9011 Normalize some SIGNAL/SLOT signatures
...for a minor performance gain.

Change-Id: I4bef867055e069926fdc24fa98a6f94b6a0630e2
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-02-06 07:17:44 +00:00
Tor Arne Vestbø 850c922036 macOS: Don't deliver update requests for windows that need display
If a window needs display due to e.g. being resized, we need to wait
until the corresponding expose event has been delivered before we
resume update requests, otherwise the update requests may result
in partial paints that do not fully cover the area needing display.

Change-Id: Ibfb54bfe3c2e85b606ef67d34a6a5fdb85456edd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-04 21:53:54 +00:00
Christian Ehrlicher daee9af969 QtGui: mark obsolete QPixmapCache::find() functions as deprecated
QPixmapCache::find(QString) and QPixmapCache::find(QString, QPixmap&)
are deprecated since Qt4 times.
Explicit mark them as deprecated so they can be removed with Qt6.

Change-Id: Iaf185f69afe02203559a1c812fbb4a95c9049a1d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-02-02 12:49:25 +00:00
Timur Pocheptsov 8915904e2a QMacStyle - fix a weird NSBox geometry
For some reason, displayRectIgnoringOpacity renders NSBox with a
smaller height than we asked. So let's ask for more and translate.

Change-Id: I6e03ad99d1ccf746c89d58dd37d53d0087f15282
Fixes: QTBUG-71741
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-31 04:43:51 +00:00
Allan Sandfeld Jensen 744be250bf Fix building offscreen QPA with Qt XCB
Only builds without XCB or with system XCB

Change-Id: I1161c5b78c92308ac63c2e2907b9a5d8477ab2f0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-29 21:33:31 +00:00
Morten Johan Sørvig a4767bb9e0 Wasm: remove debug output.
Change-Id: Ieb9c06203626854f9b7c561563c3261510230803
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-01-29 18:52:03 +00:00
Morten Johan Sørvig 64e8e69d25 Cocoa: Don’t cache accessibility role
The object role may in some cases (e.g. when using
Qt Quick Loaders) be changed after construction, and
we don’t have RoleChanged events.

Change-Id: Idb246c1c1206221cacd93c83cbd07a0e3d98cb0e
Fixes: QTBUG-72967
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2019-01-29 18:39:31 +00:00
Tor Arne Vestbø cf53ed97a1 macOS: Apply alpha channel to surface format even when non-default
Relying on QSurfaceFormat() to check whether or not we should set
the alpha channel size makes it impossible to tweak other properties
of the surface format without also having to set the alpha. There's
no need to do such as broad comparison, we can check the alpha channel
size for its default value instead.

Change-Id: Iac31d37c9460eb3e7ec5ee15902f7e5addb48178
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-01-29 11:12:41 +00:00
Friedemann Kleint 61d50cbc96 Windows/Direct2d QPA: Use nullptr
Change-Id: I6ce01caa58de78e0eb61e243ee1e7b05cc1f5568
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-01-28 21:14:58 +00:00
Andre de la Rocha 850858cce6 Windows QPA: handle pointer messages received during a drag and drop
It seems the pointer message handler was skipping the handling of touch
and pen messages during a drag and drop operation, preventing the
generation of events that quick was expecting and triggering a crash
inside MouseArea.

Fixes: QTBUG-73120
Change-Id: I2921e38dd7e44846607e6c614d7393cfa5664c69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-28 16:42:30 +00:00
Andy Shaw cf184f1dd4 Android: If there is no surrounding text then don't try to delete it
If there is no surrounding text then we can save time by not sending an
event to delete it as there is nothing to be deleted. This prevents the
underlying widget from being confused as to where the cursor and anchor
is later on when entering in new text.

Fixes: QTBUG-65584
Change-Id: Ic6325c119327048dffd2baa68520871fb56370d5
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-01-28 15:26:33 +00:00
Mikhail Svetkin 3b514f8535 qtlite: Fix build libs with -no-feature-regularexpression
Change-Id: I427ff1f8f4986fbf466aba60a9d3de614c1e006f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-01-27 21:01:53 +00:00
Samuel Gaist de3716f0ba Fix QMacStyle QPalette warning
The code was still using QPalette::background. It's now using window.

Change-Id: I9a47018d559d638ff69b1e4b2d7e2335e04a2a3a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-26 13:18:57 +00:00
Liang Qi 980567b3a3 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/android/templates/AndroidManifest.xml
	tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp

Change-Id: I4c9679e3a8ebba118fbf4772301ff8fde60455b9
2019-01-26 08:35:40 +01:00
Alexander Volkov 730cbad882 xcb: Avoid repaint lags with DnD
The lags can be seen when dragged data is requested for a
MIME type. This leads to calling QXcbClipboard::waitForClipboardEvent()
which runs a loop in the GUI thread and processes events from
QXcbEventQueue. The loop ends when a corresponding event is
received, otherwise it makes a delay of 50 ms before the next
iteration.

Sync with QXcbEventQueue thread by QWaitCondition instead
of using the delay. This way the loop will end as soon as
possible and Expose events will be processed with minimal
delay.

Task-number: QTBUG-44849
Fixes: QTBUG-55442
Fixes: QTBUG-62344
Fixes: QTBUG-73253
Change-Id: Ie18d63b51a7260c83d53ffe1169b25e5135dd73b
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-01-25 15:59:51 +00:00
Elena Zaretskaya c9b9a0ea2f Ability to switch language under platform eglfs/linuxfb
I need to change keymap under platforms eglfs and linuxfb (without wayland).
I use the function QEglFSFunctions::loadKeymap(const QString&), but there's
no way to switch between english and another language than to press AltGr as
a modifier. I added the function that allows to change the language. And also
added the ability to switch the keymap and language for the platform linuxfb

and also added the ability to switch the keymap and language for the platform linuxfb

Task-number: QTBUG-72452
Change-Id: I37432cf60d375555bea2bf668ec1387322b4964f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-01-25 15:00:07 +00:00
Timur Pocheptsov c4e7f3ab65 QMacStyle: fix PE_PanelLineEdit and PE_FrameLineEdit handling
NSTextField (or its cell) that we use to paint PE_FrameLineEdit overpaints
whatever fill color QCommonStyle::drawPrimitive(PE_PanelLineEdit) found
in opt->palette and using for PE_PanelLineEdit. As a result the ability
to customize widget's colors is lost - we always use the system default
colors on top of the custom background color. It's not a problem
in 'Dark' mode apparently (controls are transparent there anyway).
If it's not 'Dark' mode and common style, indeed, wants from QMacStyle to
draw PE_FrameLineEdit - we set the correct background color there.

Change-Id: Idad853257f637b028af4bd1181d78afdf079f455
Fixes: QTBUG-73183
Fixes: QTBUG-72662
Fixes: QTBUG-72428
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-01-25 11:21:43 +00:00
Andre de la Rocha 4c46e3189a Windows QPA: Cache "forcedScreenForGLWindow" to avoid overhead
The fix for QTBUG-50371 caused an overhead when you hover over a
secondary window like a tool tip, menu or combo box due to the
forcedScreenForGLWindow() function being called, which loads
dx9.dll and sub-dlls and unloads them afterwards. This fix
caches the required info on the first call, and only refreshes
it when required by a display/settings change.

Fixes: QTBUG-73008
Change-Id: Ie604ba4034ad8041b971f5aa46bd43ae03decd55
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-24 23:00:42 +00:00
Friedemann Kleint c154766630 Windows QPA: Move the code installing the filter for WM_TASKBARCREATED
Previously, the code was in the constructor, where hwnd was 0 and
ChangeWindowMessageFilterEx() failed. Move it into
QWindowsSystemTrayIcon::ensureInstalled() after the creation of the message
window.

Change-Id: Iff4c6d6d6b11bdcace7514ad421c96c94e52bbba
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-01-24 22:06:23 +00:00
Friedemann Kleint 4aa0bcf5f5 Windows QPA: Fix tray icon becoming visible before show
Use the NIS_HIDDEN flag of the NOTIFYICONDATA structure to prevent it from
becoming visible before show when calling NIM_ADD with the icon data.

Fixes: QTBUG-73185
Change-Id: If5cc5a4930a889623a5cac84138185ad04765ece
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-01-24 22:06:17 +00:00
Friedemann Kleint 19d1fdc5a5 Windows QPA: Use member initialization in struct WindowCreationData
Change-Id: I165e795ea75a8d5cb5d3256b3ef377239d24a245
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-01-24 21:17:28 +00:00
Andy Shaw 461ef575bc Always escape the table names when creating the SQL statement
Since some databases are case sensitive if part of the query is quoted,
then we should ensure that all instances of the table name are escaped
unless the test is delibrately testing the non-escaped case.

As a result, this commit also removes some expected failures pertaining
to PostgreSQL and also adds an entry to the list of tables being dropped
when a test is finished.

[ChangeLog][Sql][PostgreSQL] QSqlDatabase is now stricter about table
names when used with record() and primaryIndex(). If the tablename was
not quoted when it was created, then the table name passed to record()
and primaryIndex() needs to be in lower case so that PostgreSQL is
able to find it.

Fixes: QTBUG-65788
Change-Id: Id1f54cb66b761c39edf858501b730ede7eec1fd3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-01-23 20:07:09 +00:00
Eskil Abrahamsen Blomfeldt e0dc6dce22 Android: Set minimum supported version to android-21
With the current distribution, this is 90% of active devices, and
it was released in 2014. Qt 5.12 is LTS and will continue to support
older Android versions for a long time to come.

This is to reduce the testing needed on outdated platforms and
allow ourselves to use some newer APIs unconditionally in Qt.
Android 21 was chosen because it is the minimum version that supports
64 bit builds.

[ChangeLog][Android] Increased the minimum supported Android version
to Android 5.0 (API level 21).

Fixes: QTBUG-70508
Change-Id: Ia7b4345e42ca05a25a292f11ccbb8cbd692cf8f0
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-01-23 15:21:56 +00:00
Qt Forward Merge Bot e3da05f39a Merge remote-tracking branch 'origin/5.12.1' into 5.12
Change-Id: Icebd151eae0cf9d400319a42573290d1a911ce26
2019-01-23 10:13:29 +01:00
Samuli Piippo 8c0a7a46c6 egl_viv: cast EGLNative return types from vivante functions
All vivante functions return void* even when the actual native type
(EGLNativeDisplayType, EGLNativeWindowType, etc.) might be typedef'ed
as something else, as they do when the CFLAGS from egl.pc are now used.

Task-number: QTBUG-73038
Change-Id: I7650b691663201d03d8c15ead155aa3c231fba29
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-01-22 12:32:52 +00:00
Rolf Eike Beer 76ee79b8b9 qtbearer networkmanager: fix whitespace
Change-Id: I7802e33e21fa882468b4c8e68677d4881b95d15c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-01-22 09:24:36 +00:00
Ulf Hermann 730f0df17d Windows: Set opengl swap interval whenever we make a new window current
Apparently the windows OpenGL implementation associates the swap interval
not with the context, but with the window.

Fixes: QTBUG-59660
Change-Id: I78c4cc9f8a5815779a7489edfd731a1debb1e590
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-22 17:20:53 +00:00
Gatis Paeglis 30e665f747 eglfs_kms: Fix build with -no-opengl
This patch amends 259adc5e77

Change-Id: Ie8d8a8e0817cea455eb1fe14501e8429d29428b8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-01-22 06:35:15 +00:00
Qt Forward Merge Bot f94ca82e0f Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	.qmake.conf

Change-Id: Ibfcb30053f3aacb8ec2ec480e146538c9bf440ea
2019-01-21 13:03:09 +01:00
Timur Pocheptsov 8961493b40 QMacStyle - take into account that native controls are transparent now
We use NSButton to emulate tabs in QTabWidget. Starting from 10.14
in dark theme those button objects tend to be somewhat transparent,
thus widget's frame is visible through tab buttons. This is true for
native controls also - NSButton, NSSegmentedControl, NSTabView - they
all show the similar behavior. The only difference is NSTabView, which
is the closest control to our QTabWidget - tab buttons are transparent,
but they (AppKit) it would appear just do not draw the frame under
this area. Let's do the same, but using clipping.

Task-number: QTBUG-71741
Change-Id: I9f19014d0db5f36bacf76ee0068fae6eee793c0f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-16 06:20:02 +00:00
Andre de la Rocha af99497bdb Windows QPA: Support "press and hold for right-clicking"
Windows sends a fake WM_RBUTTONUP/WM_RBUTTONDOWN when the user presses
and holds the pen/finger on a tablet/touchscreen, e.g., in order to
show a context menu. Windows only sends already synthesized legacy
mouse messages for this condition, instead of anything detectable in
the pointer messages. So we need to handle these legacy messages in the
Windows QPA.

Task-number: QTBUG-36162
Change-Id: Ia93c423601e2e8a8baac3f9b7791bf8a3113885a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-14 05:22:38 +00:00
Andreas 5dadc3d807 xcb: fix initialization of XRandr and XRender
Fixes: QTBUG-72957
Change-Id: Ia698eef5dae4e2d35ca2e565fbdc23da40c83d8a
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-13 18:18:34 +00:00
Christian Ehrlicher 8551b7d93c QSQL: cleanup/modernize PostgreSQL plugin
Cleanup/modernize the PostgreSQL plugin
 - use nullptr
 - use range-based for loop
 - use QStringLiteral or QByteArray::fromRawData instead
   QLatin1String/QString::fromLatin1 where possible
 - use QRegularExpression instead QRegExp
 - use QQueue instead QList
 - uppercase SQL keywords

Change-Id: Ie22be1538328ff1e2b663066ede96741d271e050
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-01-09 21:41:01 +00:00
Andy Shaw e70230405d Don't treat the ampersand in a titlebar as a mnemonic
As the mnemonic has no meaning when it is in a dockwidget title, we
should just treat it as a literal ampersand instead and display it
as such.

Fixes: QTBUG-54485
Change-Id: I96c856ce2771a68d226f48f8f47affc24f1c53cd
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-08 21:37:04 +00:00
Andy Shaw afb08ac5da Use jint instead of jboolean where applicable and initialize variables
This amends change c6af7cf666 which had
incorrectly used jboolean to store the result of getCursorCapsMode()
and thus lost the information it was passing. The variables are also
initialized in case there is a lock problem when calling runOnQtThread.

Fixes: QTBUG-72783
Change-Id: Ibdc21e348c25ee4fdff242d14b3722c6551b042c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-01-08 16:34:15 +00:00
Liang Qi 0e96b5fe48 Merge remote-tracking branch 'origin/5.12' into 5.12.1
Conflicts:
	src/widgets/kernel/qtooltip.cpp

Change-Id: Ic2f9a425359050eb56b3a4e5162cf5e3447058c8
2019-01-08 09:34:24 +01:00
Max Mazurov 2cd633e7ee XCB: Use application name for X11 selection owner name
This makes it possible for clipboard managers (or other scripts) to
distinguish different Qt applications and act differently.

Change-Id: I5bc5a1914b51127b24a81142ca9dbdb196ffd0d8
Fixes: QTBUG-72806
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-07 17:12:54 +00:00
Gatis Paeglis 0c54e0251f ibus: send batched QInputMethodQueryEvent event
Change-Id: Idc537a497569d86bb63776934d5e0bbbc39291be
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-01-04 20:12:04 +00:00
Gatis Paeglis fe63900dc9 xcb: rework focus-in peeker so we can drop PeekFunc API
The API for registering temporary peek function was added ~7 years
ago by 78264f333e. It was never been
used for anything else. The solution from 78264f333 also did not work
very well on KDE desktop, quoting Martin Flöser:

"In case the keyboard gets grabbed by another process and immediately
ungrabbed the active Qt application window receives a FocusOut and a
FocusIn event. FocusOut on the grab of keyboard, FocusIn on the ungrab.

Qt registers a peek function for checking the FocusIn event, but the
timespan is too short: the new event is not yet queued. This causes
a QEvent::WindowDeactivate being emitted, followed directly by a
QEvent::WindowActivate. This has quite some side effects, for example
rendering flickering in the GUI (switching to inactive/active in short
time frame), hooks on WindowDeactivate being run, etc.

Real world examples for such short keyboard grabs are global shortcut
listener applications like kglobalaccel5. It has e.g. a passive key
grab on the mute key, which is then turned into an active grab when
the key is grabbed. Kglobalaccel5 immediately ungrabs the keyboard
and flushes the connection if it gets a key event, but it of course
causes the sequence of FocusOut and FocusIn events in the active
Qt window."

Reworked the code to use QTimer instead, which is more elegant solution,
because it does not rely on race-conditions, but uses a concreate time
to wait instead. Also the need to write focusInPeeker() caused us to
duplicate event handlers that were present already elsewhere.

Change-Id: I647e52fb2634fdf55a640e19b13265c356f96c95
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-04 20:11:52 +00:00
Andy Shaw 6191249259 Use the AndroidDeadlockProtector when using a blockingqueued connection
This amends 2afe4a1a07 to account for
cases where it was crashing when it was using the QueuedConnection.
The problem came from the fact it was blocking while waiting for a
surface update which was pending to come later on, but the Android
thread was already blocked which prevented it from being processed.

Fixes: QTBUG-72101
Change-Id: I43e355cf1a7792599f23827903d065b1b1298902
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-01-04 12:39:15 +00:00
Liang Qi 03039979b5 Merge remote-tracking branch 'origin/5.12' into dev
Also blacklist tst_QRawFont::unsupportedWritingSystem() and
tst_QGlyphRun::mixedScripts() on windows for now.

 Conflicts:
	qmake/generators/makefile.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h
	tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
	tests/auto/gui/text/qglyphrun/BLACKLIST
	tests/auto/gui/text/qrawfont/BLACKLIST

Task-number: QTBUG-72836
Change-Id: I10fea1493f0ae1a5708e1e48d0a4d7d6b76258b9
2019-01-04 07:33:14 +01:00
Tor Arne Vestbø 4dc2bc323c macOS: Remove Mojave forward-declarations now that we build with Xcode 10
Change-Id: I8528932f3744fbf3473219b6eeda7c26ac039b67
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-01-03 18:38:18 +00:00
Andre de la Rocha df27484fc0 Windows QPA: Fix mouse pointer capture and Enter/Leave events
Qt expects the platform plugin to capture the mouse on any button press
and keep it captured until buttons are released. The missing capture
logic was causing extra Enter/Leave events to be generated.

Change-Id: I5a78ea600374701c740f395b38ba5abd51f561d8
Fixes: QTBUG-72600
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-03 15:23:39 +00:00
Gatis Paeglis dd988e2074 configure: add XCB GL integration features
This way Qt builders can see if everything has been configured
properly for XCB GL integrations at configure time, instead of
at the end of the build process.

Change-Id: I00740cc2edd7f6ecfcda0ddfb22649d1b4db4aa2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-03 10:29:17 +00:00
Gatis Paeglis 7d8fe4d98f configure: make xcb-render a hard dependency for xcb plugin
Its been available by default since at least libxcb 1.5, and in Qt 5.12
we have even increased the minimal required libxcb version to 1.9.

Having configure switches for extensions is a legacy from Qt 4. There
are still few exceptions in Qt5, where the reason is that we have to
support Linux distributions that don't ship recent enough libxcb.

Task-number: QTBUG-30939
Change-Id: I0a02d93b6411119ec018b0cb8fe5c63beeab62ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-01-03 10:09:40 +00:00
Gatis Paeglis 6899117a59 configure: properly atomize render vs. renderutil
xcb-render is a C interface for X11 extension. xcb-render-util is a
utility library that complements xcb-render by providing convenience
functions and interfaces which make the raw X protocol more usable.

Bumped xcb-render-util version to avoid having include hacks. We were
bundling 8 years old release 0.3.8 (Apr, 2011). 0.3.9 is the latest
release and it was relesed 4,5 years ago (Jun, 2014). All CI machines
have 0.3.9. The only thing that have changed in xcb-render-util sources
since 2011 is that we don't need to have various hacks to include
xcb_renderutil.h in C++ files. Upgrading bundled XCB libs was also
requested in QTBUG-71109.

Task-number: QTBUG-71109
Change-Id: Ib261f7584ad81be95660123b007e2200a3042f4c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-03 10:09:34 +00:00
Oliver Wolff f9d8762d37 winrt: Remove yet another Windows Phone leftover
Hardware and camera button handling are phone specific APIs we no longer
support in Qt.

Change-Id: Ib11f894a426b8e4b71acf24876437ddab2cea548
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-02 23:32:34 +00:00
Christian Ehrlicher 7ba16f4c1e QComboBox/WindowVistaStyle: restore focus rect
The focus rect for the QComboBox was removed during the refactoring done
in 5c60e4b8f9.
Readd the functionality in a similar to
QWindowsStyle::drawComplexControl().

Fixes: QTBUG-69239
Change-Id: I74e4060fbe52432318e3c986fc838cf353d99843
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-02 21:32:34 +00:00
Andre de la Rocha 29ea287716 Windows QPA: Avoid duplication of mouse events
The code being removed was added as a workaround to support the use of
QCursor::setPos() with unit tests. This function was used to move
the Windows mouse cursor, internally calling SetCursorPos(), which
generates only WM_MOUSE* messages, bypassing the pointer messages.
However, the workaround had the unintended effect of generating
duplicated mouse events for normal mouse movement, which caused issues
like the one described by QTBUG-70974. However, it seems the tests are
no longer depending on it, allowing it to be removed.

Fixes: QTBUG-70974
Change-Id: Iaf0d64c73951ab1b660e9bb90e7ee009e53fbd3a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-02 15:29:13 +00:00
Morten Johan Sørvig f0dd6655e1 Fix QSystemTrayIcon stale pointer access
The child imageCell is a NSView and may be retained by Cocoa,
which means it may outlive the parent QNSStatusItem.

Clear its parent pointer to avoid referencing a stale
pointer.

Task-number: QTBUG-47929
Change-Id: I6078070b8c9f512ecd034fee4e54b1d8282dabdf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 09:23:50 +00:00
Morten Johan Sørvig fb67ac6368 Modernize QNSImageView implementation
Use Objc properties instead of instance variables.

Change-Id: I4bddf2c9c824467d7c42dd5bb0c3b4aacd6b27be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 09:23:42 +00:00
Tor Arne Vestbø 69f7115c43 macOS: Merge qt_mac_createRoleFonts into only caller
Change-Id: Id6e61a70e4ebe47896dcbc8680d1d6b06c747871
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-22 14:33:33 +00:00
Andy Shaw 4aac07d023 Android: Add support for setting/getting html and uris from clipboard
This also updates the used API to use ClipData and not the deprecated
ClipboardManager API.

[ChangeLog][Platform Specific Changes][Android] QClipboard now supports
HTML and URI data.

Fixes: QTBUG-47835
Fixes: QTBUG-71503
Change-Id: I43f82bfc63b3d159087c0fb6c840c186a370e20c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-12-21 13:25:54 +00:00
Sami Nurmenniemi b45c1e1c0e Add possibility to configure QNX display order
Add environmental variable QT_QPA_QNX_DISPLAY_CONFIG for pointing
to a file containing display order. Configuration file format is:
{
    "displayOrder": [ 3, 1 ]
}

Task-number: QTBUG-66394
Change-Id: I8c20eb2b5cf35617d5a030213f5d4d68e62ace85
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
2018-12-20 23:18:00 +00:00
Christian Ehrlicher 3a74a3b5a6 QSQL: add support for PostgreSQL 11
Add support for PostgreSQL 11 by adding QPSQLDriver::Version11 and use
it in qMakePSQLVersion().

[ChangeLog][QSQL][PostgreSQL] Added support for PostgreSQL 11

Fixes: QTBUG-71642
Change-Id: Ie3cd3a81fd00084b587457b91b4e92c2e7001172
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
2018-12-20 22:29:35 +00:00
Thiago Macieira 16aae58e2a Fix build with Clang 3.8
Commit 128a6eec06 replaced the static,
unsorted list with a sorting implementation via templates.

qmakearray_p.h:109:8: fatal error: recursive template instantiation exceeded maximum depth of 256
qmakearray_p.h:111:39: note: during template argument deduction for  class template partial specialization 'QuickSortFilter<Predicate,
 QuickSortData<type-parameter-0-1, type-parameter-0-2...> >' [with Predicate = LessThan, Head = Xkb2Qt<269025163, 16777462>, Tail = ...]

Fixes: QTBUG-72579
Change-Id: I548dbfddb69b4fd6a0a3fffd15717ac2bf2d7361
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-12-19 18:44:19 +00:00
Oswald Buddenhagen 65463764f2 configure: properly atomize xcb-syslibs
as it is now cheap to test for individual libraries and headers, split
the xcb_syslibs monster-library into its parts.
the compile test remains a single blob, though, as that didn't get any
cheaper. whether it's worth keeping it in the first place is debatable.

Change-Id: Id7cae7925bb4d77069437512abecf14feea749f2
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-12-17 21:29:17 +00:00
Oswald Buddenhagen 1ef9859e7e configure: refactor directx checks
properly atomize the libraries and express their dependencies, and
adjust the project files accordingly.

note that we don't try to use any additional paths, as all SDKs we
currently support have built-in directx 11 support:
- msvc2013 comes with win sdk 8.1; that is also used for win7 targets
- mingw-64 5.3 (though this one is missing fxc, which is why the code
  path for using an external sdk for that remains)

Change-Id: Ib44e389ef46567308293c2bbcad20a96e8ef70c7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-12-17 21:29:05 +00:00
Christian Ehrlicher 7ec7f338bc XCB plugin: replace deprecated QList::swap()
QList::swap(int, int) was deprecated. Replace it with swapItemsAt()

Change-Id: I077c5b7222e40b928ee9035b8cbf4ebcc91aa15e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-12-17 19:50:11 +00:00
Lorn Potter 582237a593 wasm: send mouse release to proper window
When the mouse is released, it gets the current window to send the
event to from the pointer position.
If the release happens out of the browser viewport, that window is null
and the release event essentially gets ignored. This change keeps
the last known QWindow object to send the event to until the release.

Also replace hardcoded emscripten events with enum names.

Task-number: QTBUG-71948
Change-Id: I354d14479a43489f210cca31d6b9e0f65d083bb0
Fixes: QTBUG-71948
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-12-16 21:29:15 +00:00
Oswald Buddenhagen e80bf655e9 configure: verify header presence against sources
in addition to the actual library resolution, also resolve the headers
belonging to the library, to validate the include path, and possibly
ensure that the right version of the library is present.

the "include" entries were moved out of the "test" objects, and renamed
to "headers". this cleanly permits libraries without compile tests.

the headers were not put into the sources, because the variance among
the includes is generally orthogonal to the variance among the
libraries.

note that this - like the library resolution - provides no support for
darwin frameworks. consequently, the opengl libraries are excluded from
the conversion on darwin.

similarly, wasm is excluded (centrally), because emcc is magic and would
need advanced wizardry to be dealt with.

Change-Id: Ib390c75371efa2badcfec9b74274047ce67c3e5a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2018-12-14 23:44:30 +00:00
Qt Forward Merge Bot ad4f359f80 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I0fe623517af28e408b642c879efd59f633ab63ac
2018-12-13 01:00:11 +01:00
Andre de la Rocha bc997b856a Windows QPA: Fix touch message queue handling
In the handling of pointer messages for touchscreen we use a queue that
is flushed when mouse messages synthesized by Windows are received.
However, these fake mouse messages should be otherwise ignored. Their
handling was causing issues with PointHandler in QtQuick. This change
fixes the part of QTBUG-71431 that causes a single touch drag to behave
unexpectedly with PointHandler.

Task-number: QTBUG-71431
Change-Id: Iccdd554876f411bce2dd1f922a3d889e61b7bb1c
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2018-12-12 20:10:49 +00:00
Frederik Gladhorn 384b9d8fed macOS accessibility: Implement accessibilityFrame
Change-Id: Id78d3826eb18ff5ca306ac190543a7ff37b2f014
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-12-12 07:25:28 +00:00
Friedemann Kleint e209321966 Use Q_DISABLE_COPY_MOVE for private classes
Change-Id: I3cfcfba892ff4a0ab4e31f308620b445162bb17b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2018-12-12 07:23:54 +00:00
R.J.V. Bertin 6b52c1834d Offscreen QPA: use a CoreText font database on macOS
Without this applications using the Offscreen QPA don't have
access to any fonts on macOS and thus cannot render text correctly.

Task-number: QTBUG-72335
Change-Id: I8e58c066365d0231d0993ad3b480d957a32f7f7b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-11 18:54:52 +00:00
Qt Forward Merge Bot c18c63033e Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev 2018-12-11 00:47:12 +00:00
Qt Forward Merge Bot a2fd99c430 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I91e684e74c36467efda8ded6ed19791baa0c1a1f
2018-12-11 01:00:13 +01:00
Ivan Komissarov 177577932e qwindowsxpstyle: Add std::nothrow to new
There is no sense in testing the 'buf' pointer against null, as the
memory was allocated using the throwing 'new' operator. However, since
this function already can fail in other cases, the 'buf' pointer can be
checked for nullptr after the nothrow new.

Task-number: QTBUG-71156
Change-Id: Ibca5d672544d3980dd8890474e3e2fbf7443e05d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-10 21:15:09 +00:00
Sergio Martins 19d7bd3d63 Fix a couple of unused QStrings
This is needed so we can add Q_WARN_UNUSED to QString.
The xcb one might even be a bug.

Change-Id: Ia2d2563bdd10aa747014410df4990597969f4634
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-12-10 13:05:18 +00:00
Sergio Martins 3464e1e5c7 Add a few qAsConst() to range-for to prevent detachments
places indicated by clazy

As a drive-by, fixed minor styling issues in the affected lines.

Change-Id: I88d3fc0c8573cde0e61f19a18dd9ea697ee40c34
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-10 11:47:28 +00:00
Joerg Bornemann ed90c306f2 Fix addition of the wasm platform plugin
Add the plugin; do not replace the whole SUBDIRS value.

Fixes: QTBUG-70375
Change-Id: Id40a69f54dfde5eb88894323c7e1146b6cad5a75
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-10 06:45:03 +00:00
Qt Forward Merge Bot 9c325e0a3c Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12 2018-12-10 02:11:37 +00:00
Qt Forward Merge Bot 0a88c5e92b Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: If49df791f73e9edf616baa094e0f301a44cb853d
2018-12-10 01:00:19 +01:00
Tor Arne Vestbø 161c569314 macOS: Reset font glyph caches when application theme changes
Our glyph caches on 10.14 are based on the application appearance, so when
the application goes from dark to light or light to dark, we need to reset
and re-populate the glyph-caches to account for the new appearance.

Change-Id: If019d8cfa33ffb2b14747444b2ff74b288992f55
Fixes: QTBUG-71018
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-12-09 23:22:14 +00:00
Qt Forward Merge Bot fc11604964 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I10ae61ec6867b38601d85d6fc34e1f6a6ba0cc11
2018-12-09 01:00:43 +01:00
Qt Forward Merge Bot f8c5c13564 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ied1194730e75a6f30839bbf5429aa2699230288e
2018-12-08 01:01:00 +01:00
Oswald Buddenhagen 501ff0a18c untangle the egl-x11 relationship in the build system
egl-x11 is used in two places:
- the eglfs-x11 plugin, which has a hard dependency on xcb-xlib
- the xcb-egl plugin, which has a soft dependency on xcb-xlib

that means that the egl-x11 configure test needs to be untangled from
xcb, and that eglfs-x11 should be a separate feature with a proper
dependency declaration.

when the plugins that need egl-x11 are not built, it also makes no sense
to build the respective integration in the egl_support module (even if
it's possible to coax it into building), so adjust things accordingly.

Change-Id: Ic729d0b7c893dd00844567329205c24ea2703033
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-12-07 23:49:15 +00:00
Oswald Buddenhagen 3ee7aa72b7 configure: atomize xcb-* tests properly
xcb is a dependency which should be detected upfront.
same for xlib.

this also removes calls to functions coming from the dependencies from
the tests (both because these calls prove nothing, and because at some
point we will stop linking transitive deps).

Change-Id: Iac77305eab33ea8ff5c71302cef980eb908d8403
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-12-07 23:49:04 +00:00
Liang Qi 153726bc16 Merge "Merge remote-tracking branch 'origin/5.12.0' into 5.12" into refs/staging/5.12 2018-12-07 20:55:07 +00:00
Thiago Macieira ec31953007 Fix build using Windows SDK 10.0.17763
c:\qt\qt5\qtbase\src\3rdparty\libjpeg\src\jmorecfg.h(242): error C2371: 'boolean': redefinition; different basic types
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpcndr.h(193): note: see declaration of 'boolean'

Instead of trying to guess if a certain header has been #included and
whether that header does typedef something to boolean, let's just use
the preprocessor to hide, like some people do for X11/Xlib.h's Bool (see
qmetatype.h where we refused).

Change-Id: I05b8d7ba19004af99f3cfffd15693a87e175f05d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-12-07 18:52:16 +00:00
Andre de la Rocha f184f1a481 Windows QPA: Fix QDockWindow Drag & Drop
Pointer messages should not be handled when we are inside a move/resize
modal loop. DefWindowProc() should handle this case instead.

Fixes: QTBUG-72078
Change-Id: I5ad7283bcf0cfe0ff7d21cf5640270c361b8ad8d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-07 15:49:56 +00:00
Frederik Gladhorn e61028281f macOS accessibility: Rename parentElement to accessibilityParent
The NSAccessibility protocol has a property accessibilityParent.
This adds the implementation. The protocol will be adopted in a
follow-up commit.

Change-Id: I648cdc201950159e8268743a7fcdd24beb58c1c6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-06 13:58:45 +00:00
Daniel Vrátil 97d8be10cd MySQL: Free the results when QSqlQuery::finished() is called
Calling mysql_stmt_free_result() frees the results of the last
executed query while keeping the prepared statement valid. This
allows to keep around prepared QSqlQueries without the overhead
of keeping all the results in memory.

Change-Id: I4589e90857cc4e9a6f9612799bfca967a67e2ab2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-12-06 09:33:45 +00:00
Qt Forward Merge Bot aec026fe1e Merge remote-tracking branch 'origin/5.12.0' into 5.12
Change-Id: I54b4c14bed5150d3034ac87907a09254fd78face
2018-12-05 09:18:01 +01:00
Liang Qi 5d5c00c676 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/gui/painting/qdrawhelper.cpp

Change-Id: I4916e07b635e1d3830e9b46ef7914f99bec3098e
2018-12-04 09:58:43 +01:00
Qt Forward Merge Bot cf708de03a Merge remote-tracking branch 'origin/5.11.3' into 5.11
Change-Id: Idcb3f03013b54385f2322d9a2a559b41846ece79
2018-12-04 09:38:38 +01:00
Tor Arne Vestbø b82559244e macOS: Account for LC_BUILD_VERSION when checking SDK version and deployment target
The more modern LC_BUILD_VERSION load command was introduced in the 10.13
SDK to unify the various versions of the LC_*_VERSION_MIN command. When
building with a deployment target of 10.14, the linker will use this
load command instead.

Change-Id: Ic3571fdbfdf4dfb9346128c6f6e75d1e06f86cd2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-12-03 22:44:45 +00:00
Lars Knoll 7f4d0405b4 Rename QList<T>::swap(int, int) to swapItemsAt()
The old name was confusing as it conflicted with
QList<T>::swap(QList &other), that was doing something
completely different.

Rename the method to swapItemsAt() which is a lot clearer.

Change-Id: Iac77a1e790a7256766f83a24d2a243c880d875f4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-12-03 17:57:09 +00:00
Giuseppe D'Angelo 3e75c2965c Remove QLatin1Literal usages
That's an undocumented Qt 4/3/2 remnant, start remove usages.

Fix incorrect include header in qclass_lib_map.h as a drive-by.

Change-Id: I939be2621bc03e5c75f7e3f152546d3af6d37b91
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-06-10 16:50:31 +00:00
Friedemann Kleint 27e7234963 Windows QPA: Fix clang warnings about using typedef
Replace by using (except for function pointers).

Change-Id: I0dfe03c22f9f87155003d13a6376381623df7217
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-05-24 16:34:40 +02:00
Marc Mutz 2f542dd996 Use QStringView overloads of <QDate/Time>::toString()
There are no QLatin1String overloads, so using QLatin1String as the
format string produced a temporary QString. Use QStringViewLiteral
instead.

Change-Id: I682eb8cfaa98fdcfb491edd290460db636a98a9f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-05-29 18:24:29 +02:00
Friedemann Kleint b61d52f98a Windows QPA: Replace Q_DISABLE_COPY by Q_DISABLE_COPY_MOVE
Fix clang warnings like:
warning: class 'QWindowsStaticOpenGLContext' defines a default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions

Change-Id: I736d20476ef407100b6ecb654d1112106e545758
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-05-24 15:13:34 +02:00
Friedemann Kleint 98f9d4a029 Windows QPA: Use nullptr consistently
Change-Id: I09297e34bd62359e31c483199ade1d7a0baf7195
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-05-28 14:20:23 +02:00
Tasuku Suzuki f5bfb7a8db Fix build without features.itemviews
Change-Id: I9a7c3b2a3ad68ea76b1d6b79192b936e7cd1d44e
Reviewed-by: David Faure <david.faure@kdab.com>
2019-05-12 16:24:53 +09:00
Tasuku Suzuki fe4a7de238 Headers cleanup in mac style
Solve many duplication between _p_p.h and .cpp, sorted by module and
header name, and move headers for each features at the end of includes.

Change-Id: Ice9189c10d062bc473258b7ace279df057102167
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-05-12 14:34:13 +09:00
Oswald Buddenhagen 521a85395d configure: actually resolve libraries into full filepaths
this considerably speeds up failures, as no doomed build is attempted,
and produces more reliable results, as no second lookup (which would be
subject to environment changes) is done any more during the build.

in principle, this also opens up possibilities like selecting specific
variants of dependencies, automatically extracting rpaths, etc.

qt_helper_lib.prf also needs to create fully resolved library names now.

Change-Id: I65f13564b635433030e40fa017427bbc72d1c130
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-12-03 11:25:56 +00:00
Eirik Aavitsland 49319734c1 ico image handler: check for out of range image size
Make the decoder fail early to avoid spending time and memory on
attempting to decode a corrupt image file.

Change-Id: I598db817c387867a449040f5be5427c8b8746483
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-12-03 11:25:30 +00:00
Tor Arne Vestbø 58e66a2573 CoreText: Define font smoothing gamma along with rest of relevant code
Change-Id: I57909603732de6c1a91c744a358968941e64acdf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-30 14:47:50 +00:00
Andy Shaw 2afe4a1a07 Android: Don't use blocking queued when suspending the application
If the application gets suspended when a blocking queued connection is
made then it will cause the application to hang when being resumed.
Therefore a check is needed to still post the event to the other thread
but in a non blocking manner so that it does not cause a hang on return.

Fixes: QTBUG-72101
Change-Id: I6d53c97ed6d9d500559da2a9fd195226d1fc9905
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-11-30 14:47:36 +00:00
Gatis Paeglis f2b4462f84 xcb: remove old work-around for building with util-wm
Commits that added this code:

7ce8491280 and
f005dee1b3

I guess this was a work-around, before we started bundling
XCB libs a year later in 21bd66e1ea

0.3.8 was released in 2011-04-26 and we are bundling 0.3.9, so
it is safe to remove the include work-around as well.

Change-Id: I5794f40d86e10ebdad984aa4b61311979aaadcf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-11-30 14:05:13 +00:00
Gatis Paeglis 0de4b326d8 xcb: fix issue with dialogs hidden by other windows
This was a regression from Qt4, due to not setting the window
group leader in WM_HINTS property. Qt4 did set this property.

It was not obvious that something was missing because of the
similarly named WM_CLIENT_LEADER property, which we do set.
Testing revealed that setting WM_CLIENT_LEADER is sufficient
on some DEs, e.g. KDE, Unity, but did not have the desired
effect on e.g Gnome and XFCE.

EWMH/ICCCM specs are known to be ambiguous, WM_CLIENT_LEADER
is only mentioned in the section on the session management, so
it is not surprising that there is this inconsistency between
various WMs.

This patch merely restores a lost WM hint. This solves the
reported issues on major desktops. If we support calling show()
on a dialog before its parent has been shown is still an open
question, which should be handled in QTBUG-72040.

Task-number: QTBUG-56829
Fixes: QTBUG-46626
Fixes: QTBUG-70756
Task-number: QTBUG-72040
Change-Id: Id2c575850e5f4f5af3e57963c577d33572e30b6e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-11-30 14:05:04 +00:00
Morten Johan Sørvig eab84914f1 macOS: make QScreen::grabWindow() fast again
Commit 17b73b0d2b regressed performance by grabbing
the entire screen and then copying the grab region.

Move back to grabbing a minimal rectangle instead.
Also handle multi-screen grabs at different device
pixel ratios.

Multi-screen grabbing is handled by grabbing each screen
individually, and then stitching together the result.
The returned pixmap is created using the highest DPR
available, upscaling lower resolution parts as needed.

Change-Id: I9d45c5f7ec7b342360b745f49ef2939dc588f40b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-11-30 10:28:42 +00:00
Gatis Paeglis c3a963da1f src/3rdparty: remove xkbcommon
The only reason why we bundled this library ~6 years ago was because
it was not available on distributions that we supported at the time,
but library was a hard dependency for XCB plugin. See:
2122e731ab

Later more and more projects started to depend on it (compose input
context plugin, libinput, mir, wayland). The configuration had become
too complex, because some projects used bundled and some used the
version from the system.

Having libxkbcommon in 3rdparty sources is not necessary anymore, after
RHEL 6.6 was removed from the list of supported platforms for Qt 5.12.

Ubuntu 16.04  - 0.5.0
Ubuntu 18.04  - 0.8.0
openSUSE 42.3 - 0.6.1
RHEL-7.4      - 0.7.1

This will also simplify further development, e.g. QTBUG-42181

Bumped the minimal required version 0.4.1 -> 0.5.0.

The patch also contains a code marked with "TRANSITION HACK", which
is temporary needed so we can update the dependent wayland module.

[ChangeLog][Third-Party Code] Removed xkbcommon from bundled sources.
This library is present on all supported platforms. The minimal required
version now is 0.5.0.

Task-number: QTBUG-65503
Change-Id: Iec50829bb6f8fbb19f3c4e4ad62e332beb837de5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-30 09:47:03 +00:00