forked from enlightenment/enlightenment
'clicking-a-window-always-focuses-it' otherwise known as 'always-click-to-focus' is in. doesn't apply instantly, need to restart. i think that's the same with always-click-to-raise, so i'm not trying to do something about it
SVN revision: 16992
This commit is contained in:
parent
80ebddfcd8
commit
e3822ca730
|
@ -4149,7 +4149,8 @@ _e_border_cb_grab_replay(void *data, int type, void *event)
|
|||
if (type != ECORE_X_EVENT_MOUSE_BUTTON_DOWN) return 0;
|
||||
|
||||
ev = event;
|
||||
if ((e_config->pass_click_on) || (e_config->always_click_to_raise))
|
||||
if ((e_config->pass_click_on) || (e_config->always_click_to_raise) ||
|
||||
(e_config->always_click_to_focus))
|
||||
{
|
||||
E_Border *bd;
|
||||
|
||||
|
|
|
@ -290,6 +290,7 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, focus_setting, INT); /**/
|
||||
E_CONFIG_VAL(D, T, pass_click_on, INT); /**/
|
||||
E_CONFIG_VAL(D, T, always_click_to_raise, INT); /**/
|
||||
E_CONFIG_VAL(D, T, always_click_to_focus, INT); /**/
|
||||
E_CONFIG_VAL(D, T, use_auto_raise, INT); /**/
|
||||
E_CONFIG_VAL(D, T, auto_raise_delay, DOUBLE); /**/
|
||||
E_CONFIG_VAL(D, T, use_resist, INT); /**/
|
||||
|
@ -411,6 +412,7 @@ e_config_init(void)
|
|||
e_config->focus_setting = E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED;
|
||||
e_config->pass_click_on = 1;
|
||||
e_config->always_click_to_raise = 0;
|
||||
e_config->always_click_to_focus = 1;
|
||||
e_config->use_auto_raise = 0;
|
||||
e_config->auto_raise_delay = 0.5;
|
||||
e_config->use_resist = 1;
|
||||
|
@ -1364,6 +1366,7 @@ e_config_init(void)
|
|||
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
||||
E_CONFIG_LIMIT(e_config->pass_click_on, 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->use_auto_raise, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->auto_raise_delay, 0.0, 5.0);
|
||||
E_CONFIG_LIMIT(e_config->use_resist, 0, 1);
|
||||
|
|
|
@ -108,6 +108,7 @@ struct _E_Config
|
|||
int focus_setting;
|
||||
int pass_click_on;
|
||||
int always_click_to_raise;
|
||||
int always_click_to_focus;
|
||||
int use_auto_raise;
|
||||
double auto_raise_delay;
|
||||
int use_resist;
|
||||
|
|
|
@ -88,6 +88,11 @@ e_focus_event_mouse_down(E_Border* bd)
|
|||
if (!bd->lock_user_stacking)
|
||||
e_border_raise(bd);
|
||||
}
|
||||
else if (e_config->always_click_to_focus)
|
||||
{
|
||||
if (!bd->lock_focus_out)
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -99,7 +104,8 @@ void
|
|||
e_focus_event_focus_in(E_Border *bd)
|
||||
{
|
||||
if ((e_config->focus_policy == E_FOCUS_CLICK) &&
|
||||
(!e_config->always_click_to_raise))
|
||||
(!e_config->always_click_to_raise) &&
|
||||
(!e_config->always_click_to_focus))
|
||||
{
|
||||
if (!bd->button_grabbed) return;
|
||||
e_bindings_mouse_ungrab(E_BINDING_CONTEXT_BORDER, bd->win);
|
||||
|
@ -117,7 +123,8 @@ void
|
|||
e_focus_event_focus_out(E_Border *bd)
|
||||
{
|
||||
if ((e_config->focus_policy == E_FOCUS_CLICK) &&
|
||||
(!e_config->always_click_to_raise))
|
||||
(!e_config->always_click_to_raise) &&
|
||||
(!e_config->always_click_to_focus))
|
||||
{
|
||||
if (bd->button_grabbed) return;
|
||||
ecore_x_window_button_grab(bd->win, 1,
|
||||
|
@ -140,7 +147,8 @@ void
|
|||
e_focus_setup(E_Border *bd)
|
||||
{
|
||||
if ((e_config->focus_policy == E_FOCUS_CLICK) ||
|
||||
(e_config->always_click_to_raise))
|
||||
(e_config->always_click_to_raise) ||
|
||||
(e_config->always_click_to_focus))
|
||||
{
|
||||
if (bd->button_grabbed) return;
|
||||
ecore_x_window_button_grab(bd->win, 1,
|
||||
|
|
|
@ -2853,6 +2853,46 @@ break;
|
|||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-always-click-to-focus-set", 1, "Set the always click to focus policy, 1 for enabled 0 for disabled", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_INT(atoi(params[0]), HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
START_INT(policy, HDL);
|
||||
e_config->always_click_to_focus = policy;
|
||||
E_CONFIG_LIMIT(e_config->always_click_to_focus, 0, 1);
|
||||
SAVE;
|
||||
END_INT;
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_GET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-always-click-to-focus-get", 0, "Get the always click to focus policy, 1 for enabled 0 for disabled", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
SEND_INT(e_config->always_click_to_focus, E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_GET_REPLY, HDL);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_GET_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
START_INT(policy, HDL);
|
||||
printf("REPLY: POLICY=%d\n", policy);
|
||||
END_INT;
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_USE_AUTO_RAISE_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
|
|
|
@ -283,3 +283,7 @@
|
|||
#define E_IPC_OP_RESIZE_INFO_VISIBLE_SET 276
|
||||
#define E_IPC_OP_RESIZE_INFO_VISIBLE_GET 277
|
||||
#define E_IPC_OP_RESIZE_INFO_VISIBLE_GET_REPLY 278
|
||||
|
||||
#define E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_SET 279
|
||||
#define E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_GET 280
|
||||
#define E_IPC_OP_ALWAYS_CLICK_TO_FOCUS_GET_REPLY 281
|
||||
|
|
Loading…
Reference in New Issue