From 12bcf7eceae9a13ee535293ec13888c693f5bb7f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 20 Jun 2016 14:08:40 -0400 Subject: [PATCH] match deskmirror client opacity with original object fix T3911 --- src/bin/e_deskmirror.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c index b9017fbae..eed70bf1f 100644 --- a/src/bin/e_deskmirror.c +++ b/src/bin/e_deskmirror.c @@ -312,6 +312,17 @@ _e_deskmirror_mirror_frame_recalc_cb(void *data, Evas_Object *obj EINA_UNUSED, v mb->m->comp_object = NULL; } +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) { @@ -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));