return cw->redirected;
}
+
+EINTERN Eina_Bool
+e_comp_object_color_visible_get(Evas_Object *obj)
+{
+ API_ENTRY EINA_FALSE;
+ int r, g, b, a;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(cw->ec, EINA_FALSE);
+
+ evas_object_color_get(obj, &r, &g, &b, &a);
+ if ((a == 0) || ((r == 0) && (g == 0) && (b == 0)))
+ return EINA_FALSE;
+
+ evas_object_color_get(cw->effect_obj, &r, &g, &b, &a);
+ if ((a == 0) || ((r == 0) && (g == 0) && (b == 0)))
+ return EINA_FALSE;
+
+ evas_object_color_get(cw->shobj, &r, &g, &b, &a);
+ if ((a == 0) || ((r == 0) && (g == 0) && (b == 0)))
+ return EINA_FALSE;
+
+ evas_object_color_get(cw->obj, &r, &g, &b, &a);
+ if ((a == 0) || ((r == 0) && (g == 0) && (b == 0)))
+ return EINA_FALSE;
+
+ return EINA_TRUE;
+}
}
static E_Client *
-_e_hwc_windows_client_get_from_object(Evas_Object *o)
+_e_hwc_windows_client_get_from_object(Evas_Object *o, Eina_Bool *effect_client)
{
E_Client *ec = NULL;
Evas_Object *ob = NULL, *cob = NULL;
if (!o) return NULL;
+ if (effect_client)
+ *effect_client = EINA_FALSE;
+
stack = eina_list_append(stack, o);
while (1)
eina_list_free(stack);
if (!(ec) && (evas_object_visible_get(o)))
- ec = evas_object_data_get(o, "effect_client");
+ {
+ ec = evas_object_data_get(o, "effect_client");
+ if (effect_client)
+ *effect_client = EINA_TRUE;
+ }
return ec;
}
int ui_skip = EINA_FALSE;
int obscured_by_target = EINA_FALSE;
const char *type = NULL;
+ Eina_Bool effect_client;
ecore_evas_geometry_get(e_comp->ee, NULL, NULL, &ee_w, &ee_h);
for (o = evas_object_top_get(e_comp->evas); o; o = evas_object_below_get(o))
{
- ec = _e_hwc_windows_client_get_from_object(o);
+ ec = _e_hwc_windows_client_get_from_object(o, &effect_client);
if (!ec)
{
if (obscured_by_target) continue;
continue;
}
+ if ((!effect_client) && (!e_comp_object_color_visible_get(ec->frame)))
+ {
+ e_hwc_window_state_set(hwc_window, E_HWC_WINDOW_STATE_NONE, EINA_TRUE);
+ continue;
+ }
+
// check geometry if located out of screen such as quick panel
e_client_geometry_get(ec, &x, &y, &w, &h);
if (!E_INTERSECTS(0, 0, ee_w, ee_h, x, y, w, h))