devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bb0f3ab62a3f8cda4405ab53eff8a37e8038db8e

commit bb0f3ab62a3f8cda4405ab53eff8a37e8038db8e
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Wed Sep 30 12:03:50 2015 -0400

    ecore-wl2: Create new event type for window configure
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/lib/ecore_wl2/ecore_wl2.c        |  2 ++
 src/lib/ecore_wl2/ecore_wl2_window.c | 31 +++++++++++++++++++++++--------
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2.c b/src/lib/ecore_wl2/ecore_wl2.c
index 81ea677..8be64de 100644
--- a/src/lib/ecore_wl2/ecore_wl2.c
+++ b/src/lib/ecore_wl2/ecore_wl2.c
@@ -24,6 +24,7 @@ EAPI int ECORE_WL2_EVENT_DATA_SOURCE_CANCELLED = 0;
 EAPI int ECORE_WL2_EVENT_DATA_SOURCE_TARGET = 0;
 EAPI int ECORE_WL2_EVENT_DATA_SOURCE_SEND = 0;
 EAPI int ECORE_WL2_EVENT_SELECTION_DATA_READY = 0;
+EAPI int ECORE_WL2_EVENT_WINDOW_CONFIGURE = 0;
 
 static void
 _cb_wl_log_print(const char *format, va_list args)
@@ -79,6 +80,7 @@ ecore_wl2_init(void)
         ECORE_WL2_EVENT_DATA_SOURCE_TARGET = ecore_event_type_new();
         ECORE_WL2_EVENT_DATA_SOURCE_SEND = ecore_event_type_new();
         ECORE_WL2_EVENT_SELECTION_DATA_READY = ecore_event_type_new();
+        ECORE_WL2_EVENT_WINDOW_CONFIGURE = ecore_event_type_new();
      }
 
    wl_log_set_handler_server(_cb_wl_log_print);
diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index 3495fd6..17a5621 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -9,6 +9,25 @@ static void _anim_cb_animate(void *data, struct wl_callback 
*callback, uint32_t
 static Eina_Bool _animator_busy = EINA_FALSE;
 
 static void
+_ecore_wl2_window_configure_send(Ecore_Wl2_Window *window, int w, int h, 
unsigned int edges)
+{
+   Ecore_Wl2_Event_Window_Configure *ev;
+
+   ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure));
+   if (!ev) return;
+
+   ev->win = window->id;
+   ev->event_win = window->id;
+   ev->x = window->geometry.x;
+   ev->y = window->geometry.y;
+   ev->w = w;
+   ev->h = h;
+   ev->edges = edges;
+
+   ecore_event_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE, ev, NULL, NULL);
+}
+
+static void
 _wl_shell_surface_cb_ping(void *data EINA_UNUSED, struct wl_shell_surface 
*shell_surface, unsigned int serial)
 {
    wl_shell_surface_pong(shell_surface, serial);
@@ -24,9 +43,7 @@ _wl_shell_surface_cb_configure(void *data, struct 
wl_shell_surface *shell_surfac
 
    if ((w <= 0) || (h <= 0)) return;
    if ((win->geometry.w != w) || (win->geometry.h != h))
-     {
-        /* TODO: send configure */
-     }
+     _ecore_wl2_window_configure_send(win, w, h, edges);
 }
 
 static void
@@ -100,9 +117,7 @@ _xdg_surface_cb_configure(void *data, struct xdg_surface 
*xdg_surface EINA_UNUSE
      }
 
    if ((w > 0) && (h > 0))
-     {
-        /* TODO: send configure ?? */
-     }
+     _ecore_wl2_window_configure_send(win, w, h, 0);
 
    xdg_surface_ack_configure(win->xdg_surface, serial);
 }
@@ -481,10 +496,10 @@ ecore_wl2_window_resize(Ecore_Wl2_Window *window, int w, 
int h, int location)
 
    if (window->xdg_surface)
      xdg_surface_resize(window->xdg_surface, input->wl.seat,
-                        window->display->serial, location);
+                        input->display->serial, location);
    else if (window->wl_shell_surface)
      wl_shell_surface_resize(window->wl_shell_surface, input->wl.seat,
-                             window->display->serial, location);
+                             input->display->serial, location);
 }
 
 EAPI void

-- 


Reply via email to