[WPE] Use Widget bounds for PlatformScreen rectangle information
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Jan 2019 10:42:51 +0000 (10:42 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Jan 2019 10:42:51 +0000 (10:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=193190

Reviewed by Philippe Normand.

Provide a better screen area estimate in screenRect() and
screenAvailableRect() return values than the current 1240x640 value by
using the Widget's bounds rectangle.

This approach is only factually correct when the Widget-associated view
is displayed in fullscreen, but it provides a better estimate even when
displayed in any other case as well. WPE doesn't provide specific API
that could enable the embedding environment to provide this information.

* platform/wpe/PlatformScreenWPE.cpp:
(WebCore::screenRect): Return bounds of the Widget object.
(WebCore::screenAvailableRect): Relay the call to screenRect().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239670 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/wpe/PlatformScreenWPE.cpp

index 6d70e99..9bfdaa6 100644 (file)
@@ -1,5 +1,25 @@
 2019-01-07  Zan Dobersek  <zdobersek@igalia.com>
 
+        [WPE] Use Widget bounds for PlatformScreen rectangle information
+        https://bugs.webkit.org/show_bug.cgi?id=193190
+
+        Reviewed by Philippe Normand.
+
+        Provide a better screen area estimate in screenRect() and
+        screenAvailableRect() return values than the current 1240x640 value by
+        using the Widget's bounds rectangle.
+
+        This approach is only factually correct when the Widget-associated view
+        is displayed in fullscreen, but it provides a better estimate even when
+        displayed in any other case as well. WPE doesn't provide specific API
+        that could enable the embedding environment to provide this information.
+
+        * platform/wpe/PlatformScreenWPE.cpp:
+        (WebCore::screenRect): Return bounds of the Widget object.
+        (WebCore::screenAvailableRect): Relay the call to screenRect().
+
+2019-01-07  Zan Dobersek  <zdobersek@igalia.com>
+
         Make Gradient::gradientSpaceTransform(), Pattern::patternSpaceTransform() methods const
         https://bugs.webkit.org/show_bug.cgi?id=193189
 
index a2d079b..904ebce 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "FloatRect.h"
 #include "NotImplemented.h"
+#include "Widget.h"
 
 namespace WebCore {
 
@@ -65,16 +66,19 @@ void setScreenDPIObserverHandler(Function<void()>&&, void*)
     notImplemented();
 }
 
-FloatRect screenRect(Widget*)
+FloatRect screenRect(Widget* widget)
 {
-    notImplemented();
-    return FloatRect(0, 0, 1024, 640);
+    // WPE can't offer any more useful information about the screen size,
+    // so we use the Widget's bounds rectangle (size of which equals the WPE view size).
+
+    if (!widget)
+        return { };
+    return widget->boundsRect();
 }
 
-FloatRect screenAvailableRect(Widget*)
+FloatRect screenAvailableRect(Widget* widget)
 {
-    notImplemented();
-    return FloatRect(0, 0, 1024, 640);
+    return screenRect(widget);
 }
 
 bool screenSupportsExtendedColor(Widget*)