Title: [269096] trunk
Revision
269096
Author
[email protected]
Date
2020-10-28 02:31:17 -0700 (Wed, 28 Oct 2020)

Log Message

[GTK4] Build broken with GTK 3.99.3
https://bugs.webkit.org/show_bug.cgi?id=218270

Reviewed by Carlos Garcia Campos.

Source/WebKit:

No new tests needed.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(toplevelWindowStateChanged): Replace GDK_SURFACE_STATE_MINIMIZED with GDK_TOPLEVEL_STATE_MINIMIZED.
* UIProcess/API/gtk/WebKitWebViewGtk.cpp:
(surfaceStateChangedCallback): Ditto, and GDK_SURFACE_STATE_MAXIMIZED with GDK_TOPLEVEL_STATE_MAXIMIZED.
* UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp:
(WebKit::getWebPageProxy): Write an implementation which works for GTK4.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): Accomodate for windows
being a bit less special in GTK4 and use gtk_widget_has_focus() directly.

Tools:

* buildstream/elements/sdk/gtk.bst: Bump GTK4 version to 3.99.4

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (269095 => 269096)


--- trunk/Source/WebKit/ChangeLog	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Source/WebKit/ChangeLog	2020-10-28 09:31:17 UTC (rev 269096)
@@ -1,3 +1,21 @@
+2020-10-28  Adrian Perez de Castro  <[email protected]>
+
+        [GTK4] Build broken with GTK 3.99.3
+        https://bugs.webkit.org/show_bug.cgi?id=218270
+
+        Reviewed by Carlos Garcia Campos.
+
+        No new tests needed.
+
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (toplevelWindowStateChanged): Replace GDK_SURFACE_STATE_MINIMIZED with GDK_TOPLEVEL_STATE_MINIMIZED.
+        * UIProcess/API/gtk/WebKitWebViewGtk.cpp:
+        (surfaceStateChangedCallback): Ditto, and GDK_SURFACE_STATE_MAXIMIZED with GDK_TOPLEVEL_STATE_MAXIMIZED.
+        * UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp:
+        (WebKit::getWebPageProxy): Write an implementation which works for GTK4.
+        (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): Accomodate for windows
+        being a bit less special in GTK4 and use gtk_widget_has_focus() directly.
+
 2020-10-27  Alex Christensen  <[email protected]>
 
         Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs

Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp (269095 => 269096)


--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp	2020-10-28 09:31:17 UTC (rev 269096)
@@ -1779,7 +1779,7 @@
 static void toplevelWindowStateChanged(GdkSurface* surface, GParamSpec*, WebKitWebViewBase* webViewBase)
 {
     auto state = gdk_toplevel_get_state(GDK_TOPLEVEL(surface));
-    bool visible = !(state & GDK_SURFACE_STATE_MINIMIZED);
+    bool visible = !(state & GDK_TOPLEVEL_STATE_MINIMIZED);
     WebKitWebViewBasePrivate* priv = webViewBase->priv;
     if (visible) {
         if (priv->activityState & ActivityState::IsVisible)

Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp (269095 => 269096)


--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp	2020-10-28 09:31:17 UTC (rev 269096)
@@ -154,15 +154,15 @@
     bool eventCompleted = false;
     switch (state->type) {
     case WindowStateEvent::Type::Maximize:
-        if (surfaceState & GDK_SURFACE_STATE_MAXIMIZED)
+        if (surfaceState & GDK_TOPLEVEL_STATE_MAXIMIZED)
             eventCompleted = true;
         break;
     case WindowStateEvent::Type::Minimize:
-        if ((surfaceState & GDK_SURFACE_STATE_MINIMIZED) || !gdk_surface_get_mapped(surface))
+        if ((surfaceState & GDK_TOPLEVEL_STATE_MINIMIZED) || !gdk_surface_get_mapped(surface))
             eventCompleted = true;
         break;
     case WindowStateEvent::Type::Restore:
-        if (!(surfaceState & GDK_SURFACE_STATE_MAXIMIZED) && !(surfaceState & GDK_SURFACE_STATE_MINIMIZED))
+        if (!(surfaceState & GDK_TOPLEVEL_STATE_MAXIMIZED) && !(surfaceState & GDK_TOPLEVEL_STATE_MINIMIZED))
             eventCompleted = true;
         break;
     }

Modified: trunk/Source/WebKit/UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp (269095 => 269096)


--- trunk/Source/WebKit/UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Source/WebKit/UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp	2020-10-28 09:31:17 UTC (rev 269096)
@@ -40,6 +40,18 @@
 
 static WebPageProxy* getWebPageProxy(GtkWidget* widget)
 {
+#if USE(GTK4)
+    if (!widget)
+        return nullptr;
+
+    if (WEBKIT_IS_WEB_VIEW_BASE(widget))
+        return gtk_widget_is_visible(widget) ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(widget)) : nullptr;
+
+    for (auto* child = gtk_widget_get_first_child(widget); child; child = gtk_widget_get_next_sibling(child)) {
+        if (WebPageProxy* proxy = getWebPageProxy(child))
+            return proxy;
+    }
+#else
     if (!widget || !GTK_IS_CONTAINER(widget))
         return nullptr;
 
@@ -51,6 +63,8 @@
         if (WebPageProxy* proxy = getWebPageProxy(GTK_WIDGET(iter->data)))
             return proxy;
     }
+#endif // USE(GTK4)
+
     return nullptr;
 }
 
@@ -61,9 +75,15 @@
         if (!WebCore::widgetIsOnscreenToplevelWindow(GTK_WIDGET(iter->data)))
             continue;
 
+#if USE(GTK4)
+        GtkWidget* window = GTK_WIDGET(iter->data);
+        if (!gtk_widget_has_focus(window))
+            continue;
+#else
         GtkWindow* window = GTK_WINDOW(iter->data);
         if (!gtk_window_has_toplevel_focus(window))
             continue;
+#endif // USE(GTK4)
 
         if (WebPageProxy* proxy = getWebPageProxy(GTK_WIDGET(window)))
             return proxy;

Modified: trunk/Tools/ChangeLog (269095 => 269096)


--- trunk/Tools/ChangeLog	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Tools/ChangeLog	2020-10-28 09:31:17 UTC (rev 269096)
@@ -1,3 +1,12 @@
+2020-10-28  Adrian Perez de Castro  <[email protected]>
+
+        [GTK4] Build broken with GTK 3.99.3
+        https://bugs.webkit.org/show_bug.cgi?id=218270
+
+        Reviewed by Carlos Garcia Campos.
+
+        * buildstream/elements/sdk/gtk.bst: Bump GTK4 version to 3.99.4
+
 2020-10-27  Alex Christensen  <[email protected]>
 
         Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs

Modified: trunk/Tools/buildstream/elements/sdk/gtk.bst (269095 => 269096)


--- trunk/Tools/buildstream/elements/sdk/gtk.bst	2020-10-28 04:35:54 UTC (rev 269095)
+++ trunk/Tools/buildstream/elements/sdk/gtk.bst	2020-10-28 09:31:17 UTC (rev 269096)
@@ -4,7 +4,7 @@
 - kind: git_tag
   url: gitlab_gnome_org:GNOME/gtk.git
   track: master
-  ref: 3.99.0-649-g9377ce984d55a68623c7b9d50f138fb8ebdb039b
+  ref: 3.99.3-101-gdaf3b3a3b4cc70c5db278fd7142a6b49af91ae1d
 build-depends:
 - sdk-build-depends/sassc.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to