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_IGNORE,
|
||||||
E_ACTIVEHINT_POLICY_ANIMATE,
|
E_ACTIVEHINT_POLICY_ANIMATE,
|
||||||
E_ACTIVEHINT_POLICY_ACTIVATE
|
E_ACTIVEHINT_POLICY_ACTIVATE,
|
||||||
|
E_ACTIVEHINT_POLICY_ACTIVATE_EXCLUDE,
|
||||||
|
E_ACTIVEHINT_POLICY_LAST,
|
||||||
} E_Urgency_Policy;
|
} E_Urgency_Policy;
|
||||||
|
|
||||||
typedef enum _E_Focus_Setting
|
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;
|
break;
|
||||||
}
|
}
|
||||||
if ((!starting) && (!ec->focused))
|
if ((!starting) && (!ec->focused))
|
||||||
e_client_activate(ec, EINA_TRUE);
|
{
|
||||||
|
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
|
else
|
||||||
evas_object_raise(ec->frame);
|
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_policy, 0, 2);
|
||||||
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
||||||
E_CONFIG_LIMIT(e_config->pass_click_on, 0, 1);
|
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_raise, 0, 1);
|
||||||
E_CONFIG_LIMIT(e_config->always_click_to_focus, 0, 1);
|
E_CONFIG_LIMIT(e_config->always_click_to_focus, 0, 1);
|
||||||
E_CONFIG_LIMIT(e_config->use_auto_raise, 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);
|
e_widget_framelist_object_append(of, ob);
|
||||||
ob = e_widget_radio_add(evas, _("Activate on hint"), E_ACTIVEHINT_POLICY_ACTIVATE, rg);
|
ob = e_widget_radio_add(evas, _("Activate on hint"), E_ACTIVEHINT_POLICY_ACTIVATE, rg);
|
||||||
e_widget_framelist_object_append(of, ob);
|
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,
|
e_widget_toolbook_page_append(otb, NULL, _("Hints"), of,
|
||||||
1, 0, 1, 0, 0.5, 0.0);
|
1, 0, 1, 0, 0.5, 0.0);
|
||||||
/* Pointer */
|
/* Pointer */
|
||||||
|
|
Loading…
Reference in New Issue