forked from enlightenment/enlightenment
feature: ACTIVATE_EXCLUDE window active hint policy
this option causes window activation requests to only activate a window if it is on a currently visible virtual desktop, otherwise it will be set as urgent. I recall that things may have worked this way long ago...
This commit is contained in:
parent
3125c3a674
commit
d3468dd920
|
@ -73,7 +73,9 @@ typedef enum _E_Urgency_Policy
|
|||
{
|
||||
E_ACTIVEHINT_POLICY_IGNORE,
|
||||
E_ACTIVEHINT_POLICY_ANIMATE,
|
||||
E_ACTIVEHINT_POLICY_ACTIVATE
|
||||
E_ACTIVEHINT_POLICY_ACTIVATE,
|
||||
E_ACTIVEHINT_POLICY_ACTIVATE_EXCLUDE,
|
||||
E_ACTIVEHINT_POLICY_LAST,
|
||||
} E_Urgency_Policy;
|
||||
|
||||
typedef enum _E_Focus_Setting
|
||||
|
|
|
@ -1898,7 +1898,13 @@ _e_comp_x_message(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Cl
|
|||
break;
|
||||
}
|
||||
if ((!starting) && (!ec->focused))
|
||||
{
|
||||
if ((e_config->window_activehint_policy == E_ACTIVEHINT_POLICY_ACTIVATE_EXCLUDE) &&
|
||||
(!ec->desk->visible))
|
||||
e_client_urgent_set(ec, 1);
|
||||
else
|
||||
e_client_activate(ec, EINA_TRUE);
|
||||
}
|
||||
else
|
||||
evas_object_raise(ec->frame);
|
||||
}
|
||||
|
|
|
@ -1334,7 +1334,7 @@ e_config_load(void)
|
|||
E_CONFIG_LIMIT(e_config->focus_policy, 0, 2);
|
||||
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
||||
E_CONFIG_LIMIT(e_config->pass_click_on, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->window_activehint_policy, 0, 2);
|
||||
E_CONFIG_LIMIT(e_config->window_activehint_policy, E_ACTIVEHINT_POLICY_IGNORE, E_ACTIVEHINT_POLICY_LAST - 1);
|
||||
E_CONFIG_LIMIT(e_config->always_click_to_raise, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->always_click_to_focus, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->use_auto_raise, 0, 1);
|
||||
|
|
|
@ -311,6 +311,8 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da
|
|||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_radio_add(evas, _("Activate on hint"), E_ACTIVEHINT_POLICY_ACTIVATE, rg);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_radio_add(evas, _("Activate if on visible desk"), E_ACTIVEHINT_POLICY_ACTIVATE_EXCLUDE, rg);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
e_widget_toolbook_page_append(otb, NULL, _("Hints"), of,
|
||||
1, 0, 1, 0, 0.5, 0.0);
|
||||
/* Pointer */
|
||||
|
|
Loading…
Reference in New Issue