|author||Tor Arne Vestbø <email@example.com>||2017-12-01 19:03:05 +0100|
|committer||Tor Arne Vestbø <firstname.lastname@example.org>||2017-12-13 20:47:15 +0000|
Teach QPlatformWindow about safe area margins and implement for iOS
The safe area margins of a window represent the area that is safe to place content within, without intersecting areas of the screen where system UI is placed, or where a screen bezel may cover the content. QWidget will incorporate the safe area margins into its contents margins, so that they are are never smaller than the safe area margins. This can be disabled by unsetting the Qt::WA_ContentsMarginsRespectsSafeArea widget attribute, which is set by default. QLayouts will automatically use the contents area of a widget for their layout, unless the Qt::WA_LayoutOnEntireRect attribute has been set. This can be used, along with a contents margin of 0 on the actual layout, to allow e.g. a background image to underlay the status bar and other system areas on an iOS device, while still allowing child widgets of that background to be inset based on the safe area. [ChangeLog][iOS/tvOS] Qt will now take the safe area margins of the device into account when computing layouts for QtWidgets. Change-Id: Ife3827ab663f0625c1451e75b14fb8eeffb00754 Reviewed-by: Richard Moe Gustavsen <email@example.com>
Diffstat (limited to 'src/gui/kernel/qplatformwindow.cpp')
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gui/kernel/qplatformwindow.cpp b/src/gui/kernel/qplatformwindow.cpp
index 5062bd1e77..23e492ee7a 100644
@@ -147,6 +147,16 @@ QMargins QPlatformWindow::frameMargins() const
+ The safe area margins of a window represent the area that is safe to
+ place content within, without intersecting areas of the screen where
+ system UI is placed, or where a screen bezel may cover the content.
+QMargins QPlatformWindow::safeAreaMargins() const
+ return QMargins();
Reimplemented in subclasses to show the surface
if \a visible is \c true, and hide it if \a visible is \c false.