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:
parent
304b48a15d
commit
f313d38458
@ -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;
|
||||
|
||||
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;
|
||||
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user