Title: [260255] trunk
Revision
260255
Author
[email protected]
Date
2020-04-17 08:50:13 -0700 (Fri, 17 Apr 2020)

Log Message

[GTK] Update for GdkKeymap API changes
https://bugs.webkit.org/show_bug.cgi?id=210642

Reviewed by Adrian Perez de Castro.

No new tests needed.

gdk_keymap_get_default() is deprecated in GTK+ 3.22, so use
gdk_keymap_get_for_display() instead. Since in GTK4 this method is
removed to gdk_display_get_keymap(), add a helper to
GtkVersioning.h to avoid cluttering with ifdefs all over the
place.

Source/WebCore:

* platform/gtk/GtkVersioning.h:
(gdk_keymap_get_for_display):
* platform/gtk/PlatformKeyboardEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::currentCapsLockState):
(WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):

Source/WebKit:

* UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:
(WebKit::doKeyStrokeEvent):

Tools:

* TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
(WebViewTest::keyStroke):
* TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
(TestWebKitAPI::doKeyStroke):
* WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::EventSenderProxy::keyDown):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (260254 => 260255)


--- trunk/Source/WebCore/ChangeLog	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Source/WebCore/ChangeLog	2020-04-17 15:50:13 UTC (rev 260255)
@@ -1,3 +1,24 @@
+2020-04-17  Claudio Saavedra  <[email protected]>
+
+        [GTK] Update for GdkKeymap API changes
+        https://bugs.webkit.org/show_bug.cgi?id=210642
+
+        Reviewed by Adrian Perez de Castro.
+
+        No new tests needed.
+
+        gdk_keymap_get_default() is deprecated in GTK+ 3.22, so use
+        gdk_keymap_get_for_display() instead. Since in GTK4 this method is
+        removed to gdk_display_get_keymap(), add a helper to
+        GtkVersioning.h to avoid cluttering with ifdefs all over the
+        place.
+
+        * platform/gtk/GtkVersioning.h:
+        (gdk_keymap_get_for_display):
+        * platform/gtk/PlatformKeyboardEventGtk.cpp:
+        (WebCore::PlatformKeyboardEvent::currentCapsLockState):
+        (WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):
+
 2020-04-17  Oriol Brufau  <[email protected]>
 
         Revert "[css-grid] Exclude implicit grid tracks from the resolved value"

Modified: trunk/Source/WebCore/platform/gtk/GtkVersioning.h (260254 => 260255)


--- trunk/Source/WebCore/platform/gtk/GtkVersioning.h	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Source/WebCore/platform/gtk/GtkVersioning.h	2020-04-17 15:50:13 UTC (rev 260255)
@@ -57,4 +57,10 @@
     return gtk_init_check();
 }
 
+static inline GdkKeymap*
+gdk_keymap_get_for_display(GdkDisplay *display)
+{
+    return gdk_display_get_keymap(display);
+}
+
 #endif // USE(GTK4)

Modified: trunk/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp (260254 => 260255)


--- trunk/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp	2020-04-17 15:50:13 UTC (rev 260255)
@@ -31,6 +31,7 @@
 #include "PlatformKeyboardEvent.h"
 
 #include "GtkUtilities.h"
+#include "GtkVersioning.h"
 #include "NotImplemented.h"
 #include "TextEncoding.h"
 #include "WindowsKeyboardCodes.h"
@@ -1341,7 +1342,7 @@
 
 bool PlatformKeyboardEvent::currentCapsLockState()
 {
-    return gdk_keymap_get_caps_lock_state(gdk_keymap_get_default());
+    return gdk_keymap_get_caps_lock_state(gdk_keymap_get_for_display(gdk_display_get_default()));
 }
 
 void PlatformKeyboardEvent::getCurrentModifierState(bool& shiftKey, bool& ctrlKey, bool& altKey, bool& metaKey)
@@ -1369,7 +1370,7 @@
     if (!initialized) {
         GUniqueOutPtr<GdkKeymapKey> keys;
         int entriesCount;
-        lockMaskIsCapsLock = gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), GDK_KEY_Caps_Lock, &keys.outPtr(), &entriesCount) && entriesCount;
+        lockMaskIsCapsLock = gdk_keymap_get_entries_for_keyval(gdk_keymap_get_for_display(gdk_display_get_default()), GDK_KEY_Caps_Lock, &keys.outPtr(), &entriesCount) && entriesCount;
     }
     return lockMaskIsCapsLock;
 }

Modified: trunk/Source/WebKit/ChangeLog (260254 => 260255)


--- trunk/Source/WebKit/ChangeLog	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Source/WebKit/ChangeLog	2020-04-17 15:50:13 UTC (rev 260255)
@@ -1,3 +1,21 @@
+2020-04-17  Claudio Saavedra  <[email protected]>
+
+        [GTK] Update for GdkKeymap API changes
+        https://bugs.webkit.org/show_bug.cgi?id=210642
+
+        Reviewed by Adrian Perez de Castro.
+
+        No new tests needed.
+
+        gdk_keymap_get_default() is deprecated in GTK+ 3.22, so use
+        gdk_keymap_get_for_display() instead. Since in GTK4 this method is
+        removed to gdk_display_get_keymap(), add a helper to
+        GtkVersioning.h to avoid cluttering with ifdefs all over the
+        place.
+
+        * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:
+        (WebKit::doKeyStrokeEvent):
+
 2020-04-17  Antoine Quint  <[email protected]>
 
         Allow the UserStyleLevel to be set through _WKUserStyleSheet

Modified: trunk/Source/WebKit/UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp (260254 => 260255)


--- trunk/Source/WebKit/UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Source/WebKit/UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp	2020-04-17 15:50:13 UTC (rev 260255)
@@ -29,6 +29,7 @@
 #include "WebAutomationSessionMacros.h"
 #include "WebPageProxy.h"
 #include <WebCore/GtkUtilities.h>
+#include <WebCore/GtkVersioning.h>
 #include <gtk/gtk.h>
 
 namespace WebKit {
@@ -146,17 +147,19 @@
     event->key.window = gtk_widget_get_window(widget);
     g_object_ref(event->key.window);
 
-    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(gtk_widget_get_display(widget))));
+    GdkDisplay* display = gtk_widget_get_display(widget);
+    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(display)));
     event->key.state = state;
 
     // When synthesizing an event, an invalid hardware_keycode value can cause it to be badly processed by GTK+.
     GUniqueOutPtr<GdkKeymapKey> keys;
     int keysCount;
-    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), keyVal, &keys.outPtr(), &keysCount) && keysCount)
+    GdkKeymap* keymap = gdk_keymap_get_for_display(display);
+    if (gdk_keymap_get_entries_for_keyval(keymap, keyVal, &keys.outPtr(), &keysCount) && keysCount)
         event->key.hardware_keycode = keys.get()[0].keycode;
 
     if (state) {
-        gdk_keymap_translate_keyboard_state(gdk_keymap_get_default(), event->key.hardware_keycode, static_cast<GdkModifierType>(state),
+        gdk_keymap_translate_keyboard_state(keymap, event->key.hardware_keycode, static_cast<GdkModifierType>(state),
             0, &event->key.keyval, nullptr, nullptr, nullptr);
     }
 

Modified: trunk/Tools/ChangeLog (260254 => 260255)


--- trunk/Tools/ChangeLog	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Tools/ChangeLog	2020-04-17 15:50:13 UTC (rev 260255)
@@ -1,3 +1,25 @@
+2020-04-17  Claudio Saavedra  <[email protected]>
+
+        [GTK] Update for GdkKeymap API changes
+        https://bugs.webkit.org/show_bug.cgi?id=210642
+
+        Reviewed by Adrian Perez de Castro.
+
+        No new tests needed.
+
+        gdk_keymap_get_default() is deprecated in GTK+ 3.22, so use
+        gdk_keymap_get_for_display() instead. Since in GTK4 this method is
+        removed to gdk_display_get_keymap(), add a helper to
+        GtkVersioning.h to avoid cluttering with ifdefs all over the
+        place.
+
+        * TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
+        (WebViewTest::keyStroke):
+        * TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
+        (TestWebKitAPI::doKeyStroke):
+        * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
+        (WTR::EventSenderProxy::keyDown):
+
 2020-04-17  Antoine Quint  <[email protected]>
 
         Allow the UserStyleLevel to be set through _WKUserStyleSheet

Modified: trunk/Tools/TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp (260254 => 260255)


--- trunk/Tools/TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Tools/TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp	2020-04-17 15:50:13 UTC (rev 260255)
@@ -22,6 +22,7 @@
 #include "WebViewTest.h"
 
 #include <WebCore/GUniquePtrGtk.h>
+#include <WebCore/GtkVersioning.h>
 #include <gtk/gtk.h>
 
 void WebViewTest::platformDestroy()
@@ -142,13 +143,14 @@
     event->key.time = GDK_CURRENT_TIME;
     event->key.window = gtk_widget_get_window(viewWidget);
     g_object_ref(event->key.window);
-    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(gtk_widget_get_display(viewWidget))));
+    GdkDisplay* display = gtk_widget_get_display(viewWidget);
+    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(display)));
     event->key.state = keyModifiers;
 
     // When synthesizing an event, an invalid hardware_keycode value can cause it to be badly processed by GTK+.
     GUniqueOutPtr<GdkKeymapKey> keys;
     int keysCount;
-    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), keyVal, &keys.outPtr(), &keysCount) && keysCount)
+    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_for_display(display), keyVal, &keys.outPtr(), &keysCount) && keysCount)
         event->key.hardware_keycode = keys.get()[0].keycode;
 
     gtk_main_do_event(event.get());

Modified: trunk/Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp (260254 => 260255)


--- trunk/Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp	2020-04-17 15:50:13 UTC (rev 260255)
@@ -27,6 +27,7 @@
 #include "PlatformWebView.h"
 
 #include <WebCore/GUniquePtrGtk.h>
+#include <WebCore/GtkVersioning.h>
 #include <WebKit/WKRetainPtr.h>
 #include <WebKit/WKView.h>
 #include <gtk/gtk.h>
@@ -90,12 +91,13 @@
     event->key.state = 0;
     event->key.window = gtk_widget_get_window(viewWidget);
     g_object_ref(event->key.window);
-    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(gtk_widget_get_display(viewWidget))));
+    GdkDisplay* display = gtk_widget_get_display(viewWidget);
+    gdk_event_set_device(event.get(), gdk_seat_get_pointer(gdk_display_get_default_seat(display)));
 
     // When synthesizing an event, an invalid hardware_keycode value can cause it to be badly processed by GTK+.
     GUniqueOutPtr<GdkKeymapKey> keys;
     int keysCount;
-    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), keyVal, &keys.outPtr(), &keysCount) && keysCount)
+    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_for_display(display), keyVal, &keys.outPtr(), &keysCount) && keysCount)
         event->key.hardware_keycode = keys.get()[0].keycode;
 
     gtk_main_do_event(event.get());

Modified: trunk/Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp (260254 => 260255)


--- trunk/Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp	2020-04-17 15:47:39 UTC (rev 260254)
+++ trunk/Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp	2020-04-17 15:50:13 UTC (rev 260255)
@@ -36,6 +36,7 @@
 #include "PlatformWebView.h"
 #include "TestController.h"
 #include <WebCore/GtkUtilities.h>
+#include <WebCore/GtkVersioning.h>
 #include <WebCore/NotImplemented.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
@@ -303,11 +304,12 @@
     pressEvent->key.state = modifiers;
     pressEvent->key.window = gtk_widget_get_window(GTK_WIDGET(m_testController->mainWebView()->platformWindow()));
     g_object_ref(pressEvent->key.window);
-    gdk_event_set_device(pressEvent, gdk_seat_get_pointer(gdk_display_get_default_seat(gdk_window_get_display(pressEvent->key.window))));
+    GdkDisplay* display = gdk_window_get_display(pressEvent->key.window);
+    gdk_event_set_device(pressEvent, gdk_seat_get_pointer(gdk_display_get_default_seat(display)));
 
     GUniqueOutPtr<GdkKeymapKey> keys;
     gint nKeys;
-    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), gdkKeySym, &keys.outPtr(), &nKeys) && nKeys)
+    if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_for_display(display), gdkKeySym, &keys.outPtr(), &nKeys) && nKeys)
         pressEvent->key.hardware_keycode = keys.get()[0].keycode;
 
     GdkEvent* releaseEvent = gdk_event_copy(pressEvent);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to