ecore-wl2: do not attempt to call zxdg_surface_v6.get_popup without a parent
this is a protocol error so ensure that it can never occur @fix
This commit is contained in:
parent
7caf3b88ce
commit
13cf5a1d43
|
@ -255,6 +255,8 @@ _ecore_wl2_window_zxdg_popup_create(Ecore_Wl2_Window *win)
|
||||||
{
|
{
|
||||||
struct zxdg_positioner_v6 *pos;
|
struct zxdg_positioner_v6 *pos;
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN(win->parent);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN(win->grab);
|
||||||
pos = zxdg_shell_v6_create_positioner(win->display->wl.zxdg_shell);
|
pos = zxdg_shell_v6_create_positioner(win->display->wl.zxdg_shell);
|
||||||
if (!pos) return;
|
if (!pos) return;
|
||||||
|
|
||||||
|
@ -266,17 +268,8 @@ _ecore_wl2_window_zxdg_popup_create(Ecore_Wl2_Window *win)
|
||||||
zxdg_positioner_v6_set_gravity(pos, ZXDG_POSITIONER_V6_ANCHOR_BOTTOM |
|
zxdg_positioner_v6_set_gravity(pos, ZXDG_POSITIONER_V6_ANCHOR_BOTTOM |
|
||||||
ZXDG_POSITIONER_V6_ANCHOR_RIGHT);
|
ZXDG_POSITIONER_V6_ANCHOR_RIGHT);
|
||||||
|
|
||||||
if (win->parent)
|
win->zxdg_popup = zxdg_surface_v6_get_popup(win->zxdg_surface,
|
||||||
{
|
win->parent->zxdg_surface, pos);
|
||||||
win->zxdg_popup =
|
|
||||||
zxdg_surface_v6_get_popup(win->zxdg_surface,
|
|
||||||
win->parent->zxdg_surface, pos);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
win->zxdg_popup =
|
|
||||||
zxdg_surface_v6_get_popup(win->zxdg_surface, NULL, pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
zxdg_positioner_v6_destroy(pos);
|
zxdg_positioner_v6_destroy(pos);
|
||||||
zxdg_popup_v6_grab(win->zxdg_popup, win->grab->wl.seat,
|
zxdg_popup_v6_grab(win->zxdg_popup, win->grab->wl.seat,
|
||||||
|
@ -300,6 +293,8 @@ _ecore_wl2_window_type_set(Ecore_Wl2_Window *win)
|
||||||
_ecore_wl2_window_zxdg_popup_create(win);
|
_ecore_wl2_window_zxdg_popup_create(win);
|
||||||
else if (win->xdg_surface)
|
else if (win->xdg_surface)
|
||||||
{
|
{
|
||||||
|
EINA_SAFETY_ON_TRUE_RETURN(!win->parent);
|
||||||
|
EINA_SAFETY_ON_TRUE_RETURN(!win->grab);
|
||||||
win->xdg_popup =
|
win->xdg_popup =
|
||||||
xdg_shell_get_xdg_popup(win->display->wl.xdg_shell,
|
xdg_shell_get_xdg_popup(win->display->wl.xdg_shell,
|
||||||
win->surface, win->parent->surface,
|
win->surface, win->parent->surface,
|
||||||
|
|
Loading…
Reference in New Issue