[PATCH weston 2/2] shell: Damage on workspace switch if workspace surface list is empty.
hoegsberg at gmail.com
Mon Aug 13 09:59:51 PDT 2012
On Mon, Aug 13, 2012 at 09:50:16AM -0600, Scott Moreau wrote:
> On Mon, Aug 13, 2012 at 9:22 AM, Kristian Høgsberg <hoegsberg at gmail.com>wrote:
> > On Sat, Aug 11, 2012 at 09:57:34PM -0600, Scott Moreau wrote:
> > > Surface damage effectively does nothing if the surface is not on any
> > output.
> > > Animations need a repaint to start and workspace switcher was relying on
> > > weston_surface_damage() to do this. If there are no surfaces on the
> > workspace,
> > > nothing will happen until the next repaint. So, in the case of no
> > surfaces in
> > > the workspace layer list, we just do a full damage to kick off the
> > animation.
> > >
> > > This bug was exposed by 982387011ff. The scenario is trying to switch
> > workspaces
> > > while there are no surfaces on the current workspace. If no other
> > damage/repaint
> > > is happening, the switch animation wont start until the moving the
> > mouse, for
> > > example.
> > Ah, not sure what I was thinking when I committed this. We should
> > never need workspace_damage_all_surfaces(), just changing the surface
> > transform and calling weston_compositor_schedule_repaint() should
> > suffice. Can you try just replacing all occurances of
> > workspace_damage_all_surfaces() with schedule repaint and see if that
> > fixes it? Then we'll do that instead of this and the 1/2 patch.
> > Kristian
> Yes, replacing all occurrences of workspace_damage_all_surfaces() with
> weston_compositor_schedule_repaint() fixes the 2/2 issue, but the 1/2 issue
> is entirely unrelated. (It does not fix the 1/2 issue). The only reason I
> submitted them in sequence was because they were bugs revealed by the same
> commit. I will submit a patch for the replacement to fix the 2/2 issue
Ah, right. I think we need to just do a
weston_compositor_schedule_repaint() in those cases instead.
More information about the wayland-devel