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
d263c12e2e
commit
d67e54d3ee
@ -151,8 +151,6 @@ scrollable_get_adjustments (StScrollable *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)
|
||||||
{
|
{
|
||||||
@ -163,9 +161,16 @@ scrollable_get_adjustments (StScrollable *scrollable,
|
|||||||
StAdjustment *adjustment;
|
StAdjustment *adjustment;
|
||||||
gdouble width, stage_width, increment;
|
gdouble width, stage_width, increment;
|
||||||
|
|
||||||
|
if (stage)
|
||||||
|
{
|
||||||
width = clutter_actor_get_width (actor);
|
width = clutter_actor_get_width (actor);
|
||||||
stage_width = clutter_actor_get_width (stage);
|
stage_width = clutter_actor_get_width (stage);
|
||||||
increment = MAX (1.0, MIN (stage_width, width));
|
increment = MAX (1.0, MIN (stage_width, width));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
width = increment = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
adjustment = st_adjustment_new (0,
|
adjustment = st_adjustment_new (0,
|
||||||
0,
|
0,
|
||||||
@ -191,9 +196,16 @@ scrollable_get_adjustments (StScrollable *scrollable,
|
|||||||
StAdjustment *adjustment;
|
StAdjustment *adjustment;
|
||||||
gdouble height, stage_height, increment;
|
gdouble height, stage_height, increment;
|
||||||
|
|
||||||
|
if (stage)
|
||||||
|
{
|
||||||
height = clutter_actor_get_height (actor);
|
height = clutter_actor_get_height (actor);
|
||||||
stage_height = clutter_actor_get_height (stage);
|
stage_height = clutter_actor_get_height (stage);
|
||||||
increment = MAX (1.0, MIN (stage_height, height));
|
increment = MAX (1.0, MIN (stage_height, height));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
height = increment = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
adjustment = st_adjustment_new (0,
|
adjustment = st_adjustment_new (0,
|
||||||
0,
|
0,
|
||||||
|
Loading…
Reference in New Issue
Block a user