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
https://bugzilla.gnome.org/show_bug.cgi?id=595996
This commit is contained in:
Owen W. Taylor 2009-09-21 17:20:34 -04:00
parent 304b48a15d
commit f313d38458

View File

@ -151,8 +151,6 @@ scrollable_get_adjustments (StScrollable *scrollable,
actor = CLUTTER_ACTOR (scrollable);
stage = clutter_actor_get_stage (actor);
if (G_UNLIKELY (stage == NULL))
stage = clutter_stage_get_default ();
if (hadjustment)
{
@ -163,9 +161,16 @@ scrollable_get_adjustments (StScrollable *scrollable,
StAdjustment *adjustment;
gdouble width, stage_width, increment;
width = clutter_actor_get_width (actor);
stage_width = clutter_actor_get_width (stage);
increment = MAX (1.0, MIN (stage_width, width));
if (stage)
{
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 = st_adjustment_new (0,
0,
@ -191,9 +196,16 @@ scrollable_get_adjustments (StScrollable *scrollable,
StAdjustment *adjustment;
gdouble height, stage_height, increment;
height = clutter_actor_get_height (actor);
stage_height = clutter_actor_get_height (stage);
increment = MAX (1.0, MIN (stage_height, height));
if (stage)
{
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 = st_adjustment_new (0,
0,