summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-06-20 14:08:40 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-07-15 09:59:54 -0400
commit4b2659aabe40ba33dcdd57612b99710124e39131 (patch)
tree3b0776150bcf060d00e8076c5b74996771241fb7
parent24af4b74299409319c858303306ec00caef892ec (diff)
downloadenlightenment-4b2659aabe40ba33dcdd57612b99710124e39131.tar.gz
match deskmirror client opacity with original object
fix T3911
-rw-r--r--src/bin/e_deskmirror.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c
index b9017fbaef..eed70bf1fc 100644
--- a/src/bin/e_deskmirror.c
+++ b/src/bin/e_deskmirror.c
@@ -313,6 +313,17 @@ _e_deskmirror_mirror_frame_recalc_cb(void *data, Evas_Object *obj EINA_UNUSED, v
}
static void
+_e_deskmirror_mirror_color_set_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ Mirror *m = data;
+ int r, g, b, a;
+
+ if (!m->mirror) return;
+ evas_object_color_get(obj, &r, &g, &b, &a);
+ evas_object_color_set(m->mirror, r, g, b, a);
+}
+
+static void
_mirror_client_smart_add(Evas_Object *obj)
{
Mirror_Border *mb;
@@ -490,6 +501,7 @@ _e_deskmirror_mirror_del_hash(Mirror *m)
m->sd->mirrors = eina_inlist_remove(m->sd->mirrors, EINA_INLIST_GET(m));
evas_object_smart_callback_del_full(m->comp_object, "dirty", _comp_object_dirty, m);
evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
+ evas_object_smart_callback_del_full(m->comp_object, "color_set", _e_deskmirror_mirror_color_set_cb, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
evas_object_del(m->mirror);
m->mirror = NULL;
@@ -687,6 +699,7 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj)
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_smart_callback_add(obj, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
+ evas_object_smart_callback_add(obj, "color_set", _e_deskmirror_mirror_color_set_cb, m);
if (ec && (!ec->redirected) && (!ec->new_client) && e_pixmap_usable_get(ec->pixmap))
evas_object_smart_callback_add(obj, "dirty", _comp_object_dirty, m);
sd->mirrors = eina_inlist_append(sd->mirrors, EINA_INLIST_GET(m));