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];
Eina_List *list = NULL, *l;
Match *m;
Eina_Bool focus = EINA_FALSE, urgent = EINA_FALSE;
const char *title = NULL, *name = NULL, *clas = NULL, *role = NULL;
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;
}
}
focus = m->focus;
urgent = m->urgent;
if (m->shadow_style)
{
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");
}
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");
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");
}
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, fullscreen, 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);
*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->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);
cfg->match.popups = eina_list_append(cfg->match.popups, mat);
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 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 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);