ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland. 86/10786/1
authorRafael Antognolli <rafael.antognolli@intel.com>
Fri, 11 Oct 2013 17:37:31 +0000 (14:37 -0300)
committerRafael Antognolli <rafael.antognolli@intel.com>
Fri, 11 Oct 2013 17:37:31 +0000 (14:37 -0300)
Change-Id: I2e52750b089ce8fe1542434c42b048958afcfdef

src/lib/ecore_wayland/Ecore_Wayland.h
src/lib/ecore_wayland/ecore_wl.c

index d14869b..f47950d 100644 (file)
@@ -92,6 +92,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 04510de..4dd2654 100644 (file)
@@ -30,6 +30,7 @@ void *alloca (size_t);
 
 #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);
@@ -454,6 +455,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);
@@ -549,6 +552,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, 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"))