From fcd92901fc7581b36098988b4d571187679db3ad Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 5 Feb 2013 14:22:54 +0000 Subject: [PATCH] winlist_warp_speed->pointer_warp_speed pointer warp options consolidated into their own tab in focus settings SVN revision: 83633 --- ChangeLog | 3 ++ NEWS | 6 ++- src/bin/e_config.c | 8 ++++ src/bin/e_config.h | 5 ++- src/bin/e_configure_option.c | 4 +- .../e_int_config_focus.c | 44 +++++++++++++------ src/modules/winlist/e_int_config_winlist.c | 12 ----- 7 files changed, 51 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index 23eb9c14a..0e517b830 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ * fix bug where edge flips would stop functioning after dragging to an invalid edge containing a shelf * edge bindings can now be set to "drag only" * merged all binding config dialogs into conf_bindings module + * new option for disabling all pointer warps + * move pointer warp speed option to be general option + * new tab in focus settings for pointer warping 2013-02-04 Mike Blumenkrantz diff --git a/NEWS b/NEWS index fdc3bbd60..13f256416 100644 --- a/NEWS +++ b/NEWS @@ -31,16 +31,19 @@ Additions: * added options and functionality for "fast" composite effects * split comp window match settings into separate dialog * edge bindings can now be set to "drag only" + * new option for disabling all pointer warps Changes: Modules: * modules no longer require shutdown or save functions * merged all binding config dialogs into conf_bindings module - API: * e_menu_category_callback create callback parameter order has been changed * e_manager_comp_set() is no longer accessible by modules * e_xkb_layout API now deals directly with E_Config_XKB_Layout structs + Config: + * move winlist_warp_speed option to pointer_warp_speed + Deprecations: * @@ -86,6 +89,7 @@ Improvements: * optimize use of edje_file_collection_list * add support for edje files in filepreview widget * improve load time of apps dialogs + * new tab in focus settings for pointer warping Fixes: * IBar menu didn't allow to configure different icon sources, show contents menu even on empty IBar. diff --git a/src/bin/e_config.c b/src/bin/e_config.c index ce70e32f6..77e7e0a84 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -631,6 +631,7 @@ _e_config_edd_init(Eina_Bool old) 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, disable_all_pointer_warps, INT); /**/ + E_CONFIG_VAL(D, T, pointer_warp_speed, DOUBLE); /**/ 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); /**/ @@ -1290,6 +1291,12 @@ e_config_load(void) e_config->modules = eina_list_append(e_config->modules, em); } } + CONFIG_VERSION_CHECK(11) + { + CONFIG_VERSION_UPDATE_INFO(11); + e_config->pointer_warp_speed = e_config->winlist_warp_speed; + e_config->winlist_warp_speed = 0; + } } if (!e_config->remember_internal_fm_windows) e_config->remember_internal_fm_windows = !!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS); @@ -1370,6 +1377,7 @@ e_config_load(void) 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->disable_all_pointer_warps, 0, 1); + E_CONFIG_LIMIT(e_config->pointer_warp_speed, 0.0, 1.0); E_CONFIG_LIMIT(e_config->show_cursor, 0, 1); E_CONFIG_LIMIT(e_config->use_e_cursor, 0, 1); E_CONFIG_LIMIT(e_config->cursor_size, 0, 1024); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 473b85ae7..10ef9f670 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -48,7 +48,7 @@ typedef enum /* 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 10 +#define E_CONFIG_FILE_GENERATION 11 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION) #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!! @@ -128,7 +128,7 @@ struct _E_Config int winlist_warp_while_selecting; // GUI int winlist_warp_at_end; // GUI int winlist_no_warp_on_direction; // GUI - double winlist_warp_speed; // GUI + double winlist_warp_speed; // GUI **** NO LONGER USED!!! int winlist_scroll_animate; // GUI double winlist_scroll_speed; // GUI int winlist_list_show_iconified; // GUI @@ -170,6 +170,7 @@ struct _E_Config int focus_revert_on_hide_or_close; // GUI int disable_all_pointer_warps; // GUI int pointer_slide; // GUI + double pointer_warp_speed; // GUI int use_e_cursor; // GUI int cursor_size; // GUI int menu_autoscroll_margin; // GUI diff --git a/src/bin/e_configure_option.c b/src/bin/e_configure_option.c index 940d37343..99fc4f3d6 100644 --- a/src/bin/e_configure_option.c +++ b/src/bin/e_configure_option.c @@ -1580,6 +1580,8 @@ e_configure_option_init(void) OPT_ADD(BOOL, focus_revert_on_hide_or_close, _("Revert window focus on window hide or close"), _("border"), _("focus")); OPT_ADD(BOOL, pointer_slide, _("Warp pointer to new windows and away from closed windows"), _("border"), _("focus"), _("warp"), _("pointer")); OPT_ADD(BOOL, disable_all_pointer_warps, _("Prevent all forms of pointer warping"), _("border"), _("focus"), _("warp"), _("pointer")); + OPT_ADD(DOUBLE, pointer_warp_speed, _("Speed to move pointer when warping between windows"), _("border"), _("focus"), _("warp"), _("pointer"), _("speed")); + OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); OPT_ADD(BOOL, border_raise_on_mouse_action, _("Windows raise on mouse move/resize"), _("border"), _("raise"), _("focus"), _("mouse"), _("pointer"), _("move"), _("resize")); OPT_ADD(BOOL, border_raise_on_focus, _("Windows raise when focused"), _("border"), _("raise"), _("focus"), _("mouse")); @@ -1604,8 +1606,6 @@ e_configure_option_init(void) OPT_ADD(BOOL, winlist_warp_at_end, _("Winlist moves pointer to currently selected window after winlist closes"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer")); OPT_ADD(BOOL, winlist_no_warp_on_direction, _("Disable pointer warping on winlist directional focus change"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer")); OPT_HELP(_("This option, when enabled, disables pointer warping only when switching windows using a directional winlist action (up/down/left/right)")); - OPT_ADD(DOUBLE, winlist_warp_speed, _("Winlist pointer warp speed while selecting"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer"), _("speed")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); OPT_ADD(BOOL, winlist_scroll_animate, _("Enable winlist scroll animation"), _("border"), _("winlist"), _("animate")); OPT_ADD(DOUBLE, winlist_scroll_speed, _("Winlist scroll speed"), _("border"), _("winlist"), _("animate"), _("speed")); OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); diff --git a/src/modules/conf_window_manipulation/e_int_config_focus.c b/src/modules/conf_window_manipulation/e_int_config_focus.c index a1f346cd9..b4ffdde78 100644 --- a/src/modules/conf_window_manipulation/e_int_config_focus.c +++ b/src/modules/conf_window_manipulation/e_int_config_focus.c @@ -29,6 +29,7 @@ struct _E_Config_Dialog_Data int focus_revert_on_hide_or_close; int pointer_slide; int disable_all_pointer_warps; + double pointer_warp_speed; double auto_raise_delay; int border_raise_on_mouse_action; int border_raise_on_focus; @@ -79,6 +80,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) e_config->focus_revert_on_hide_or_close; cfdata->pointer_slide = e_config->pointer_slide; cfdata->disable_all_pointer_warps = e_config->disable_all_pointer_warps; + cfdata->pointer_warp_speed = e_config->pointer_warp_speed; cfdata->mode = cfdata->focus_policy; @@ -187,6 +189,7 @@ _advanced_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) cfdata->focus_revert_on_hide_or_close; e_config->pointer_slide = cfdata->pointer_slide; e_config->disable_all_pointer_warps = cfdata->disable_all_pointer_warps; + e_config->pointer_warp_speed = cfdata->pointer_warp_speed; e_config->use_auto_raise = cfdata->use_auto_raise; e_config->auto_raise_delay = cfdata->auto_raise_delay; @@ -211,6 +214,7 @@ _advanced_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *c (e_config->focus_revert_on_hide_or_close != cfdata->focus_revert_on_hide_or_close) || (e_config->pointer_slide != cfdata->pointer_slide) || (e_config->disable_all_pointer_warps != cfdata->disable_all_pointer_warps) || + (fabs(e_config->pointer_warp_speed - cfdata->pointer_warp_speed) < DBL_EPSILON) || (e_config->use_auto_raise != cfdata->use_auto_raise) || (e_config->auto_raise_delay != cfdata->auto_raise_delay) || (e_config->border_raise_on_mouse_action != cfdata->border_raise_on_mouse_action) || @@ -323,6 +327,32 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da 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 */ + ol = e_widget_list_add(evas, 0, 0); + of = e_widget_framelist_add(evas, _("Warping"), 0); + /* NOTE/TODO: + * + * IMHO all these slide-pointer-to-window, warp and all should have + * an unique and consistent setting. In some cases it just do not + * make sense to have one but not the other. + */ + + ob = e_widget_check_add(evas, _("Slide pointer to a new window which is focused"), + &(cfdata->pointer_slide)); + e_widget_framelist_object_append(of, ob); + + ob = e_widget_check_add(evas, _("Prevent all forms of pointer warping"), + &(cfdata->disable_all_pointer_warps)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Warp speed")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.2f"), 0.0, 1.0, 0.01, 0, + &(cfdata->pointer_warp_speed), NULL, 100); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(ol, of, 1, 0, 0.5); + e_widget_toolbook_page_append(otb, NULL, _("Pointer"), ol, + 1, 0, 1, 0, 0.5, 0.0); + /* Misc */ ol = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Other Settings"), 0); @@ -341,20 +371,6 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da ob = e_widget_check_add(evas, _("Focus last focused window on lost focus"), &(cfdata->focus_revert_on_hide_or_close)); e_widget_framelist_object_append(of, ob); - /* NOTE/TODO: - * - * IMHO all these slide-pointer-to-window, warp and all should have - * an unique and consistent setting. In some cases it just do not - * make sense to have one but not the other. - */ - - ob = e_widget_check_add(evas, _("Slide pointer to a new window which is focused"), - &(cfdata->pointer_slide)); - e_widget_framelist_object_append(of, ob); - - ob = e_widget_check_add(evas, _("Prevent all forms of pointer warping"), - &(cfdata->disable_all_pointer_warps)); - e_widget_framelist_object_append(of, ob); e_widget_list_object_append(ol, of, 1, 0, 0.5); e_widget_toolbook_page_append(otb, NULL, _("Miscellaneous"), ol, 1, 0, 1, 0, 0.5, 0.0); diff --git a/src/modules/winlist/e_int_config_winlist.c b/src/modules/winlist/e_int_config_winlist.c index cf12fdf76..ca697068d 100644 --- a/src/modules/winlist/e_int_config_winlist.c +++ b/src/modules/winlist/e_int_config_winlist.c @@ -23,7 +23,6 @@ struct _E_Config_Dialog_Data int warp_while_selecting; int warp_at_end; int no_warp_on_direction; - double warp_speed; int jump_desk; int scroll_animate; @@ -84,7 +83,6 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->warp_while_selecting = e_config->winlist_warp_while_selecting; cfdata->warp_at_end = e_config->winlist_warp_at_end; cfdata->no_warp_on_direction = e_config->winlist_no_warp_on_direction; - cfdata->warp_speed = e_config->winlist_warp_speed; cfdata->scroll_animate = e_config->winlist_scroll_animate; cfdata->scroll_speed = e_config->winlist_scroll_speed; @@ -133,7 +131,6 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) DO(warp_while_selecting, warp_while_selecting); DO(warp_at_end, warp_at_end); DO(no_warp_on_direction, no_warp_on_direction); - DO(warp_speed, warp_speed); DO(scroll_animate, scroll_animate); DO(scroll_speed, scroll_speed); DO(list_focus_while_selecting, focus); @@ -167,7 +164,6 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda DO(warp_while_selecting, warp_while_selecting); DO(warp_at_end, warp_at_end); DO(no_warp_on_direction, no_warp_on_direction); - DO(warp_speed, warp_speed); DO(scroll_animate, scroll_animate); DO(scroll_speed, scroll_speed); DO(list_focus_while_selecting, focus); @@ -239,14 +235,6 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data 0, 0, 1, 0, 0.5, 0.0); ol = e_widget_list_add(evas, 0, 0); - ob = e_widget_label_add(evas, _("Warp speed")); - cfdata->gui.disable_warp = - eina_list_append(cfdata->gui.disable_warp, ob); - e_widget_list_object_append(ol, ob, 1, 0, 0.0); - ob = e_widget_slider_add(evas, 1, 0, _("%1.2f"), 0.0, 1.0, 0.01, 0, - &(cfdata->warp_speed), NULL, 100); - cfdata->gui.disable_warp = eina_list_append(cfdata->gui.disable_warp, ob); - e_widget_list_object_append(ol, ob, 1, 0, 0.0); ob = e_widget_check_add(evas, _("Scroll Animation"), &(cfdata->scroll_animate)); e_widget_on_change_hook_set(ob, _scroll_animate_changed, cfdata);