Title: [246310] trunk/Source/WebCore
Revision
246310
Author
[email protected]
Date
2019-06-11 05:52:21 -0700 (Tue, 11 Jun 2019)

Log Message

[GTK] Replace gdk_screen_get_monitor_geometry and gdk_screen_get_monitor_workarea
https://bugs.webkit.org/show_bug.cgi?id=198750

Patch by Ludovico de Nittis <[email protected]> on 2019-06-11
Reviewed by Carlos Garcia Campos.

Since GTK 3.22 gdk_screen_get_monitor_geometry and
gdk_screen_get_monitor_workarea has been deprecated.

No behavior change.

* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::screenRect):
(WebCore::screenAvailableRect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (246309 => 246310)


--- trunk/Source/WebCore/ChangeLog	2019-06-11 12:50:50 UTC (rev 246309)
+++ trunk/Source/WebCore/ChangeLog	2019-06-11 12:52:21 UTC (rev 246310)
@@ -1,3 +1,19 @@
+2019-06-11  Ludovico de Nittis  <[email protected]>
+
+        [GTK] Replace gdk_screen_get_monitor_geometry and gdk_screen_get_monitor_workarea
+        https://bugs.webkit.org/show_bug.cgi?id=198750
+
+        Reviewed by Carlos Garcia Campos.
+
+        Since GTK 3.22 gdk_screen_get_monitor_geometry and
+        gdk_screen_get_monitor_workarea has been deprecated. 
+
+        No behavior change.
+
+        * platform/gtk/PlatformScreenGtk.cpp:
+        (WebCore::screenRect):
+        (WebCore::screenAvailableRect):
+
 2019-06-11  Fujii Hironori  <[email protected]>
 
         [cairo][SVG] Putting multiple path elements in clippath causes rendering artifacts

Modified: trunk/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp (246309 => 246310)


--- trunk/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp	2019-06-11 12:50:50 UTC (rev 246309)
+++ trunk/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp	2019-06-11 12:52:21 UTC (rev 246310)
@@ -150,10 +150,12 @@
     }
 }
 
+#if !GTK_CHECK_VERSION(3, 22, 0)
 static GdkScreen* getScreen(GtkWidget* widget)
 {
     return gtk_widget_has_screen(widget) ? gtk_widget_get_screen(widget) : gdk_screen_get_default();
 }
+#endif
 
 FloatRect screenRect(Widget* widget)
 {
@@ -161,6 +163,16 @@
     if (container)
         container = getToplevel(container);
 
+    GdkRectangle geometry;
+#if GTK_CHECK_VERSION(3, 22, 0)
+    GdkDisplay* display = container ? gtk_widget_get_display(container) : gdk_display_get_default();
+    if (!display)
+        return FloatRect();
+
+    GdkMonitor* monitor = container ? gdk_display_get_monitor_at_window(display, gtk_widget_get_window(container)) : gdk_display_get_monitor(display, 0);
+
+    gdk_monitor_get_geometry(monitor, &geometry);
+#else
     GdkScreen* screen = container ? getScreen(container) : gdk_screen_get_default();
     if (!screen)
         return FloatRect();
@@ -167,8 +179,8 @@
 
     gint monitor = container ? gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(container)) : 0;
 
-    GdkRectangle geometry;
     gdk_screen_get_monitor_geometry(screen, monitor, &geometry);
+#endif // !GTK_CHECK_VERSION(3, 22, 0)
 
     return FloatRect(geometry.x, geometry.y, geometry.width, geometry.height);
 }
@@ -179,6 +191,16 @@
     if (container && !gtk_widget_get_realized(container))
         return screenRect(widget);
 
+    GdkRectangle workArea;
+#if GTK_CHECK_VERSION(3, 22, 0)
+    GdkDisplay* display = container ? gtk_widget_get_display(container) : gdk_display_get_default();
+    if (!display)
+        return FloatRect();
+
+    GdkMonitor* monitor = container ? gdk_display_get_monitor_at_window(display, gtk_widget_get_window(container)) : gdk_display_get_monitor(display, 0);
+
+    gdk_monitor_get_workarea(monitor, &workArea);
+#else
     GdkScreen* screen = container ? getScreen(container) : gdk_screen_get_default();
     if (!screen)
         return FloatRect();
@@ -185,8 +207,8 @@
 
     gint monitor = container ? gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(container)) : 0;
 
-    GdkRectangle workArea;
     gdk_screen_get_monitor_workarea(screen, monitor, &workArea);
+#endif // !GTK_CHECK_VERSION(3, 22, 0)
 
     return FloatRect(workArea.x, workArea.y, workArea.width, workArea.height);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to