Consider the text direction when sorting children. (#116540, Soeren
2003-07-09 Matthias Clasen <maclas@gmx.de> * gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction when sorting children. (#116540, Soeren Sandmann)
This commit is contained in:
parent
8500d9458e
commit
1f012b369b
@ -1,3 +1,8 @@
|
|||||||
|
2003-07-09 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
|
||||||
|
when sorting children. (#116540, Soeren Sandmann)
|
||||||
|
|
||||||
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2003-07-09 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
|
||||||
|
when sorting children. (#116540, Soeren Sandmann)
|
||||||
|
|
||||||
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2003-07-09 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
|
||||||
|
when sorting children. (#116540, Soeren Sandmann)
|
||||||
|
|
||||||
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2003-07-09 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
|
||||||
|
when sorting children. (#116540, Soeren Sandmann)
|
||||||
|
|
||||||
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2003-07-09 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_focus_sort_tab): Consider the text direction
|
||||||
|
when sorting children. (#116540, Soeren Sandmann)
|
||||||
|
|
||||||
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
Tue Jul 8 17:36:21 2003 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
* gdk/x11/gdkasync.[ch] gdk/gdkdnd-x11.c:
|
||||||
|
@ -1570,10 +1570,12 @@ gtk_container_focus (GtkWidget *widget,
|
|||||||
|
|
||||||
static gint
|
static gint
|
||||||
tab_compare (gconstpointer a,
|
tab_compare (gconstpointer a,
|
||||||
gconstpointer b)
|
gconstpointer b,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
const GtkWidget *child1 = a;
|
const GtkWidget *child1 = a;
|
||||||
const GtkWidget *child2 = b;
|
const GtkWidget *child2 = b;
|
||||||
|
GtkTextDirection text_direction = GPOINTER_TO_INT (data);
|
||||||
|
|
||||||
gint y1 = child1->allocation.y + child1->allocation.height / 2;
|
gint y1 = child1->allocation.y + child1->allocation.height / 2;
|
||||||
gint y2 = child2->allocation.y + child2->allocation.height / 2;
|
gint y2 = child2->allocation.y + child2->allocation.height / 2;
|
||||||
@ -1583,7 +1585,10 @@ tab_compare (gconstpointer a,
|
|||||||
gint x1 = child1->allocation.x + child1->allocation.width / 2;
|
gint x1 = child1->allocation.x + child1->allocation.width / 2;
|
||||||
gint x2 = child2->allocation.x + child2->allocation.width / 2;
|
gint x2 = child2->allocation.x + child2->allocation.width / 2;
|
||||||
|
|
||||||
return (x1 < x2) ? -1 : ((x1 == x2) ? 0 : 1);
|
if (text_direction == GTK_TEXT_DIR_RTL)
|
||||||
|
return (x1 < x2) ? 1 : ((x1 == x2) ? 0 : -1);
|
||||||
|
else
|
||||||
|
return (x1 < x2) ? -1 : ((x1 == x2) ? 0 : 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return (y1 < y2) ? -1 : 1;
|
return (y1 < y2) ? -1 : 1;
|
||||||
@ -1595,7 +1600,8 @@ gtk_container_focus_sort_tab (GtkContainer *container,
|
|||||||
GtkDirectionType direction,
|
GtkDirectionType direction,
|
||||||
GtkWidget *old_focus)
|
GtkWidget *old_focus)
|
||||||
{
|
{
|
||||||
children = g_list_sort (children, tab_compare);
|
GtkTextDirection text_direction = gtk_widget_get_direction (GTK_WIDGET (container));
|
||||||
|
children = g_list_sort_with_data (children, tab_compare, GINT_TO_POINTER (text_direction));
|
||||||
|
|
||||||
/* if we are going backwards then reverse the order
|
/* if we are going backwards then reverse the order
|
||||||
* of the children.
|
* of the children.
|
||||||
|
Loading…
Reference in New Issue
Block a user