Commit Graph

33794 Commits

Author SHA1 Message Date
Laszlo Agocs
886773eef2 eglfs_kms: Output cloning support
{
    "device": "/dev/dri/card0",
    "outputs": [
	{ "name": "HDMI1", "mode": "1920x1080" },
	{ "name": "DP1", "mode": "1920x1080", "clones": "HDMI1" }
   ]
}

Here, assuming the QScreen for DP1 is unused and the resolution is the same,
DP1 will simply mirror whatever is on HDMI1.

The plane-based mouse cursor is not currently supported. Same goes for any
form of scaling since this simply scans out the same framebuffer on all
target CRTCs.

Task-number: QTBUG-62262
Change-Id: I391be204264284a1bff752ebc2a1dbe5c8592013
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 10:30:40 +00:00
Morten Johan Sørvig
4250993c42 macOS: Don’t color convert the backing store
The backing store was assigned the sRGB color profile
as an unintended side effect of the QImage -> CGImage
conversion function refactoring in ac899f6d. This
caused Core Graphics to add a color convert step, which
in some cases caused performance issues.

Restore fast, previous behavior by assigning the target
display color profile to the backing store image.

Color correctness is still a goal, but we’ll add API
for it and make it opt-in.

Task-number: QTBUG-61384
Change-Id: Ia36d29404c64d8030a100f6a71816d84e484308b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-05 09:32:35 +00:00
Morten Johan Sørvig
0adc14d8db macOS: Don’t color convert the backing store
The backing store was assigned the sRGB color profile
as an unintended side effect of the QImage -> CGImage
conversion function refactoring in ac899f6d. This
caused Core Graphics to add a color convert step, which
in some cases caused performance issues.

Restore fast, previous behavior by assigning the target
display color profile to the backing store image.

Color correctness is still a goal, but we’ll add API
for it and make it opt-in.

Task-number: QTBUG-61384
Change-Id: I107f06a881a34fa711b386265d8dc2edfb246624
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-05 09:32:32 +00:00
Andre de la Rocha
a2a5b7a697 Windows: Make dropped files be opened or attached
Adds QWindowsDropDataObject as a QWindowsOleDataObject subclass
specialized for handling Drag & Drop, which only allows "text/uri-list"
data to be exported as CF_HDROP, to allow files dragged from
Qt applications and dropped into other applications to be recognized as
attachments or opened. Otherwise, files would be imported as URLs and
inserted as local hyperlinks.

[ChangeLog][Important Behavior Changes][Windows] On Windows, a drag
& drop operation of local files URIs, like QListView items backed by a
QFileSystemModel, will result in the attachment or opening of the files
by the target application, instead of the creation of hyperlinks.

Task-number: QTBUG-62662
Change-Id: I51efa4a56574b5e5fb3ee736ede14b5da24caac4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-09-05 08:22:45 +00:00
Giuseppe D'Angelo
c7766a41e3 PCRE2: remove pcre2_printint.c from the imported sources
Follow up of fc37e03699:
while the file is #included from pcre2_compile.c, it's never
actually compiled (seems to be about a debugging aid for developing
PCRE2). So it's safe to get rid of it.

Change-Id: I0affaad730e8c5678d3431e47d5fee0dbedc0e78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-09-05 07:12:55 +00:00
Giuseppe D'Angelo
e8e0895a33 PCRE2: disable JIT on all UIKit platforms
Both iOS and tvOS need to have JIT disabled, so use the uikit qmake
scope for that. This was already done for PCRE 1, but the corresponding
change was lost for PCRE 2 (probably due to a bad merge).

Change-Id: Iac7997880c13b34ced46c63b748980c6fb700a0f
Task-number: QTBUG-62993
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-09-05 07:12:49 +00:00
Laszlo Agocs
372f5e1fae kms: Add support for filtering based on vrefresh
In addition to "mode": "1280x720", one can now also specify the vrefresh
value: "mode": "1280x720@50".

This way if there is both a 60 and 50 Hz variant, then it is now possible
to choose the 50 Hz one.

Task-number: QTBUG-62262
Change-Id: I9ca21c5a513621c83f2f5348c411d8d7c5492b3d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:33:16 +00:00
Laszlo Agocs
bca297030c eglfs_kms: Add support for formats other than XRGB8888
Switch to drmModeAddFB2 and add mappings for RGB565 and ARGB8888,
and some BGR variants.

The default is XRGB8888, like before.

Others can be requested in the config file with
"format": "rgb565" or "argb8888" etc. on a per-output basis.

If the primary plane does not support the format, modesetting
and flipping will fail.

Task-number: QTBUG-62262
Change-Id: I8537cbeed7f046c46aa63fcea6d6946c0e0038a7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:33:12 +00:00
Laszlo Agocs
77a70b2195 eglfs_kms: Skip modesetting when current is good enough
...unless explicitly requested via QT_QPA_EGLFS_ALWAYS_SET_MODE.

This mirrors the behavior of the EGLDevice backend.

Synchronize the "swap" behavior in other aspects too: do not retry
a failing modeset until infinity, and make the (currently limited but
soon enhanced) plane setup independent of the modesetting.

Task-number: QTBUG-62262
Change-Id: If43c4edf09c526a3d0f566994a3d632c217d2c31
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:33:07 +00:00
Laszlo Agocs
744bb7e85a eglfs_kms: Report the real preferred mode from QScreen
...and make the struct initialization more readable while we are at it.

Task-number: QTBUG-62262
Change-Id: I1af82d1b2fd5a3c94dcdb720920618d4da80c21c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:33:02 +00:00
Laszlo Agocs
95d73132c7 eglfs_kms: Lift the one window per screen ever limitation
There is still one fullscreen window per screen at a time, but
there is no reason we should fail in the backend when the screen
already has the gbm_surface created. If there is really another
active GL window for this screen, then the base eglfs window
implementation will panic anyway.

This should help certain cases, where windows belonging to screen B get
created for screen A and then moved (recreated) for screen B.

Task-number: QTBUG-62262
Change-Id: Ia029f028d32a35e8e023f3132097ba9a919b8fe8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:32:57 +00:00
Laszlo Agocs
18af543304 eglfs_kms: remove unused code
Task-number: QTBUG-62262
Change-Id: If21cbfcda2decf7bd70cf56695ee1d676cbaa55f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:32:53 +00:00
Laszlo Agocs
06b360c65f eglfs_kms: Remove useless log entry for each QOffscreenSurface
Task-number: QTBUG-62262
Change-Id: Id5225737f619d3f0d980e8b67de92f30dc62e8a6
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-09-05 06:32:45 +00:00
Tor Arne Vestbø
54c3ab7a10 macOS: Fix support for issuing requestUpdate during expose event
AppKit will clear the needsDisplay state of a view when finishing the
display cycle, so if the client requested an update when delivering
the expose event, the update request would not be delivered unless
the view was otherwise exposed in some way at a later point.

Task-number: QTBUG-62964
Task-number: QTBUG-62963
Change-Id: I5ac9bf2f19af775294d093c8b7a414af22efee92
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-09-05 05:50:40 +00:00
Tor Arne Vestbø
67a075f485 iOS: Fix implicit conversion warning in QIOSEventDispatcher
Change-Id: Id9650dde73e1cfbe8626b4d31b86e9bbf007be89
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-09-04 20:50:43 +00:00
Thiago Macieira
091fd6e524 Unbreak the build and add support for Qt 5.12 too
Unlike qdatastream.h, we can be ready for future versions. Current plans
say we should do Qt 5.12 and then begin working on 6.0.

Change-Id: I38341f8155354cc4a776fffd14e13c2f1362b483
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-09-04 18:35:48 +00:00
Gatis Paeglis
de7ffee747 evdevtablet: don't use qpa compatibility function
This patch does not attempt to add the necessary functionality
to support other tablet buttons, it simply replaces deprecated
version of QWindowSystemInterface::handleTabletEvent(), by keeping
the previous logic.

Task-number: QTBUG-62886
Change-Id: I23597077774d482492136fda2e998700f8b27e9c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-09-04 18:05:46 +00:00
Gatis Paeglis
c06fb51b8a eglfs_x11: remove unused event handlers
Logic that utilizes these event handlers was added by
f610814b05 and few months
later broken by 2b20ed5af4.
The original code used an event mask to select press/release/
motion events when creating window with XCreateWindow.
The XCB replacement (xcb_create_window) changed event mask to 0,
which means that these event handlers have been unused for
about ~4 years and can be safely removed. The eglfs_x11
integration receives mouse input directly from libinput/evedev.

Change-Id: Iac1521365445b8423898a16c3e609deb0806ce5e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-09-04 18:05:17 +00:00
Frederik Gladhorn
df9de3e454 Bump version
Change-Id: I355b940f568273cf00d55c7c3abc569537be7950
2017-09-04 18:07:28 +02:00
Àlex Fiestas
7d32339762 Pass m_drag_icon_window to getNativeMousePos instead of Event QObject
The QWindow passed to eventFilter is static so it might be in a
different screen when we call getNativeMousePos, resulting in negative
position and all sorts of glitches.

Change-Id: Ibc848c6d85d8b6932ee379aa77851094212a0db2
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-09-04 14:35:18 +00:00
Eskil Abrahamsen Blomfeldt
52bda430af macOS: Reset composition when focus object changes inside window
When the focus object inside a window changes and we are
currently composing text, we have to cancel composition to avoid
getting into an inconsistent state. This is what already happens
if you switch to a different top level window.

Note: Because we limit the user's ability to change focus inside
a window when composing text, this would only happen under
certain circumstances, such as creating a new MDI window with
an editor while still composing text in a previous one.

[ChangeLog][macOS] Switching focus objects inside a top level window
while composing text using dead keys or input method events would
leave the application in an inconsistent state. The composition
now automatically cancels when the focus object changes.

Task-number: QTBUG-59222
Change-Id: I06792a7db1441dcc5c87e4bf0861b422a25f7f7c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-04 13:51:19 +00:00
Tony Sarajärvi
f9fea20c10 Extend blacklisting of tst_QWidget::maskedUpdate to openSUSE 42.3
Task-number: QTBUG-51399
Change-Id: I7fcc52da2ce539251f6bad0394c4580dd76439a7
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2017-09-04 12:11:47 +00:00
Tony Sarajärvi
a2dbf1e779 Blacklist tst_QItemDelegate::enterKey tests on openSUSE 42.3
Task-number: QTBUG-62967
Change-Id: I42f25120f1a9e2ef6a9a147e4f36edcdff2922a6
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2017-09-04 12:11:44 +00:00
Timur Pocheptsov
6a0f59f9c1 Fix MiniHttpServer (POST/PUT requests processing)
Teach our MiniHttpServer to better handle POST and PUT requests:
read the POST/PUT data too (not headers only), before replying
and flushing. The  original comment says MiniHttpServer does
not support POST/PUT requests, it's not true anymore - we can
handle them (perhaps the simplest/shortest ones).

Task-number: QTBUG-62844
Change-Id: I80260f8ede1bb1b0b9d6042ecd59558bb7e9a998
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-09-04 12:11:11 +00:00
Jesus Fernandez
3f1ac58994 Add QPlatformSurface::screen() const
Classes inheriting QPlatformSurface need to return the QPlatformScreen
to allow the platform integration plugin to know information about the
used screen by the surface.

QPlatformSurface and QPlatformWindow had the same function defined, but
it was not possible to call it without casting the QPlatformSurface
pointer.

Change-Id: I1f93fe7c13ebbc51769677038edeca4de5db0024
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-09-04 11:36:50 +00:00
Stephan Binner
093064fdeb Convert features.completer to QT_[REQUIRE_]CONFIG
Change-Id: If45a46c08b37d245229a39f3d6ffbb34154934f2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 11:28:02 +00:00
Alexander Volkov
fefdb84662 moc: Use 'using' instead of 'typedef' in generated code
'using' is recommended by C++ Core Guidelines for improving readability:
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rt-using
In the case of generated code it can be useful to leave
moc files unchanged when modernizing code with clang-tidy's
'modernize-use-using'.

Change-Id: Iabb4de2aa8d2f9396d8c8d4ee21f80fffff1dadc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-09-04 09:51:52 +00:00
Stephan Binner
66d9a2b997 Convert features.buttongroup to QT_[REQUIRE_]CONFIG
Change-Id: Id5df397d0aa4cad7f586ef7303902d8ee7b88f1d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 07:53:34 +00:00
Stephan Binner
6380729c48 Convert features.effects to QT_[REQUIRE_]CONFIG
Change-Id: I8421b5e81dc21e8f9f6bdd9f714fb3f535618a3c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 07:53:26 +00:00
Stephan Binner
8a93f50695 Convert features.resizehandler to QT_[REQUIRE_]CONFIG
Change-Id: I44ed1be0cf56daf7dc2a7e4bbd3402419a04a530
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 07:53:17 +00:00
Stephan Binner
dab49434d8 Convert features.scrollarea to QT_[REQUIRE_]CONFIG
Change-Id: Ifc7b0a6b025c282234b4aeaf23daecff8a558236
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 07:53:08 +00:00
Stephan Binner
135da45318 Convert features.keysequenceedit to QT_[REQUIRE_]CONFIG
Change-Id: Id8ffd7f0e6ef4bdc43959179c26342ecee75b280
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 07:52:52 +00:00
Orgad Shaneh
ced0f54ec3 Fix resolution of relative links on Windows
[ChangeLog][QtCore][QFileInfo] Relative symbolic links on Windows are
now resolved to their absolute path by symLinkTarget().

Task-number: QTBUG-62802
Change-Id: I5826517130bd389aef994bf3f4b6d99b2a91b409
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-09-04 07:35:09 +00:00
Timur Pocheptsov
50eb44cc9b Introduce Http2DirectAttribute
Now that we have a proper ALPN/NPN + Protocol Upgrade, we can also
add H2Direct - this can be useful for our users that have to work
with either Secure Transport or a TLS implementation not supporting
ALPN/NPN and with 'h2direct' servers in case they have prior knowledge
of HTTP/2 support. The difference with RFC 7540 is the fact we also
allow this 'direct' in case of 'https' scheme (it appears existing
HTTP/2 server implementations support such mode too).

[ChangeLog][QtNetwork] Add Http2DirectAttribute to enable 'direct' HTTP/2
protocol without ALPN/NPN and without protocol upgrade negotiations.

Task-number: QTBUG-61397
Change-Id: I0499d33ec45dede765890059fd9542dab236bd5d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-09-04 07:27:03 +00:00
Stephan Binner
314a591461 Convert features.menubar to QT_[REQUIRE_]CONFIG
Change-Id: Idbd4978852fa280dd18a5684469d499da3892126
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 06:40:14 +00:00
Stephan Binner
b649717784 Convert features.stackedwidget to QT_[REQUIRE_]CONFIG
Change-Id: I06b7fb9736620dcdfda21fc0a06e13cb02f9a1e7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-09-04 06:40:02 +00:00
Frederik Gladhorn
9831118378 Merge dev into 5.10
Change-Id: I5fb5e7e6e57bb5db6fcb1f670f7f6cbc8def2d60
2017-09-02 10:27:09 +02:00
Giuseppe D'Angelo
75b5db3ce6 Item widgets: make indexFromItem const-correct
The item is not supposed to be modified, so it should be passed
as pointer-to-const. A similar change was already done for
QTreeWidget in b2aeeaf628.

Change-Id: I75d597867771f414821693a50f97c94b05a4ccb2
Reviewed-by: David Faure <david.faure@kdab.com>
2017-09-02 08:14:16 +00:00
Giuseppe D'Angelo
fc37e03699 PCRE2: remove a source file from the .pro
pcre2_printint.c does not need to be compliled as a standalone source
file, as it's #included from pcre2_compile.c. Apparently qmake does not
detect this in all cases, and sometimes tries to compile pcre2_printint.c,
resulting in compile errors.

Change-Id: If494e5853b52ff1387bfb24f3847b73edcc837b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-09-01 17:03:42 +00:00
Giuseppe D'Angelo
f71a99c0eb QModelIndex: use std::less to compare pointers
Comparing pointers not belonging to the same array requires using
std::less.

Change-Id: I2725aa0899f6b9fece73dadd9ee5c10242d50ae1
Reviewed-by: David Faure <david.faure@kdab.com>
2017-09-01 17:03:33 +00:00
Thiago Macieira
b5d471d0c2 QNativeSocketEngine: disable unused methods about OS socket buffer
They aren't used in the API, so let's stop wasting library size.

Change-Id: I6e9274c1e7444ad48c81fffd14db247ecf825a57
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-09-01 16:40:36 +00:00
Thiago Macieira
ca92ee2518 Make qAddPostRoutine & family thread-safe
If one wants to add them on demand, threads may have started, so these
functions should be thread-safe. That includes the calling of the
registered functions: some other thread could be adding post routines
too. Of course, if you're racing, it's your own fault, but we need to
support the routines registered with qAddPostRoutine adding more post
routines.

[ChangeLog][QtCore] qAddPostRoutine() and qRemovePostRoutine() are now
thread-safe.

Task-number: QTBUG-62915
Change-Id: I38341f8155354cc4a776fffd14dffa68bde8345d
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-09-01 16:40:33 +00:00
Thiago Macieira
541a031552 tst_QMutex: produce less noise with MSVC
Since MSVC doesn't have <chrono> (according to QT_HAS_INCLUDE), the QSKIP
in the test was printed for every line in the table. Instead, add the
skip in the _data() function.

Change-Id: I6e9274c1e7444ad48c81fffd14dbcee5e5a322aa
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-09-01 16:36:17 +00:00
Albert Astals Cid
6e18293299 Forward the readChannelFinished from the plain socket to the ssl socket
Task-number: QTBUG-62257
Change-Id: I12632b7ffd2012adc99b4784892cbb6f79e065f7
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2017-09-01 15:09:14 +00:00
Tor Arne Vestbø
362dcb4759 macOS: Respect responder chain when setting cursor
There's no need for us to walk our own ancestor chain to figure out which
cursor to set. AppKit will automatically call cursorUpdate: on the view
that would be the hitTest target of the current mouse position, and by
falling back to super when no cursor is set for the current view, we
automatically get the behavior that effectiveWindowCursor tried to solve.

In addition, it solves the case of applyEffectiveWindowCursor applying
the arrowCursor when no cursor was set, which would mean that if any
native parent view of our view _did_ have a cursor set, we would not
fall back to the native view's cursor, but instead override it with
the arrow cursor. Following the responder chain gives the correct
behavior in this case.

Unfortunately, due to rdar://34183708, if a subview of one of our
views uses the legacy cursorRect approach to cursor management, the
cursor will not be reset back to our cursor via cursorUpdate: when
leaving the child and entering the parent view (our view). Moving
our implementation over to the legacy API would solve this problem,
but just propagate it to native parent views of our views, which
could potentially use NSTrackingAreas, and would not have _their_
cursors re-set.

Change-Id: Id20cc03136f0b1d4b9120750fe63ddc455363aaf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-01 10:04:52 +00:00
Friedemann Kleint
a72513cab7 Windows QPA: Hardcode a limit for the default point size
Windows uses deprecated API to obtain the default font which
has been observed to return bogus sizes in multi monitor setups.
Apply a limit in this case and add fixme comment for Qt 6.

Task-number: QTBUG-49374
Task-number: QTBUG-58610
Change-Id: I6e805ec792a3f425961a48ef4c4329c3cdf302b6
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2017-09-01 09:15:32 +00:00
Tor Arne Vestbø
ca14d84197 macOS: Modernize masking of windows
Instead of masking window blitting via a CGImage mask, we use the window's
mask directly to intersect the region that we blit during flushing of the
QCocoaBackingStore. This approach also enables masking of child windows.

We now also support setting a mask for layer-backed views, by setting a
CAShapeLayer as the layer's mask.

The window shadow invalidation has been moved out of QNSView, as the view
should not be involved in that process. For layer-backed views, the shadow
is not invalidated as expected after the initial mask has been set, but
this bug has been left as a fix for a later stage as it requires more
research.

Change-Id: Ie0127d8df49d95b2d6144816b19559f3d3c95d13
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-01 02:42:38 +00:00
Tor Arne Vestbø
1f9284b624 macOS: Forward [QNSViewMouseMoveHelper cursorUpdate:] to view
Calling [self cursorUpdate:] doesn't make much sense, and was probably
an oversight. The event is also delivered straight to the view, not to
the owner of the tracking area (as the documentation says it should),
but we keep this method implemented just in case.

Change-Id: I176a2aa782da316d1fe11ce15a89195595d80618
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-01 02:42:37 +00:00
Tor Arne Vestbø
9507edddf2 macOS: Implement QWindow::requestUpdate() in terms of setNeedsDisplay
This is preferable to the timer-based default implementation of
QPlatformWindow, as it gives AppKit more control of when to schedule
the update, and makes sure the update is scheduled along with other
views in the normal display-cycle, reducing the number of push flushes
we do. QtWidgets still need to plumb the update() method to updateRequest
for that to have any real effect though.

In the future we may consider scheduling the update via a display link,
if the window surface is set up for GL, for example.

Ideally we'd also have a platform hook for the repaint() method, so that
we could funnel it through display and get synchronous painting with
AppKit still taking care of drawing and compositing child views.

Change-Id: I136a9afa087b922aad69086548c2aa190ce75b6b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-09-01 02:42:36 +00:00
Tor Arne Vestbø
28414f8e3a macOS: Update qt_on_cocoa manual test
- Add view to contentView, to allow checking parent view interaction
- Render via requestUpdate instead of manual timer
- Add two windows to check subview interaction

Change-Id: Ib028e62f585d45e42c0429e69ea6f45c8a90fe54
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-08-31 23:09:24 +00:00