From 802e094bd3500fa9a0f9591b5347346a5d3e2efc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 12 Dec 2003 23:40:58 +0000 Subject: Implement "gravity" for RTL mode in a better way: Keep the distance from Sat Dec 13 00:39:24 2003 Matthias Clasen * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement "gravity" for RTL mode in a better way: Keep the distance from the upper end of the page to the upper bound constant. This also fixes problems with the initial position of the viewport in RTL mode. (#129063) --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-4 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ gtk/gtkviewport.c | 8 ++++++-- 6 files changed, 46 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a33f30f41..51942c8b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Dec 13 00:39:24 2003 Matthias Clasen + + * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement + "gravity" for RTL mode in a better way: Keep the distance from + the upper end of the page to the upper bound constant. This also + fixes problems with the initial position of the viewport in RTL + mode. (#129063) + Fri Dec 12 21:00:12 2003 Kristian Rietveld Combo box flipping support. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index a33f30f41..51942c8b3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Sat Dec 13 00:39:24 2003 Matthias Clasen + + * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement + "gravity" for RTL mode in a better way: Keep the distance from + the upper end of the page to the upper bound constant. This also + fixes problems with the initial position of the viewport in RTL + mode. (#129063) + Fri Dec 12 21:00:12 2003 Kristian Rietveld Combo box flipping support. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index a33f30f41..51942c8b3 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +Sat Dec 13 00:39:24 2003 Matthias Clasen + + * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement + "gravity" for RTL mode in a better way: Keep the distance from + the upper end of the page to the upper bound constant. This also + fixes problems with the initial position of the viewport in RTL + mode. (#129063) + Fri Dec 12 21:00:12 2003 Kristian Rietveld Combo box flipping support. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index a33f30f41..51942c8b3 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Sat Dec 13 00:39:24 2003 Matthias Clasen + + * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement + "gravity" for RTL mode in a better way: Keep the distance from + the upper end of the page to the upper bound constant. This also + fixes problems with the initial position of the viewport in RTL + mode. (#129063) + Fri Dec 12 21:00:12 2003 Kristian Rietveld Combo box flipping support. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index a33f30f41..51942c8b3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Sat Dec 13 00:39:24 2003 Matthias Clasen + + * gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement + "gravity" for RTL mode in a better way: Keep the distance from + the upper end of the page to the upper bound constant. This also + fixes problems with the initial position of the viewport in RTL + mode. (#129063) + Fri Dec 12 21:00:12 2003 Kristian Rietveld Combo box flipping support. diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index 4977865ff..084a7a00b 100644 --- a/gtk/gtkviewport.c +++ b/gtk/gtkviewport.c @@ -383,10 +383,14 @@ viewport_set_hadjustment_values (GtkViewport *viewport, GtkAllocation view_allocation; GtkAdjustment *hadjustment = gtk_viewport_get_hadjustment (viewport); gdouble old_page_size; + gdouble old_upper; + gdouble old_value; viewport_get_view_allocation (viewport, &view_allocation); old_page_size = hadjustment->page_size; + old_upper = hadjustment->upper; + old_value = hadjustment->value; hadjustment->page_size = view_allocation.width; hadjustment->step_increment = view_allocation.width * 0.1; hadjustment->page_increment = view_allocation.width * 0.9; @@ -405,8 +409,8 @@ viewport_set_hadjustment_values (GtkViewport *viewport, if (gtk_widget_get_direction (GTK_WIDGET (viewport)) == GTK_TEXT_DIR_RTL) { - gdouble old_value = hadjustment->value; - hadjustment->value = hadjustment->value + old_page_size - hadjustment->page_size; + gdouble dist = old_upper - (old_value + old_page_size); + hadjustment->value = hadjustment->upper - dist - hadjustment->page_size; viewport_reclamp_adjustment (hadjustment, value_changed); *value_changed = (old_value != hadjustment->value); } -- cgit v1.2.1