struct wl_display *display;
struct wl_registry *registry;
struct wl_compositor *compositor;
+ struct wl_subcompositor *subcompositor;
struct wl_shell *shell;
struct wl_shell *desktop_shell;
struct wl_shm *shm;
#include <fcntl.h>
#include "ecore_wl_private.h"
+#include <subsurface-client-protocol.h>
/* local function prototypes */
static Eina_Bool _ecore_wl_shutdown(Eina_Bool close);
wl_data_device_manager_destroy(_ecore_wl_disp->wl.data_device_manager);
if (_ecore_wl_disp->wl.compositor)
wl_compositor_destroy(_ecore_wl_disp->wl.compositor);
+ if (_ecore_wl_disp->wl.subcompositor)
+ wl_compositor_destroy(_ecore_wl_disp->wl.subcompositor);
if (_ecore_wl_disp->wl.display)
{
wl_registry_destroy(_ecore_wl_disp->wl.registry);
ewd->wl.compositor =
wl_registry_bind(registry, id, &wl_compositor_interface, 1);
}
+ else if (!strcmp(interface, "wl_subcompositor"))
+ {
+ ewd->wl.subcompositor =
+ wl_registry_bind(registry, id, &wl_subcompositor_interface, 1);
+ }
else if (!strcmp(interface, "wl_output"))
_ecore_wl_output_add(ewd, id);
else if (!strcmp(interface, "wl_seat"))