ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
authorRafael Antognolli <rafael.antognolli@intel.com>
Sat, 31 Aug 2013 18:20:22 +0000 (15:20 -0300)
committerRafael Antognolli <rafael.antognolli@intel.com>
Thu, 10 Oct 2013 16:24:22 +0000 (13:24 -0300)
src/lib/ecore_wayland/Ecore_Wayland.h
src/lib/ecore_wayland/ecore_wl.c

index 05ceb00..c9b3e1f 100644 (file)
@@ -12,6 +12,7 @@
 # include <wayland-client.h>
 # include <wayland-cursor.h>
 # include <xkbcommon/xkbcommon.h>
+# include <subsurface-client-protocol.h>
 
 # ifdef EAPI
 #  undef EAPI
@@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
         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;
index acce728..acc5988 100644 (file)
@@ -397,6 +397,8 @@ _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);
@@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry *registry, unsigned in
         ewd->wl.compositor =
           wl_registry_bind(registry, id, &wl_compositor_interface, 3);
      }
+   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"))