forked from AuroraMiddleware/gtk
Handle focus [hv]adjustment correctly when the focus is located deeper
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle focus [hv]adjustment correctly when the focus is located deeper down in the hierarchy. (#133489)
This commit is contained in:
parent
0cd208cfee
commit
740252b0cf
@ -1,3 +1,9 @@
|
|||||||
|
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle
|
||||||
|
focus [hv]adjustment correctly when the focus is located deeper
|
||||||
|
down in the hierarchy. (#133489)
|
||||||
|
|
||||||
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
||||||
@ -44,7 +50,6 @@ Tue Feb 10 12:02:14 2004 Owen Taylor <otaylor@redhat.com>
|
|||||||
* tests/prop-editor.c (create_prop_editor): Free the title.
|
* tests/prop-editor.c (create_prop_editor): Free the title.
|
||||||
(object_changed): Free the children list.
|
(object_changed): Free the children list.
|
||||||
|
|
||||||
>>>>>>> 1.4914
|
|
||||||
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle
|
||||||
|
focus [hv]adjustment correctly when the focus is located deeper
|
||||||
|
down in the hierarchy. (#133489)
|
||||||
|
|
||||||
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
||||||
@ -44,7 +50,6 @@ Tue Feb 10 12:02:14 2004 Owen Taylor <otaylor@redhat.com>
|
|||||||
* tests/prop-editor.c (create_prop_editor): Free the title.
|
* tests/prop-editor.c (create_prop_editor): Free the title.
|
||||||
(object_changed): Free the children list.
|
(object_changed): Free the children list.
|
||||||
|
|
||||||
>>>>>>> 1.4914
|
|
||||||
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle
|
||||||
|
focus [hv]adjustment correctly when the focus is located deeper
|
||||||
|
down in the hierarchy. (#133489)
|
||||||
|
|
||||||
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
||||||
@ -44,7 +50,6 @@ Tue Feb 10 12:02:14 2004 Owen Taylor <otaylor@redhat.com>
|
|||||||
* tests/prop-editor.c (create_prop_editor): Free the title.
|
* tests/prop-editor.c (create_prop_editor): Free the title.
|
||||||
(object_changed): Free the children list.
|
(object_changed): Free the children list.
|
||||||
|
|
||||||
>>>>>>> 1.4914
|
|
||||||
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle
|
||||||
|
focus [hv]adjustment correctly when the focus is located deeper
|
||||||
|
down in the hierarchy. (#133489)
|
||||||
|
|
||||||
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
||||||
@ -44,7 +50,6 @@ Tue Feb 10 12:02:14 2004 Owen Taylor <otaylor@redhat.com>
|
|||||||
* tests/prop-editor.c (create_prop_editor): Free the title.
|
* tests/prop-editor.c (create_prop_editor): Free the title.
|
||||||
(object_changed): Free the children list.
|
(object_changed): Free the children list.
|
||||||
|
|
||||||
>>>>>>> 1.4914
|
|
||||||
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Wed Feb 11 02:23:39 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkcontainer.c (gtk_container_real_set_focus_child): Handle
|
||||||
|
focus [hv]adjustment correctly when the focus is located deeper
|
||||||
|
down in the hierarchy. (#133489)
|
||||||
|
|
||||||
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Feb 11 02:06:38 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Remove
|
||||||
@ -44,7 +50,6 @@ Tue Feb 10 12:02:14 2004 Owen Taylor <otaylor@redhat.com>
|
|||||||
* tests/prop-editor.c (create_prop_editor): Free the title.
|
* tests/prop-editor.c (create_prop_editor): Free the title.
|
||||||
(object_changed): Free the children list.
|
(object_changed): Free the children list.
|
||||||
|
|
||||||
>>>>>>> 1.4914
|
|
||||||
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
Tue Feb 10 01:58:55 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
* gtk/gtkcontainer.c (gtk_container_set_focus_hadjustment):
|
||||||
|
@ -1459,8 +1459,7 @@ gtk_container_real_set_focus_child (GtkContainer *container,
|
|||||||
GtkWidget *child)
|
GtkWidget *child)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GTK_IS_CONTAINER (container));
|
g_return_if_fail (GTK_IS_CONTAINER (container));
|
||||||
if (child)
|
g_return_if_fail (child == NULL || GTK_IS_WIDGET (child));
|
||||||
g_return_if_fail (GTK_IS_WIDGET (child));
|
|
||||||
|
|
||||||
if (child != container->focus_child)
|
if (child != container->focus_child)
|
||||||
{
|
{
|
||||||
@ -1476,21 +1475,35 @@ gtk_container_real_set_focus_child (GtkContainer *container,
|
|||||||
*/
|
*/
|
||||||
if (container->focus_child)
|
if (container->focus_child)
|
||||||
{
|
{
|
||||||
GtkAdjustment *adjustment;
|
GtkAdjustment *hadj;
|
||||||
|
GtkAdjustment *vadj;
|
||||||
adjustment = g_object_get_qdata (G_OBJECT (container), vadjustment_key_id);
|
GtkWidget *focus_child;
|
||||||
if (adjustment)
|
gint x, y;
|
||||||
gtk_adjustment_clamp_page (adjustment,
|
|
||||||
container->focus_child->allocation.y,
|
|
||||||
(container->focus_child->allocation.y +
|
|
||||||
container->focus_child->allocation.height));
|
|
||||||
|
|
||||||
adjustment = g_object_get_qdata (G_OBJECT (container), hadjustment_key_id);
|
hadj = g_object_get_qdata (G_OBJECT (container), hadjustment_key_id);
|
||||||
if (adjustment)
|
vadj = g_object_get_qdata (G_OBJECT (container), vadjustment_key_id);
|
||||||
gtk_adjustment_clamp_page (adjustment,
|
if (hadj || vadj)
|
||||||
container->focus_child->allocation.x,
|
{
|
||||||
(container->focus_child->allocation.x +
|
|
||||||
container->focus_child->allocation.width));
|
focus_child = container->focus_child;
|
||||||
|
while (GTK_IS_CONTAINER (focus_child) &&
|
||||||
|
GTK_CONTAINER (focus_child)->focus_child)
|
||||||
|
{
|
||||||
|
focus_child = GTK_CONTAINER (focus_child)->focus_child;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_translate_coordinates (focus_child, container->focus_child,
|
||||||
|
0, 0, &x, &y);
|
||||||
|
|
||||||
|
x += container->focus_child->allocation.x;
|
||||||
|
y += container->focus_child->allocation.y;
|
||||||
|
|
||||||
|
if (vadj)
|
||||||
|
gtk_adjustment_clamp_page (vadj, y, y + focus_child->allocation.height);
|
||||||
|
|
||||||
|
if (hadj)
|
||||||
|
gtk_adjustment_clamp_page (hadj, x, x + focus_child->allocation.width);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user