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 d263c12e2e
commit d67e54d3ee

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,