[gnome-builder] layout-grid: proxy focus request to current layout stack



commit c158fdd0a26e4214efdb7fa6310ea4f4c5d72e06
Author: Christian Hergert <chergert redhat com>
Date:   Sat Jan 27 01:40:04 2018 -0800

    layout-grid: proxy focus request to current layout stack
    
    We don't need to grab the column itself, because it's not interesting.
    Instead try to grab the current layout stack.

 src/libide/layout/ide-layout-grid-column.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
---
diff --git a/src/libide/layout/ide-layout-grid-column.c b/src/libide/layout/ide-layout-grid-column.c
index c32cb3018..7dbef2778 100644
--- a/src/libide/layout/ide-layout-grid-column.c
+++ b/src/libide/layout/ide-layout-grid-column.c
@@ -113,6 +113,22 @@ ide_layout_grid_column_remove (GtkContainer *container,
   GTK_CONTAINER_CLASS (ide_layout_grid_column_parent_class)->remove (container, widget);
 }
 
+static void
+ide_layout_grid_column_grab_focus (GtkWidget *widget)
+{
+  IdeLayoutGridColumn *self = (IdeLayoutGridColumn *)widget;
+  IdeLayoutStack *stack;
+
+  g_assert (IDE_IS_LAYOUT_GRID_COLUMN (self));
+
+  stack = ide_layout_grid_column_get_current_stack (self);
+
+  if (stack != NULL)
+    gtk_widget_grab_focus (GTK_WIDGET (stack));
+  else
+    GTK_WIDGET_CLASS (ide_layout_grid_column_parent_class)->grab_focus (widget);
+}
+
 static void
 ide_layout_grid_column_finalize (GObject *object)
 {
@@ -176,6 +192,8 @@ ide_layout_grid_column_class_init (IdeLayoutGridColumnClass *klass)
   object_class->get_property = ide_layout_grid_column_get_property;
   object_class->set_property = ide_layout_grid_column_set_property;
 
+  widget_class->grab_focus = ide_layout_grid_column_grab_focus;
+
   container_class->add = ide_layout_grid_column_add;
   container_class->remove = ide_layout_grid_column_remove;
 


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