desktop-shell: handle redundant panels
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 7 Dec 2017 09:54:11 +0000 (11:54 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Mon, 12 Feb 2018 11:14:39 +0000 (13:14 +0200)
commit1a0239e40ffc945b55a4f3218ae9a41ce0f143e3
tree1c0ca8616ba8dfcc87cc7363d1d84197647c14ee
parentff5e88d2765a1888f1f06a5198e5204a379ce5e3
desktop-shell: handle redundant panels

If for some reason the helper client weston-desktop-shell would create
more than one panel surface for the same weston_output, this code would
corrupt the surface destroy listener list by adding a link already in
one list into another list.

Instead, do not store the new, redundant panel surface and do not
subscribe to its destruction. Also, tell the helper that the surface is
redundant by configuring it with a 0x0 size, so that we don't waste
memory on a panel that is never used.

(Clone mode is a valid reason why weston-desktop-shell could do that.)

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
desktop-shell/shell.c