}
/////////////////////////////////////
-/* helper function for checking compositor themes based on user-defined matches */
-static Eina_Bool
-_e_comp_object_shadow_client_match(const E_Client *ec, E_Comp_Match *m)
-{
- if (((m->title) && (!ec->netwm.name)) ||
- ((ec->netwm.name) && (m->title) && (!e_util_glob_match(ec->netwm.name, m->title))))
- return EINA_FALSE;
-#if defined(__cplusplus) || defined(c_plusplus)
- if (((m->clas) && (!ec->icccm.cpp_class)) ||
- ((ec->icccm.cpp_class) && (m->clas) && (!e_util_glob_match(ec->icccm.cpp_class, m->clas))))
- return EINA_FALSE;
-#else
- if (((m->clas) && (!ec->icccm.class)) ||
- ((ec->icccm.class) && (m->clas) && (!e_util_glob_match(ec->icccm.class, m->clas))))
- return EINA_FALSE;
-#endif
-
- if (((m->role) && (!ec->icccm.window_role)) ||
- ((ec->icccm.window_role) && (m->role) && (!e_util_glob_match(ec->icccm.window_role, m->role))))
- return EINA_FALSE;
- if (m->primary_type)
- {
- if (ec->netwm.type)
- {
- if ((int)ec->netwm.type != m->primary_type)
- return EINA_FALSE;
- }
- else if (m->primary_type != E_WINDOW_TYPE_REAL_UNKNOWN)
- return EINA_FALSE;
- }
- if (m->borderless != 0)
- {
- int borderless = 0;
-
- if (e_client_util_borderless(ec))
- borderless = 1;
- if (!(((m->borderless == -1) && (!borderless)) ||
- ((m->borderless == 1) && (borderless))))
- return EINA_FALSE;
- }
- if (m->dialog != 0)
- {
- int dialog = 0;
-
- if (((ec->icccm.transient_for != 0) ||
- (ec->dialog)))
- dialog = 1;
- if (!(((m->dialog == -1) && (!dialog)) ||
- ((m->dialog == 1) && (dialog))))
- return EINA_FALSE;
- }
- if (m->accepts_focus != 0)
- {
- int accepts_focus = 0;
-
- if (ec->icccm.accepts_focus)
- accepts_focus = 1;
- if (!(((m->accepts_focus == -1) && (!accepts_focus)) ||
- ((m->accepts_focus == 1) && (accepts_focus))))
- return EINA_FALSE;
- }
- if (m->vkbd != 0)
- {
- int vkbd = 0;
-
- if (ec->vkbd.vkbd)
- vkbd = 1;
- if (!(((m->vkbd == -1) && (!vkbd)) ||
- ((m->vkbd == 1) && (vkbd))))
- return EINA_FALSE;
- }
- if (m->argb != 0)
- {
- if (!(((m->argb == -1) && (!ec->argb)) ||
- ((m->argb == 1) && (ec->argb))))
- return EINA_FALSE;
- }
- if (m->fullscreen != 0)
- {
- int fullscreen = ec->fullscreen;
-
- if (!(((m->fullscreen == -1) && (!fullscreen)) ||
- ((m->fullscreen == 1) && (fullscreen))))
- return EINA_FALSE;
- }
- if (m->modal != 0)
- {
- if (!(m->modal == -1))
- return EINA_FALSE;
- }
- return EINA_TRUE;
-}
-
/* function for setting up a client's compositor frame theme (cw->shobj) */
static Eina_Bool
_e_comp_object_shadow_setup(E_Comp_Object *cw)
{
- Eina_List *list = NULL, *l;
+ Eina_List *l;
E_Input_Rect_Data *input_rect_data;
E_Input_Rect_Smart_Data *input_rect_sd;
- E_Comp_Match *m;
- Eina_Stringshare *reshadow_group = NULL;
- Eina_Bool skip = EINA_FALSE, pass_event_flag = EINA_FALSE;
- Eina_Stringshare *name, *title;
- E_Comp_Config *conf = e_comp_config_get();
-
- edje_object_file_get(cw->shobj, NULL, &reshadow_group);
- /* match correct client type */
- list = cw->ec->override ? conf->match.overrides : conf->match.borders;
- name = cw->ec->icccm.name;
- title = cw->ec->icccm.title;
- skip = (cw->ec->override ? conf->match.disable_overrides : conf->match.disable_borders) || (title && (!strncmp(title, "noshadow", 8)));
-
- /* skipping here is mostly a hack for systray because I hate it */
- if (!skip)
- {
- EINA_LIST_FOREACH(list, l, m)
- {
- if (((m->name) && (!name)) ||
- ((name) && (m->name) && (!e_util_glob_match(name, m->name))))
- continue;
- if (!_e_comp_object_shadow_client_match(cw->ec, m)) continue;
- }
- }
+ Eina_Bool pass_event_flag = EINA_FALSE;
e_theme_edje_object_set(cw->shobj, NULL, "e/comp/frame/none");