e_client_size_set(cw->ec, w, h);
cw->ec->client.w = w - cw->client_inset.l - cw->client_inset.r;
cw->ec->client.h = h - cw->client_inset.t - cw->client_inset.b;
- evas_object_smart_callback_call(obj, "client_resize", NULL);
+ wl_signal_emit(&cw->events.resize, NULL);
}
return;
}
(((w - fw != pw) || (h - fh != ph))))
{
//INF("CALLBACK: REQ(%dx%d) != CUR(%dx%d)", w - fw, h - fh, pw, ph);
- evas_object_smart_callback_call(obj, "client_resize", NULL);
+ wl_signal_emit(&cw->events.resize, NULL);
/* flip for CSD */
if (cw->frame_object || cw->ec->input_only)
e_comp_object_frame_wh_adjust(obj, pw, ph, &w, &h);
}
else
{
- evas_object_smart_callback_call(obj, "client_resize", NULL);
-
/* flip for CSD */
if ((!cw->frame_object) && (!cw->ec->input_only))
w = pw, h = ph;
+
+ wl_signal_emit(&cw->events.resize, NULL);
/* "just do it" for overrides */
evas_object_resize(obj, w, h);
}
_e_comp_object_animating_begin(cw);
if (!_e_comp_object_effect_visibility_start(cw, 0)) return;
}
- evas_object_smart_callback_call(obj, "hiding", cw->ec);
+
+ wl_signal_emit(&cw->events.hiding, NULL);
+
cw->defer_hide = !!cw->animating;
if (!cw->animating)
e_comp_object_effect_set(obj, NULL);
}
static void
-_e_comp_smart_cb_unsticky(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
-{
- e_comp_object_signal_emit(obj, "e,state,unsticky", "e");
-}
-
-static void
_e_comp_smart_focus_in(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{
e_comp_object_signal_emit(obj, "e,state,focused", "e");
#endif
wl_signal_init(&cw->events.show);
wl_signal_init(&cw->events.hide);
+ wl_signal_init(&cw->events.hiding);
#ifdef REFACTOR_DESK_AREA
wl_signal_init(&cw->events.set_layer);
wl_signal_init(&cw->events.stack_above);
wl_signal_init(&cw->events.content_type_set);
wl_signal_init(&cw->events.color_set);
wl_signal_init(&cw->events.color_visible_set);
+ wl_signal_init(&cw->events.resize);
cw->smart_obj = obj;
cw->x = cw->y = cw->w = cw->h = -1;
evas_object_smart_callback_add(obj, "unmaximize", _e_comp_smart_cb_unmaximize, cw);
evas_object_smart_callback_add(obj, "unfullscreen", _e_comp_smart_cb_unfullscreen, cw);
- evas_object_smart_callback_add(obj, "unstick", _e_comp_smart_cb_unsticky, cw);
-
evas_object_smart_callback_add(obj, "frame_recalc", _e_comp_smart_cb_frame_recalc, cw);
evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_IN, _e_comp_smart_focus_in, cw);
{
INTERNAL_ENTRY;
evas_object_color_set(cw->clip, r, g, b, a);
- evas_object_smart_callback_call(obj, "color_set", NULL);
}
wl_signal_add(&cw->events.hide, listener);
}
+EINTERN void
+e_comp_object_hiding_listener_add(Evas_Object *obj, struct wl_listener *listener)
+{
+ API_ENTRY;
+ wl_signal_add(&cw->events.hiding, listener);
+}
+
#ifdef REFACTOR_DESK_AREA
EINTERN void
e_comp_object_set_layer_listener_add(Evas_Object *obj, struct wl_listener *listener)
API_ENTRY;
wl_signal_add(&cw->events.color_visible_set, listener);
}
+
+EINTERN void
+e_comp_object_resize_listener_add(Evas_Object *obj, struct wl_listener *listener)
+{
+ API_ENTRY;
+ wl_signal_add(&cw->events.resize, listener);
+}