Eina_Bool pending_resize_set;
int pending_resize_w, pending_resize_h;
} render_update_lock;
-
- struct
- {
- Eina_Bool set;
- int user_r;
- int user_g;
- int user_b;
- int user_a;
- } transparent;
} E_Comp_Object;
typedef struct _E_Input_Rect_Data
evas_object_focus_set(obj, focus);
}
-static void
-_e_comp_intercept_color_set(void *data, Evas_Object *obj, int r, int g, int b, int a)
-{
- E_Comp_Object *cw = data;
-
- if (cw->transparent.set)
- {
- cw->transparent.user_r = r;
- cw->transparent.user_g = g;
- cw->transparent.user_b = b;
- cw->transparent.user_a = a;
- }
- else
- {
- evas_object_color_set(obj, r, g, b, a);
- }
-}
////////////////////////////////////////////////////
static void
evas_object_intercept_show_callback_add(obj, _e_comp_intercept_show, cw);
evas_object_intercept_hide_callback_add(obj, _e_comp_intercept_hide, cw);
evas_object_intercept_focus_set_callback_add(obj, _e_comp_intercept_focus, cw);
- evas_object_intercept_color_set_callback_add(obj, _e_comp_intercept_color_set, cw);
evas_object_smart_callback_add(obj, "shading", _e_comp_smart_cb_shading, cw);
evas_object_smart_callback_add(obj, "shaded", _e_comp_smart_cb_shaded, cw);
e_comp_object_render_update_del(cw->smart_obj);
}
-static Eina_Bool
-_e_comp_object_transparent_set(Evas_Object *obj, Eina_Bool set)
-{
- int r, g, b, a;
-
- API_ENTRY EINA_FALSE;
-
- if (cw->transparent.set == set)
- return EINA_TRUE;
-
- if (set)
- {
- evas_object_color_get(obj, &r, &g, &b, &a);
- evas_object_color_set(obj, 0, 0, 0, 0);
-
- cw->transparent.user_r = r;
- cw->transparent.user_g = g;
- cw->transparent.user_b = b;
- cw->transparent.user_a = a;
-
- ELOGF("COMP", "Transparent enabled user_color(%d,%d,%d,%d)",
- cw->ec,
- cw->transparent.user_r,
- cw->transparent.user_g,
- cw->transparent.user_b,
- cw->transparent.user_a);
-
- cw->transparent.set = EINA_TRUE;
- }
- else
- {
- cw->transparent.set = EINA_FALSE;
-
- evas_object_color_set(obj,
- cw->transparent.user_r,
- cw->transparent.user_g,
- cw->transparent.user_b,
- cw->transparent.user_a);
-
- ELOGF("COMP", "Transparent disabled user_color(%d,%d,%d,%d)",
- cw->ec,
- cw->transparent.user_r,
- cw->transparent.user_g,
- cw->transparent.user_b,
- cw->transparent.user_a);
- }
-
- return EINA_TRUE;
-}
-
/* helper function to simplify toggling of redirection for display servers which support it */
E_API void
e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set)
e_comp_object_render_update_add(obj);
else
e_comp_object_damage(obj, 0, 0, cw->w, cw->h);
-
- _e_comp_object_transparent_set(obj, EINA_FALSE);
evas_object_smart_callback_call(obj, "redirected", NULL);
}
else
{
_e_comp_object_clear(cw);
- _e_comp_object_transparent_set(obj, EINA_TRUE);
evas_object_smart_callback_call(obj, "unredirected", NULL);
}
}