in pursuit of ticket #2017, notifications now show up with the focus effect to make them slightly more attention-getting; still no change in opacity

SVN revision: 81220
This commit is contained in:
Mike Blumenkrantz 2012-12-18 08:33:04 +00:00
parent 38987b7872
commit 538fe07543
3 changed files with 16 additions and 3 deletions

View File

@ -1618,6 +1618,7 @@ _e_mod_comp_win_shadow_setup(E_Comp_Win *cw)
char buf[4096]; char buf[4096];
Eina_List *list = NULL, *l; Eina_List *list = NULL, *l;
Match *m; Match *m;
Eina_Bool focus = EINA_FALSE, urgent = EINA_FALSE;
const char *title = NULL, *name = NULL, *clas = NULL, *role = NULL; const char *title = NULL, *name = NULL, *clas = NULL, *role = NULL;
Ecore_X_Window_Type primary_type = ECORE_X_WINDOW_TYPE_UNKNOWN; Ecore_X_Window_Type primary_type = ECORE_X_WINDOW_TYPE_UNKNOWN;
@ -1757,6 +1758,8 @@ _e_mod_comp_win_shadow_setup(E_Comp_Win *cw)
continue; continue;
} }
} }
focus = m->focus;
urgent = m->urgent;
if (m->shadow_style) if (m->shadow_style)
{ {
snprintf(buf, sizeof(buf), "e/comp/%s", snprintf(buf, sizeof(buf), "e/comp/%s",
@ -1797,11 +1800,11 @@ _e_mod_comp_win_shadow_setup(E_Comp_Win *cw)
edje_object_signal_emit(cw->shobj, "e,state,shadow,off", "e"); edje_object_signal_emit(cw->shobj, "e,state,shadow,off", "e");
} }
if (cw->bd) if (cw->bd || focus || urgent)
{ {
if (cw->bd->focused) if (focus || (cw->bd && cw->bd->focused))
edje_object_signal_emit(cw->shobj, "e,state,focus,on", "e"); edje_object_signal_emit(cw->shobj, "e,state,focus,on", "e");
if (cw->bd->client.icccm.urgent) if (urgent || (cw->bd && cw->bd->client.icccm.urgent))
edje_object_signal_emit(cw->shobj, "e,state,urgent,on", "e"); edje_object_signal_emit(cw->shobj, "e,state,urgent,on", "e");
} }
if (cw->visible) if (cw->visible)

View File

@ -23,6 +23,8 @@ e_mod_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd)
E_CONFIG_VAL(D, T, argb, CHAR); E_CONFIG_VAL(D, T, argb, CHAR);
E_CONFIG_VAL(D, T, fullscreen, CHAR); E_CONFIG_VAL(D, T, fullscreen, CHAR);
E_CONFIG_VAL(D, T, modal, CHAR); E_CONFIG_VAL(D, T, modal, CHAR);
E_CONFIG_VAL(D, T, focus, CHAR);
E_CONFIG_VAL(D, T, urgent, CHAR);
E_CONFIG_VAL(D, T, shadow_style, STR); E_CONFIG_VAL(D, T, shadow_style, STR);
*conf_edd = E_CONFIG_DD_NEW("Comp_Config", Config); *conf_edd = E_CONFIG_DD_NEW("Comp_Config", Config);
@ -104,6 +106,12 @@ e_mod_comp_cfdata_config_new(void)
mat->name = eina_stringshare_add("_e_popup_desklock"); mat->name = eina_stringshare_add("_e_popup_desklock");
mat->shadow_style = eina_stringshare_add("still"); mat->shadow_style = eina_stringshare_add("still");
mat = E_NEW(Match, 1);
cfg->match.popups = eina_list_append(cfg->match.popups, mat);
mat->name = eina_stringshare_add("_e_popup_notification");
mat->shadow_style = eina_stringshare_add("still");
mat->focus = 1;
mat = E_NEW(Match, 1); mat = E_NEW(Match, 1);
cfg->match.popups = eina_list_append(cfg->match.popups, mat); cfg->match.popups = eina_list_append(cfg->match.popups, mat);
mat->shadow_style = eina_stringshare_add("popup"); mat->shadow_style = eina_stringshare_add("popup");

View File

@ -56,6 +56,8 @@ struct _Match
char argb; // used for borders, overrides, popups, menus, 0 == don't use, 1 == is argb, -1 == not argb char argb; // used for borders, overrides, popups, menus, 0 == don't use, 1 == is argb, -1 == not argb
char fullscreen; // used for borders, 0 == don't use, 1 == is fullscreen, -1 == not fullscreen char fullscreen; // used for borders, 0 == don't use, 1 == is fullscreen, -1 == not fullscreen
char modal; // used for borders, 0 == don't use, 1 == is modal, -1 == not modal char modal; // used for borders, 0 == don't use, 1 == is modal, -1 == not modal
char focus; // used for setting focus state (on popups): 1 is focused, unset is use regular logic
char urgent; // used for setting urgent state (on popups): 1 is urgent, unset is use regular logic
}; };
EAPI void e_mod_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd); EAPI void e_mod_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd);