[gtk/wip/matthiasc/focus2] box: Add a next-focus-chain implementation
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/matthiasc/focus2] box: Add a next-focus-chain implementation
- Date: Tue, 12 Mar 2019 01:11:59 +0000 (UTC)
commit 6a54cb3d3b0bb076aac079a8be13ffadbc887d2c
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Mar 11 15:08:12 2019 -0400
box: Add a next-focus-chain implementation
This just uses the child order for Tab/Shift-Tab.
gtk/gtkbox.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
---
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c
index 307276c63f..851b3efde5 100644
--- a/gtk/gtkbox.c
+++ b/gtk/gtkbox.c
@@ -123,6 +123,9 @@ static void gtk_box_measure (GtkWidget *widget,
int *natural,
int *minimum_baseline,
int *natural_baseline);
+GtkWidget * gtk_box_next_focus_child (GtkWidget *widget,
+ GtkWidget *child,
+ GtkDirectionType direction);
G_DEFINE_TYPE_WITH_CODE (GtkBox, gtk_box, GTK_TYPE_CONTAINER,
G_ADD_PRIVATE (GtkBox)
@@ -140,6 +143,7 @@ gtk_box_class_init (GtkBoxClass *class)
widget_class->size_allocate = gtk_box_size_allocate;
widget_class->measure = gtk_box_measure;
+ widget_class->next_focus_child = gtk_box_next_focus_child;
container_class->add = gtk_box_add;
container_class->remove = gtk_box_remove;
@@ -1149,3 +1153,26 @@ gtk_box_reorder_child_after (GtkBox *box,
gtk_widget_get_css_node (child),
sibling ? gtk_widget_get_css_node (sibling) : NULL);
}
+
+GtkWidget *
+gtk_box_next_focus_child (GtkWidget *widget,
+ GtkWidget *child,
+ GtkDirectionType direction)
+{
+ if (direction == GTK_DIR_TAB_FORWARD)
+ {
+ if (child)
+ return gtk_widget_get_next_sibling (child);
+ else
+ return gtk_widget_get_first_child (widget);
+ }
+ else if (direction == GTK_DIR_TAB_BACKWARD)
+ {
+ if (child)
+ return gtk_widget_get_prev_sibling (child);
+ else
+ return gtk_widget_get_last_child (widget);
+ }
+
+ return GTK_WIDGET_CLASS (gtk_box_parent_class)->next_focus_child (widget, child, direction);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]