EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame);
EAPI void ecore_evas_wayland_resize(Ecore_Evas *ee, int location);
/* EAPI void ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source); */
-/* EAPI void ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y); */
-/* EAPI void ecore_evas_wayland_type_set(Ecore_Evas *ee, int type); */
+EAPI void ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
+EAPI void ecore_evas_wayland_type_set(Ecore_Evas *ee, int type);
+EAPI Ecore_Wl_Window *ecore_evas_wayland_window_get(const Ecore_Evas *ee);
/**
* @brief Create a new @c Ecore_Evas canvas bound to the Evas
}
}
+EAPI void
+ecore_evas_wayland_type_set(Ecore_Evas *ee, int type)
+{
+ if (!ee) return;
+ ecore_wl_window_type_set(ee->engine.wl.win, type);
+}
+
+EAPI Ecore_Wl_Window *
+ecore_evas_wayland_window_get(const Ecore_Evas *ee)
+{
+ return ee->engine.wl.win;
+}
+
+EAPI void
+ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y)
+{
+ Ecore_Wl_Window *win;
+
+ win = ecore_evas_wayland_window_get(ee);
+ /* ecore_wl_window_pointer_set(win, ee->engine.wl.buffer, hot_x, hot_y); */
+}
+
#else
EAPI void
ecore_evas_wayland_resize(Ecore_Evas *ee __UNUSED__, int location __UNUSED__)
{
}
+
+EAPI void
+ecore_evas_wayland_type_set(Ecore_Evas *ee __UNUSED__, int type __UNUSED__)
+{
+
+}
+
+EAPI Ecore_Wl_Window *
+ecore_evas_wayland_window_get(const Ecore_Evas *ee __UNUSED__)
+{
+ return NULL;
+}
+
+EAPI void
+ecore_evas_wayland_pointer_set(Ecore_Evas *ee __UNUSED__, int hot_x __UNUSED__, int hot_y __UNUSED__)
+{
+
+}
#endif
# include "config.h"
#endif
-#define LOGFNS 1
+//#define LOGFNS 1
#ifdef LOGFNS
# include <stdio.h>
Ecore_Wl_Window *p = NULL;
Evas_Engine_Info_Wayland_Shm *einfo;
Ecore_Evas *ee;
- int method = 0;
+ int method = 0, count = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
return NULL;
}
- if (!ecore_wl_init(disp_name))
+ count = ecore_wl_init(disp_name);
+ if (!count)
{
ERR("Failed to initialize Ecore_Wayland");
return NULL;
}
+ else if (count >= 1)
+ ecore_wl_sync();
if (!(ee = calloc(1, sizeof(Ecore_Evas))))
{
/* damage buffer */
// wl_buffer_damage(ee->engine.wl.buffer, 0, 0, ee->w, ee->h);
- ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0);
- /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
- /* ecore_wl_flush(); */
-
- ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+ if (ee->engine.wl.win)
+ {
+ ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer,
+ 0, 0);
+ /* ecore_wl_window_damage(ee->engine.wl.win, 0, 0, ee->w, ee->h); */
+ /* ecore_wl_flush(); */
+ ecore_wl_window_update_size(ee->engine.wl.win, ee->w, ee->h);
+ }
if (ee->func.fn_resize) ee->func.fn_resize(ee);
}
}
_ecore_evas_wl_buffer_new(ee, &einfo->info.dest);
+ ecore_wl_flush();
+
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+ if (ee->engine.wl.win)
+ {
+ /* ecore_wl_window_show(ee->engine.wl.win); */
+ ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0);
+ }
+
if (ee->engine.wl.frame)
{
evas_object_show(ee->engine.wl.frame);
evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
}
- ecore_wl_flush();
-
- if (ee->engine.wl.win)
- ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0);
-
ee->visible = 1;
if (ee->func.fn_show) ee->func.fn_show(ee);
}
if (!ee) return;
if ((ee->alpha == alpha)) return;
ee->alpha = alpha;
+ if (ee->engine.wl.win)
+ ecore_wl_window_transparent_set(ee->engine.wl.win, alpha);
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
{
einfo->info.destination_alpha = alpha;
if (!ee) return;
if ((ee->transparent == transparent)) return;
ee->transparent = transparent;
+ if (ee->engine.wl.win)
+ ecore_wl_window_transparent_set(ee->engine.wl.win, transparent);
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
{
einfo->info.destination_alpha = transparent;
if (dest) *dest = ret;
ee->engine.wl.buffer =
- wl_shm_create_buffer(ecore_wl_shm_get(), fd, ee->w, ee->h, stride, format);
+ wl_shm_create_buffer(shm, fd, ee->w, ee->h, stride, format);
close(fd);
}