aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--NEWS6
-rw-r--r--src/bin/e_config.c8
-rw-r--r--src/bin/e_config.h5
-rw-r--r--src/bin/e_configure_option.c4
-rw-r--r--src/modules/conf_window_manipulation/e_int_config_focus.c44
-rw-r--r--src/modules/winlist/e_int_config_winlist.c12
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);