forked from enlightenment/enlightenment
Allow to disable mouse slide on newly focused windows. This is consistent with sloppy and mouse
focus but some users don't like it much, so here is the option... Remember: It breaks the focus logic when you for example have sloppy focus mode, pointer over a window but focus on another window! SVN revision: 33202
This commit is contained in:
parent
ee70beaa35
commit
7bb7bb21dd
|
@ -1355,11 +1355,7 @@ e_border_focus_set_with_pointer(E_Border *bd)
|
|||
{
|
||||
if (e_config->focus_policy == E_FOCUS_SLOPPY)
|
||||
{
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
}
|
||||
else if (e_config->focus_policy == E_FOCUS_MOUSE)
|
||||
{
|
||||
if (e_border_under_pointer_get(NULL, bd))
|
||||
if (e_border_under_pointer_get(bd->desk, bd))
|
||||
{
|
||||
if (!e_border_pointer_warp_to_center(bd))
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
|
@ -7752,6 +7748,9 @@ e_border_pointer_warp_to_center(E_Border *bd)
|
|||
{
|
||||
int x, y;
|
||||
|
||||
/* Do not slide pointer when disabled (probably breaks focus
|
||||
* on sloppy/mouse focus but requested by users). */
|
||||
if (!e_config->pointer_slide) return 0;
|
||||
/* Only warp the pointer if it is not already in the area of
|
||||
* the given border */
|
||||
ecore_x_pointer_xy_get(bd->zone->container->win, &x, &y);
|
||||
|
|
|
@ -461,6 +461,7 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, resize_info_visible, INT); /**/
|
||||
E_CONFIG_VAL(D, T, focus_last_focused_per_desktop, INT); /**/
|
||||
E_CONFIG_VAL(D, T, focus_revert_on_hide_or_close, INT); /**/
|
||||
E_CONFIG_VAL(D, T, pointer_slide, INT); /**/
|
||||
E_CONFIG_VAL(D, T, use_e_cursor, INT); /**/
|
||||
E_CONFIG_VAL(D, T, cursor_size, INT); /**/
|
||||
E_CONFIG_VAL(D, T, menu_autoscroll_margin, INT); /**/
|
||||
|
@ -698,6 +699,7 @@ e_config_init(void)
|
|||
e_config->resize_info_visible = 1;
|
||||
e_config->focus_last_focused_per_desktop = 1;
|
||||
e_config->focus_revert_on_hide_or_close = 1;
|
||||
e_config->pointer_slide = 1;
|
||||
e_config->use_e_cursor = 1;
|
||||
e_config->cursor_size = 32;
|
||||
e_config->menu_autoscroll_margin = 0;
|
||||
|
@ -1550,6 +1552,7 @@ e_config_init(void)
|
|||
E_CONFIG_LIMIT(e_config->resize_info_visible, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->focus_last_focused_per_desktop, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->focus_revert_on_hide_or_close, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->pointer_slide, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->use_e_cursor, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->cursor_size, 0, 1024);
|
||||
E_CONFIG_LIMIT(e_config->menu_autoscroll_margin, 0, 50);
|
||||
|
|
|
@ -33,7 +33,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
|
|||
/* increment this whenever a new set of config values are added but the users
|
||||
* config doesn't need to be wiped - simply new values need to be put in
|
||||
*/
|
||||
#define E_CONFIG_FILE_GENERATION 0x0121
|
||||
#define E_CONFIG_FILE_GENERATION 0x0122
|
||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
|
@ -166,6 +166,7 @@ struct _E_Config
|
|||
int resize_info_visible; // GUI
|
||||
int focus_last_focused_per_desktop; // GUI
|
||||
int focus_revert_on_hide_or_close; // GUI
|
||||
int pointer_slide; // GUI
|
||||
int use_e_cursor; // GUI
|
||||
int cursor_size; // GUI
|
||||
int menu_autoscroll_margin; // GUI
|
||||
|
|
|
@ -25,6 +25,7 @@ struct _E_Config_Dialog_Data
|
|||
int always_click_to_focus;
|
||||
int focus_last_focused_per_desktop;
|
||||
int focus_revert_on_hide_or_close;
|
||||
int pointer_slide;
|
||||
};
|
||||
|
||||
/* a nice easy setup function that does the dirty work */
|
||||
|
@ -63,6 +64,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
cfdata->always_click_to_focus = e_config->always_click_to_focus;
|
||||
cfdata->focus_last_focused_per_desktop = e_config->focus_last_focused_per_desktop;
|
||||
cfdata->focus_revert_on_hide_or_close = e_config->focus_revert_on_hide_or_close;
|
||||
cfdata->pointer_slide = e_config->pointer_slide;
|
||||
|
||||
cfdata->mode = cfdata->focus_policy;
|
||||
}
|
||||
|
@ -103,6 +105,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->always_click_to_focus = 0;
|
||||
e_config->focus_last_focused_per_desktop = 1;
|
||||
e_config->focus_revert_on_hide_or_close = 1;
|
||||
e_config->pointer_slide = 0;
|
||||
}
|
||||
else if (cfdata->mode == E_FOCUS_MOUSE)
|
||||
{
|
||||
|
@ -113,6 +116,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->always_click_to_focus = 0;
|
||||
e_config->focus_last_focused_per_desktop = 0;
|
||||
e_config->focus_revert_on_hide_or_close = 0;
|
||||
e_config->pointer_slide = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -123,6 +127,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->always_click_to_focus = 0;
|
||||
e_config->focus_last_focused_per_desktop = 1;
|
||||
e_config->focus_revert_on_hide_or_close = 1;
|
||||
e_config->pointer_slide = 1;
|
||||
}
|
||||
e_border_button_bindings_grab_all();
|
||||
e_config_save_queue();
|
||||
|
@ -141,6 +146,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->always_click_to_focus = cfdata->always_click_to_focus;
|
||||
e_config->focus_last_focused_per_desktop = cfdata->focus_last_focused_per_desktop;
|
||||
e_config->focus_revert_on_hide_or_close = cfdata->focus_revert_on_hide_or_close;
|
||||
e_config->pointer_slide = cfdata->pointer_slide;
|
||||
e_border_button_bindings_grab_all();
|
||||
e_config_save_queue();
|
||||
return 1; /* Apply was OK */
|
||||
|
@ -207,6 +213,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_check_add(evas, _("Revert focus when hiding or closing a window"), &(cfdata->focus_revert_on_hide_or_close));
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_check_add(evas, _("Slide pointer to a new focused window"), &(cfdata->pointer_slide));
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
|
||||
return o;
|
||||
|
|
Loading…
Reference in New Issue