desktop-shell: Fail if get_xdg_surface is called on an xdg_surface
authorJonas Ådahl <jadahl@gmail.com>
Fri, 6 Feb 2015 02:15:28 +0000 (10:15 +0800)
committerBryce Harrington <bryce@osg.samsung.com>
Sat, 7 Feb 2015 01:46:05 +0000 (17:46 -0800)
commitbf48e21fa18df9d2c917b8577633107e4b1681de
treebf387cfdaaf5fa8cfd0de33f163a6819c0f09cd7
parentf10e06c77aee1c27e5f11f02e5ae6e1ae7fd36a5
desktop-shell: Fail if get_xdg_surface is called on an xdg_surface

If a client calls xdg_shell.get_xdg_surface on a surface that is already
an xdg_surface would, prior to this patch, succeed, but cause weston to
crash later when trying to configure. This patch instead sends a role
error to the client complaining that it already is an xdg_surface.

Note that .._set_role() only fails when changing roles, not when setting
the same role twice.

The same is done for xdg_popup.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
desktop-shell/shell.c