[nautilus/wip/antoniof/experimental-gtk4-build: 36/52] must focus
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/antoniof/experimental-gtk4-build: 36/52] must focus
- Date: Fri, 31 Dec 2021 23:58:46 +0000 (UTC)
commit 371c4a26aec501d3f4a5ed289d00c8a04d64ed86
Author: António Fernandes <antoniof gnome org>
Date: Fri Dec 24 00:59:41 2021 +0000
must focus
src/nautilus-files-view.c | 12 ++++++++----
src/nautilus-query-editor.c | 18 ++++++++++++++----
src/nautilus-window-slot.c | 20 +++++++++++++-------
src/nautilus-window.c | 11 ++++++++---
4 files changed, 43 insertions(+), 18 deletions(-)
---
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index a09b6de04..bb158fbf5 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -3110,7 +3110,7 @@ slot_active_changed (NautilusWindowSlot *slot,
}
}
-static void
+static gboolean
nautilus_files_view_grab_focus (GtkWidget *widget)
{
/* focus the child of the scrolled window if it exists */
@@ -3118,16 +3118,20 @@ nautilus_files_view_grab_focus (GtkWidget *widget)
NautilusFilesViewPrivate *priv;
GtkWidget *child;
+ if (GTK_WIDGET_CLASS (nautilus_files_view_parent_class)->grab_focus (widget))
+ {
+ return TRUE;
+ }
+
view = NAUTILUS_FILES_VIEW (widget);
priv = nautilus_files_view_get_instance_private (view);
child = gtk_scrolled_window_get_child (GTK_SCROLLED_WINDOW (priv->scrolled_window));
- GTK_WIDGET_CLASS (nautilus_files_view_parent_class)->grab_focus (widget);
-
if (child)
{
- gtk_widget_grab_focus (GTK_WIDGET (child));
+ return gtk_widget_grab_focus (GTK_WIDGET (child));
}
+ return FALSE;
}
static void
diff --git a/src/nautilus-query-editor.c b/src/nautilus-query-editor.c
index 8b2549ea6..dcb6e5e59 100644
--- a/src/nautilus-query-editor.c
+++ b/src/nautilus-query-editor.c
@@ -145,19 +145,29 @@ nautilus_query_editor_dispose (GObject *object)
G_OBJECT_CLASS (nautilus_query_editor_parent_class)->dispose (object);
}
-static void
+static gboolean
nautilus_query_editor_grab_focus (GtkWidget *widget)
{
NautilusQueryEditor *editor;
editor = NAUTILUS_QUERY_EDITOR (widget);
- if (gtk_widget_get_visible (widget) && !gtk_widget_is_focus (editor->entry))
+ if (GTK_WIDGET_CLASS (nautilus_query_editor_parent_class)->grab_focus (widget))
+ {
+ return TRUE;
+ }
+
+ if (gtk_widget_get_visible (widget))
{
/* avoid selecting the entry text */
- gtk_widget_grab_focus (editor->entry);
- gtk_editable_set_position (GTK_EDITABLE (editor->entry), -1);
+ if (gtk_widget_grab_focus (editor->entry))
+ {
+ gtk_editable_set_position (GTK_EDITABLE (editor->entry), -1);
+ return TRUE;
+ }
}
+
+ return FALSE;
}
static void
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index bf9fa156c..8a613f22c 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -2944,25 +2944,31 @@ nautilus_window_slot_finalize (GObject *object)
G_OBJECT_CLASS (nautilus_window_slot_parent_class)->finalize (object);
}
-static void
+static gboolean
nautilus_window_slot_grab_focus (GtkWidget *widget)
{
NautilusWindowSlot *self;
self = NAUTILUS_WINDOW_SLOT (widget);
- GTK_WIDGET_CLASS (nautilus_window_slot_parent_class)->grab_focus (widget);
+
+ if (GTK_WIDGET_CLASS (nautilus_window_slot_parent_class)->grab_focus (widget))
+ {
+ return TRUE;
+ }
if (nautilus_window_slot_get_search_visible (self))
{
- gtk_widget_grab_focus (GTK_WIDGET (self->query_editor));
+ return gtk_widget_grab_focus (GTK_WIDGET (self->query_editor));
}
- else if (self->content_view)
+ if (self->content_view)
{
- gtk_widget_grab_focus (GTK_WIDGET (self->content_view));
+ return gtk_widget_grab_focus (GTK_WIDGET (self->content_view));
}
- else if (self->new_content_view)
+ if (self->new_content_view)
{
- gtk_widget_grab_focus (GTK_WIDGET (self->new_content_view));
+ return gtk_widget_grab_focus (GTK_WIDGET (self->new_content_view));
}
+
+ return FALSE;
}
static void
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 3026e27bd..4e2b67d60 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -632,19 +632,24 @@ remember_focus_widget (NautilusWindow *window)
}
}
-static void
+static gboolean
nautilus_window_grab_focus (GtkWidget *widget)
{
NautilusWindowSlot *slot;
slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (widget));
- GTK_WIDGET_CLASS (nautilus_window_parent_class)->grab_focus (widget);
+ if (GTK_WIDGET_CLASS (nautilus_window_parent_class)->grab_focus (widget))
+ {
+ return TRUE;
+ }
if (slot)
{
- gtk_widget_grab_focus (GTK_WIDGET (slot));
+ return gtk_widget_grab_focus (GTK_WIDGET (slot));
}
+
+ return FALSE;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]