static void _ecore_wl_window_cb_popup_done(void *data, struct wl_shell_surface *shell_surface EINA_UNUSED);
static void _ecore_wl_window_cb_surface_enter(void *data, struct wl_surface *surface, struct wl_output *output EINA_UNUSED);
static void _ecore_wl_window_cb_surface_leave(void *data, struct wl_surface *surface, struct wl_output *output EINA_UNUSED);
-static void _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h);
+static void _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h, int edges);
static char *_ecore_wl_window_id_str_get(unsigned int win_id);
/* local variables */
case ECORE_WL_WINDOW_BUFFER_TYPE_SHM:
if (win->surface)
{
- if (win->edges & 4) // resizing from the left
- x = win->server.w - win->allocation.w;
- else
- x = 0;
-
- if (win->edges & 1) // resizing from the top
- y = win->server.h - win->allocation.h;
- else
- y = 0;
-
- win->edges = 0;
win->has_buffer = (buffer != NULL);
/* if (buffer) */
if (win->shell_surface)
wl_shell_surface_set_toplevel(win->shell_surface);
win->type = ECORE_WL_WINDOW_TYPE_TOPLEVEL;
- _ecore_wl_window_configure_send(win, win->saved.w, win->saved.h);
+ _ecore_wl_window_configure_send(win, win->saved.w, win->saved.h, 0);
}
- win->edges = 0;
}
EAPI Eina_Bool
if (win->shell_surface)
wl_shell_surface_set_toplevel(win->shell_surface);
win->type = ECORE_WL_WINDOW_TYPE_TOPLEVEL;
- _ecore_wl_window_configure_send(win, win->saved.w, win->saved.h);
+ _ecore_wl_window_configure_send(win, win->saved.w, win->saved.h, 0);
}
- win->edges = 0;
}
EAPI Eina_Bool
if ((win->allocation.w != w) || (win->allocation.h != h))
{
- if (win->type == ECORE_WL_WINDOW_TYPE_TOPLEVEL)
- win->edges = edges;
-
- _ecore_wl_window_configure_send(win, w, h);
+ _ecore_wl_window_configure_send(win, w, h, edges);
}
}
}
static void
-_ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h)
+_ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h, int edges)
{
Ecore_Wl_Event_Window_Configure *ev;
ev->y = win->allocation.y;
ev->w = w;
ev->h = h;
+ ev->edges = edges;
ecore_event_add(ECORE_WL_EVENT_WINDOW_CONFIGURE, ev, NULL, NULL);
}