forked from enlightenment/efl
Ecore_Wayland: Add ecore_wl_window_surface_create() API
On some use cases, it is necessary to create a new wl_surface without associating it to a wl_shell_surface. This new API makes it possible. Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
This commit is contained in:
parent
40e7751055
commit
19561c6112
|
@ -635,6 +635,16 @@ EAPI Ecore_Wl_Dnd *ecore_wl_dnd_get();
|
|||
EAPI Eina_Bool ecore_wl_dnd_start_drag();
|
||||
EAPI Eina_Bool ecore_wl_dnd_selection_has_owner(Ecore_Wl_Dnd *dnd);
|
||||
|
||||
/**
|
||||
* Returns a wl_surface with no association to any wl_shell_surface.
|
||||
*
|
||||
* @param win The window which will use this newly created surface.
|
||||
*
|
||||
* @ingroup Ecore_Wl_Window_Group
|
||||
* @since 1.8
|
||||
*/
|
||||
EAPI struct wl_surface *ecore_wl_window_surface_create(Ecore_Wl_Window *win);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -265,6 +265,17 @@ ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct wl_buffer *buffer, in
|
|||
}
|
||||
}
|
||||
|
||||
EAPI struct wl_surface*
|
||||
ecore_wl_window_surface_create(Ecore_Wl_Window *win)
|
||||
{
|
||||
if (!win) return NULL;
|
||||
if (win->surface) return NULL;
|
||||
|
||||
win->surface = wl_compositor_create_surface(_ecore_wl_disp->wl.compositor);
|
||||
wl_surface_set_user_data(win->surface, win);
|
||||
return win->surface;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_wl_window_show(Ecore_Wl_Window *win)
|
||||
{
|
||||
|
@ -273,9 +284,7 @@ ecore_wl_window_show(Ecore_Wl_Window *win)
|
|||
if (!win) return;
|
||||
if (win->surface) return;
|
||||
|
||||
win->surface = wl_compositor_create_surface(_ecore_wl_disp->wl.compositor);
|
||||
wl_surface_set_user_data(win->surface, win);
|
||||
/* wl_surface_add_listener(win->surface, &_ecore_wl_surface_listener, win); */
|
||||
ecore_wl_window_surface_create(win);
|
||||
|
||||
win->shell_surface =
|
||||
wl_shell_get_shell_surface(_ecore_wl_disp->wl.shell, win->surface);
|
||||
|
|
Loading…
Reference in New Issue