Re: cairo / xlib not updating window content

Pavel Petrovic <[email protected]> Sun, 29 Jul 2018 17:01:34 +0200
Newsgroups gmane.comp.lib.cairo
Message-ID <CA+B5pJnjprC2HtPp-UokjUHi+yGwvtDfD5aUD44PkwtS7RF1XQ@mail.gmail.com>
Hi Uli,

>> I am also responding to resizing of the window now
>> with resizing back to this fixed size, although I did not go
>> into preventing maximizing, which seems more tricky.
>
> You are now in violation of ICCCM ยง 4.2.4.

Thank you for pointing it out. It sounds very German.
I was afraid it has something to do with some legal rights.
I have put a line about that into the source.
I will consider that idea one day. :-)
For now, I am happy with a window that keeps its size when somebody
accidentally changes it.

> Also, please take a look at size hints where you can set a maximum and
> minimum size. Setting both to the same value makes the window unresizable.

Yes, maybe, in some window managers, yet, they can maximize,
oh, I do not need perfection here, only something that works for me.
It is a joke that one size fits all in this case paradoxically requires that
one size does not fit all. :-)

> Cedric's solution... I'm not quite sure what it does. It fixes some
> flickering that is not there? It does double buffering, too, but only
> uses a temporary buffer that loses its content afterwards? I felt like
> you want your windows to actually retain old content, which that
> temporary group does not do...

I think that is the magic of the push_group / pop_group that it does
retain the old content. When it is pushed, then a copy is created,
so you add new content to the previous one, and then paint it
back to the visible surface with pop. So both solutions solved
all issues.

Pavel.
-- 
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo