static void _e_desk_show_begin(E_Desk *desk, int dx, int dy);
static void _e_desk_hide_begin(E_Desk *desk, int dx, int dy);
static void _e_desk_event_desk_window_profile_change_free(void *data, void *ev);
+static void _e_desk_event_desk_geometry_change_free(void *data, void *ev);
static Eina_Bool _e_desk_cb_zone_move_resize(void *data, int type EINA_UNUSED, void *event);
static void _e_desk_smart_init(E_Desk *desk);
E_API int E_EVENT_DESK_DESKSHOW = 0;
E_API int E_EVENT_DESK_NAME_CHANGE = 0;
E_API int E_EVENT_DESK_WINDOW_PROFILE_CHANGE = 0;
+E_API int E_EVENT_DESK_GEOMETRY_CHANGE = 0;
EINTERN int
e_desk_init(void)
E_EVENT_DESK_DESKSHOW = ecore_event_type_new();
E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new();
E_EVENT_DESK_WINDOW_PROFILE_CHANGE = ecore_event_type_new();
+ E_EVENT_DESK_GEOMETRY_CHANGE = ecore_event_type_new();
return 1;
}
E_Maximize max;
Eina_List *l = NULL, *ll = NULL;
Evas_Object *m;
+ E_Event_Desk_Geometry_Change *ev = NULL;
int cx, cy, dx, dy;
// apply geometry on smart obj
evas_object_geometry_set(desk->smart_obj, x, y, w, h);
+
+ ev = E_NEW(E_Event_Desk_Geometry_Change, 1);
+ if (ev)
+ {
+ ev->desk = desk;
+ ev->x = x;
+ ev->y = y;
+ ev->w = w;
+ ev->h = h;
+ e_object_ref(E_OBJECT(desk));
+ ecore_event_add(E_EVENT_DESK_GEOMETRY_CHANGE, ev,
+ _e_desk_event_desk_geometry_change_free, NULL);
+ }
+
e_comp_render_queue();
}
E_FREE(ev);
}
+static void
+_e_desk_event_desk_geometry_change_free(void *data EINA_UNUSED, void *event)
+{
+ E_Event_Desk_Geometry_Change *ev = event;
+ e_object_unref(E_OBJECT(ev->desk));
+ E_FREE(ev);
+}
+
static Eina_Bool
_e_desk_cb_zone_move_resize(void *data, int type EINA_UNUSED, void *event)
{
typedef struct _E_Event_Desk_After_Show E_Event_Desk_After_Show;
typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
typedef struct _E_Event_Desk_Window_Profile_Change E_Event_Desk_Window_Profile_Change;
+typedef struct _E_Event_Desk_Geometry_Change E_Event_Desk_Geometry_Change;
typedef void (*E_Desk_Flip_Cb)(void *data, E_Desk *desk, int dx, int dy, Eina_Bool show);
E_Desk *desk;
};
+struct _E_Event_Desk_Geometry_Change
+{
+ E_Desk *desk;
+ int x, y, w, h;
+};
+
EINTERN int e_desk_init(void);
EINTERN int e_desk_shutdown(void);
E_API E_Desk *e_desk_new(E_Zone *zone, int x, int y);
extern E_API int E_EVENT_DESK_DESKSHOW;
extern E_API int E_EVENT_DESK_NAME_CHANGE;
extern E_API int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
+extern E_API int E_EVENT_DESK_GEOMETRY_CHANGE;
#endif
#endif