Hello Ander,<br><br>Thanks for the pointers.<br>I shall have a look as you suggested.<br><br><div class="gmail_quote">On Wed, Sep 12, 2012 at 12:53 AM, Ander Conselvan de Oliveira <span dir="ltr"><<a href="mailto:conselvan2@gmail.com" target="_blank">conselvan2@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 09/11/2012 05:48 PM, Abhijit Potnis wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
     > Repaint is supposed to be as-needed only, not periodical, but clearly<br>
     > some trigger is missing. Maybe a new surface is not assigned an<br>
    output<br>
     > until redraw, and redraw does not happen until there is damage, and<br>
     > damage is not applied, if the window is not mapped? Or something like<br>
     > that, chicken-and-egg problem with assigning an output. A wild<br>
    guess...<br>
     ><br>
<br>
<br>
Ya, I too feel so. I see that the final weston_output_finish_frame()<br>
call after<br>
  a client is killed arrives with output->repaint_needed set to 0, and hence<br>
  weston_output_repaint is not called.<br>
</blockquote>
<br></div>
If there is nothing else updating the screen you would see this happen when the first frame without the killed surface is shown on the screen. So this is expect, although it seems you're getting this one frame too early.<div class="im">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How does the window unmap-ing<br>
process occur ? Is this expected ?<br>
</blockquote>
<br></div>
Unmapping a surface involves damaging the area below the surface so it gets repainted on the next frame, removing the surface from the surface list, resetting keyboard and pointer focus if appropriate and scheduling a repaint. All this is done in weston_surface_unmap().<br>

<br>
It seems the problem you are seeing is caused by a failure to schedule a repaint. Looking at weston_surface_schedule_<u></u>repaint(), the only possible explanation for the failure would be the surface having a bad output_mask. So I would advise you to first verify if the output_mask is valid (i.e., the bits for the outputs the surface is in are set, should be 1 if you have just one output) and if that is invalid, try to figure out why you end up with a bad value. You probably want to look at weston_surface_assign_output() for that.<br>

<br>
Cheers,<br>
Ander<br>
</blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Abhijit Potnis<br><br>