Don't use the default stage when setting up adjustments

If the actor isn't in a stage, then setting up the adjustment
based on the actor's size (which we can't compute) and the
size of the default stage (which isn't relevant), doesn't make
sense. Just use arbitrary default values.

The adjustments will be updated to reasonable values when first
the box is first allocated.

It's not entirely clear to me why we ever want to compute the
adjustment settings this way; perhaps we should always use
default values.

http://bugzilla.moblin.org/show_bug.cgi?id=6307
This commit is contained in:
Owen W. Taylor 2009-09-21 17:20:34 -04:00
parent 70cb8e180b
commit faeda5dc8b

View File

@ -138,8 +138,6 @@ scrollable_get_adjustments (NbtkScrollable *scrollable,
actor = CLUTTER_ACTOR (scrollable); actor = CLUTTER_ACTOR (scrollable);
stage = clutter_actor_get_stage (actor); stage = clutter_actor_get_stage (actor);
if (G_UNLIKELY (stage == NULL))
stage = clutter_stage_get_default ();
if (hadjustment) if (hadjustment)
{ {
@ -150,9 +148,16 @@ scrollable_get_adjustments (NbtkScrollable *scrollable,
NbtkAdjustment *adjustment; NbtkAdjustment *adjustment;
gdouble width, stage_width, increment; gdouble width, stage_width, increment;
width = clutter_actor_get_width (actor); if (stage)
stage_width = clutter_actor_get_width (stage); {
increment = MAX (1.0, MIN (stage_width, width)); width = clutter_actor_get_width (actor);
stage_width = clutter_actor_get_width (stage);
increment = MAX (1.0, MIN (stage_width, width));
}
else
{
width = increment = 1.0;
}
adjustment = nbtk_adjustment_new (0, adjustment = nbtk_adjustment_new (0,
0, 0,
@ -178,9 +183,16 @@ scrollable_get_adjustments (NbtkScrollable *scrollable,
NbtkAdjustment *adjustment; NbtkAdjustment *adjustment;
gdouble height, stage_height, increment; gdouble height, stage_height, increment;
height = clutter_actor_get_height (actor); if (stage)
stage_height = clutter_actor_get_height (stage); {
increment = MAX (1.0, MIN (stage_height, height)); height = clutter_actor_get_height (actor);
stage_height = clutter_actor_get_height (stage);
increment = MAX (1.0, MIN (stage_height, height));
}
else
{
height = increment = 1.0;
}
adjustment = nbtk_adjustment_new (0, adjustment = nbtk_adjustment_new (0,
0, 0,