[gnome-builder/wip/gtk4-port] libide/webkit: focus webview when escaping from url bar



commit 7837a5e69eef1588ee291c7e9f62644759d7e141
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jun 3 15:56:55 2022 -0700

    libide/webkit: focus webview when escaping from url bar

 src/libide/webkit/ide-url-bar.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
---
diff --git a/src/libide/webkit/ide-url-bar.c b/src/libide/webkit/ide-url-bar.c
index ed1734e38..a872ae492 100644
--- a/src/libide/webkit/ide-url-bar.c
+++ b/src/libide/webkit/ide-url-bar.c
@@ -218,6 +218,21 @@ ide_url_bar_grab_focus (GtkWidget *widget)
   return TRUE;
 }
 
+static gboolean
+focus_view_callback (GtkWidget *widget,
+                     GVariant  *params,
+                     gpointer   user_data)
+{
+  IdeUrlBar *self = (IdeUrlBar *)widget;
+
+  g_assert (IDE_IS_URL_BAR (self));
+
+  if (self->web_view != NULL)
+    return gtk_widget_grab_focus (GTK_WIDGET (self->web_view));
+
+  return FALSE;
+}
+
 static void
 ide_url_bar_dispose (GObject *object)
 {
@@ -301,6 +316,8 @@ ide_url_bar_class_init (IdeUrlBarClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, on_editable_focus_enter_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_editable_focus_leave_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_editable_activate_cb);
+
+  gtk_widget_class_add_binding (widget_class, GDK_KEY_Escape, 0, focus_view_callback, NULL);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]