ecore-wl2: Improve popup support to be able to use the parent windows
seat Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
e0b3d1250b
commit
4d193552a8
|
@ -148,12 +148,23 @@ _ecore_wl2_window_type_set(Ecore_Wl2_Window *win)
|
|||
win->geometry.x, win->geometry.y, 0);
|
||||
break;
|
||||
case ECORE_WL2_WINDOW_TYPE_MENU:
|
||||
if ((win->xdg_surface) && (win->input))
|
||||
{
|
||||
Ecore_Wl2_Input *input;
|
||||
|
||||
input = win->input;
|
||||
if ((!input) && (win->parent))
|
||||
{
|
||||
input = win->parent->input;
|
||||
}
|
||||
|
||||
if ((!input) || (!input->wl.seat)) return;
|
||||
|
||||
if (win->xdg_surface)
|
||||
{
|
||||
win->xdg_popup =
|
||||
xdg_shell_get_xdg_popup(win->display->wl.xdg_shell,
|
||||
win->surface, win->parent->surface,
|
||||
win->input->wl.seat,
|
||||
input->wl.seat,
|
||||
win->display->serial,
|
||||
win->geometry.x, win->geometry.y);
|
||||
if (!win->xdg_popup)
|
||||
|
@ -163,15 +174,18 @@ _ecore_wl2_window_type_set(Ecore_Wl2_Window *win)
|
|||
}
|
||||
|
||||
xdg_popup_set_user_data(win->xdg_popup, win);
|
||||
xdg_popup_add_listener(win->xdg_popup, &_xdg_popup_listener, win);
|
||||
xdg_popup_add_listener(win->xdg_popup,
|
||||
&_xdg_popup_listener, win);
|
||||
}
|
||||
else if ((win->wl_shell_surface) && (win->input))
|
||||
else if (win->wl_shell_surface)
|
||||
{
|
||||
wl_shell_surface_set_popup(win->wl_shell_surface,
|
||||
win->input->wl.seat,
|
||||
input->wl.seat,
|
||||
win->display->serial,
|
||||
win->parent->surface,
|
||||
win->geometry.x, win->geometry.y, 0);
|
||||
win->geometry.x,
|
||||
win->geometry.y, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ECORE_WL2_WINDOW_TYPE_TOPLEVEL:
|
||||
|
|
Loading…
Reference in New Issue