Title: [174819] trunk/Source/WebCore
Revision
174819
Author
[email protected]
Date
2014-10-17 03:43:54 -0700 (Fri, 17 Oct 2014)

Log Message

[EFL] window.screen.width returns wrong value if more displays are available
https://bugs.webkit.org/show_bug.cgi?id=137778

Reviewed by Gyuyoung Kim.

ecore_x_screen_size_get() retrieves the size of Ecore_X_Screen, for example,
having two displays of 1680x1050, it will return 3360x1050.

Unlike EFL's MiniBrowser, Firefox and Chrome return screen of the current display.

No new tests. Hardware specific bug including multiple displays.

* platform/efl/PlatformScreenEfl.cpp:
(WebCore::screenRect):
Use ecore's xrandr to determine the screen on which browser window is displayed.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (174818 => 174819)


--- trunk/Source/WebCore/ChangeLog	2014-10-17 10:10:47 UTC (rev 174818)
+++ trunk/Source/WebCore/ChangeLog	2014-10-17 10:43:54 UTC (rev 174819)
@@ -1,3 +1,21 @@
+2014-10-17  Grzegorz Czajkowski  <[email protected]>
+
+        [EFL] window.screen.width returns wrong value if more displays are available
+        https://bugs.webkit.org/show_bug.cgi?id=137778
+
+        Reviewed by Gyuyoung Kim.
+
+        ecore_x_screen_size_get() retrieves the size of Ecore_X_Screen, for example,
+        having two displays of 1680x1050, it will return 3360x1050.
+
+        Unlike EFL's MiniBrowser, Firefox and Chrome return screen of the current display.
+
+        No new tests. Hardware specific bug including multiple displays.
+
+        * platform/efl/PlatformScreenEfl.cpp:
+        (WebCore::screenRect):
+        Use ecore's xrandr to determine the screen on which browser window is displayed.
+
 2014-10-17  Carlos Garcia Campos  <[email protected]>
 
         [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds

Modified: trunk/Source/WebCore/platform/efl/PlatformScreenEfl.cpp (174818 => 174819)


--- trunk/Source/WebCore/platform/efl/PlatformScreenEfl.cpp	2014-10-17 10:10:47 UTC (rev 174818)
+++ trunk/Source/WebCore/platform/efl/PlatformScreenEfl.cpp	2014-10-17 10:43:54 UTC (rev 174819)
@@ -91,7 +91,11 @@
     // and we cannot accurately detect the screen size.
     int width = 800;
     int height = 600;
-    ecore_x_screen_size_get(ecore_x_default_screen_get(), &width, &height);
+    Ecore_X_Window focusedWindow = ecore_x_window_focus_get();
+    if (ecore_x_randr_query() && focusedWindow)
+        ecore_x_randr_screen_primary_output_current_size_get(ecore_x_window_root_get(focusedWindow), &width, &height, 0, 0, 0);
+    else
+        ecore_x_screen_size_get(ecore_x_default_screen_get(), &width, &height);
     return FloatRect(0, 0, width, height);
 #else
     if (!widget || !widget->evas())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to