summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/conf_window_manipulation/e_int_config_focus.c11
-rw-r--r--src/modules/winlist/e_winlist.c25
-rw-r--r--src/modules/wizard/page_060.c1
3 files changed, 27 insertions, 10 deletions
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 404503681..a1f346cd9 100644
--- a/src/modules/conf_window_manipulation/e_int_config_focus.c
+++ b/src/modules/conf_window_manipulation/e_int_config_focus.c
@@ -28,6 +28,7 @@ struct _E_Config_Dialog_Data
28 int focus_last_focused_per_desktop; 28 int focus_last_focused_per_desktop;
29 int focus_revert_on_hide_or_close; 29 int focus_revert_on_hide_or_close;
30 int pointer_slide; 30 int pointer_slide;
31 int disable_all_pointer_warps;
31 double auto_raise_delay; 32 double auto_raise_delay;
32 int border_raise_on_mouse_action; 33 int border_raise_on_mouse_action;
33 int border_raise_on_focus; 34 int border_raise_on_focus;
@@ -77,6 +78,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
77 cfdata->focus_revert_on_hide_or_close = 78 cfdata->focus_revert_on_hide_or_close =
78 e_config->focus_revert_on_hide_or_close; 79 e_config->focus_revert_on_hide_or_close;
79 cfdata->pointer_slide = e_config->pointer_slide; 80 cfdata->pointer_slide = e_config->pointer_slide;
81 cfdata->disable_all_pointer_warps = e_config->disable_all_pointer_warps;
80 82
81 cfdata->mode = cfdata->focus_policy; 83 cfdata->mode = cfdata->focus_policy;
82 84
@@ -127,6 +129,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
127 e_config->focus_last_focused_per_desktop = 1; 129 e_config->focus_last_focused_per_desktop = 1;
128 e_config->focus_revert_on_hide_or_close = 1; 130 e_config->focus_revert_on_hide_or_close = 1;
129 e_config->pointer_slide = 0; 131 e_config->pointer_slide = 0;
132 e_config->disable_all_pointer_warps = 1;
130 } 133 }
131 else if (cfdata->mode == E_FOCUS_MOUSE) 134 else if (cfdata->mode == E_FOCUS_MOUSE)
132 { 135 {
@@ -139,6 +142,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
139 e_config->focus_last_focused_per_desktop = 0; 142 e_config->focus_last_focused_per_desktop = 0;
140 e_config->focus_revert_on_hide_or_close = 0; 143 e_config->focus_revert_on_hide_or_close = 0;
141 e_config->pointer_slide = 1; 144 e_config->pointer_slide = 1;
145 e_config->disable_all_pointer_warps = 0;
142 } 146 }
143 else 147 else
144 { 148 {
@@ -151,6 +155,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
151 e_config->focus_last_focused_per_desktop = 1; 155 e_config->focus_last_focused_per_desktop = 1;
152 e_config->focus_revert_on_hide_or_close = 1; 156 e_config->focus_revert_on_hide_or_close = 1;
153 e_config->pointer_slide = 1; 157 e_config->pointer_slide = 1;
158 e_config->disable_all_pointer_warps = 0;
154 } 159 }
155 e_config->use_auto_raise = cfdata->use_auto_raise; 160 e_config->use_auto_raise = cfdata->use_auto_raise;
156 e_border_button_bindings_grab_all(); 161 e_border_button_bindings_grab_all();
@@ -181,6 +186,7 @@ _advanced_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
181 e_config->focus_revert_on_hide_or_close = 186 e_config->focus_revert_on_hide_or_close =
182 cfdata->focus_revert_on_hide_or_close; 187 cfdata->focus_revert_on_hide_or_close;
183 e_config->pointer_slide = cfdata->pointer_slide; 188 e_config->pointer_slide = cfdata->pointer_slide;
189 e_config->disable_all_pointer_warps = cfdata->disable_all_pointer_warps;
184 190
185 e_config->use_auto_raise = cfdata->use_auto_raise; 191 e_config->use_auto_raise = cfdata->use_auto_raise;
186 e_config->auto_raise_delay = cfdata->auto_raise_delay; 192 e_config->auto_raise_delay = cfdata->auto_raise_delay;
@@ -204,6 +210,7 @@ _advanced_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *c
204 (e_config->focus_last_focused_per_desktop != cfdata->focus_last_focused_per_desktop) || 210 (e_config->focus_last_focused_per_desktop != cfdata->focus_last_focused_per_desktop) ||
205 (e_config->focus_revert_on_hide_or_close != cfdata->focus_revert_on_hide_or_close) || 211 (e_config->focus_revert_on_hide_or_close != cfdata->focus_revert_on_hide_or_close) ||
206 (e_config->pointer_slide != cfdata->pointer_slide) || 212 (e_config->pointer_slide != cfdata->pointer_slide) ||
213 (e_config->disable_all_pointer_warps != cfdata->disable_all_pointer_warps) ||
207 (e_config->use_auto_raise != cfdata->use_auto_raise) || 214 (e_config->use_auto_raise != cfdata->use_auto_raise) ||
208 (e_config->auto_raise_delay != cfdata->auto_raise_delay) || 215 (e_config->auto_raise_delay != cfdata->auto_raise_delay) ||
209 (e_config->border_raise_on_mouse_action != cfdata->border_raise_on_mouse_action) || 216 (e_config->border_raise_on_mouse_action != cfdata->border_raise_on_mouse_action) ||
@@ -344,6 +351,10 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da
344 ob = e_widget_check_add(evas, _("Slide pointer to a new window which is focused"), 351 ob = e_widget_check_add(evas, _("Slide pointer to a new window which is focused"),
345 &(cfdata->pointer_slide)); 352 &(cfdata->pointer_slide));
346 e_widget_framelist_object_append(of, ob); 353 e_widget_framelist_object_append(of, ob);
354
355 ob = e_widget_check_add(evas, _("Prevent all forms of pointer warping"),
356 &(cfdata->disable_all_pointer_warps));
357 e_widget_framelist_object_append(of, ob);
347 e_widget_list_object_append(ol, of, 1, 0, 0.5); 358 e_widget_list_object_append(ol, of, 1, 0, 0.5);
348 e_widget_toolbook_page_append(otb, NULL, _("Miscellaneous"), ol, 359 e_widget_toolbook_page_append(otb, NULL, _("Miscellaneous"), ol,
349 1, 0, 1, 0, 0.5, 0.0); 360 1, 0, 1, 0, 0.5, 0.0);
diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c
index e16a535a5..3d8acac81 100644
--- a/src/modules/winlist/e_winlist.c
+++ b/src/modules/winlist/e_winlist.c
@@ -481,9 +481,10 @@ e_winlist_left(E_Zone *zone)
481 if (!bd_orig->lock_focus_out) 481 if (!bd_orig->lock_focus_out)
482 e_border_focus_set(bd_orig, 0, 0); 482 e_border_focus_set(bd_orig, 0, 0);
483 483
484 if ((e_config->focus_policy != E_FOCUS_CLICK) || 484 if ((!e_config->disable_all_pointer_warps) &&
485 ((e_config->focus_policy != E_FOCUS_CLICK) ||
485 (e_config->winlist_warp_at_end) || 486 (e_config->winlist_warp_at_end) ||
486 (e_config->winlist_warp_while_selecting)) 487 (e_config->winlist_warp_while_selecting)))
487 { 488 {
488 _warp_to_x = _bd_next->x + (_bd_next->w / 2); 489 _warp_to_x = _bd_next->x + (_bd_next->w / 2);
489 if (_warp_to_x < (_bd_next->zone->x + 1)) 490 if (_warp_to_x < (_bd_next->zone->x + 1))
@@ -605,9 +606,10 @@ e_winlist_down(E_Zone *zone)
605 if (!bd_orig->lock_focus_out) 606 if (!bd_orig->lock_focus_out)
606 e_border_focus_set(bd_orig, 0, 0); 607 e_border_focus_set(bd_orig, 0, 0);
607 608
608 if ((e_config->focus_policy != E_FOCUS_CLICK) || 609 if ((!e_config->disable_all_pointer_warps) &&
610 ((e_config->focus_policy != E_FOCUS_CLICK) ||
609 (e_config->winlist_warp_at_end) || 611 (e_config->winlist_warp_at_end) ||
610 (e_config->winlist_warp_while_selecting)) 612 (e_config->winlist_warp_while_selecting)))
611 { 613 {
612 _warp_to_x = _bd_next->x + (_bd_next->w / 2); 614 _warp_to_x = _bd_next->x + (_bd_next->w / 2);
613 if (_warp_to_x < (_bd_next->zone->x + 1)) 615 if (_warp_to_x < (_bd_next->zone->x + 1))
@@ -729,9 +731,10 @@ e_winlist_up(E_Zone *zone)
729 if (!bd_orig->lock_focus_out) 731 if (!bd_orig->lock_focus_out)
730 e_border_focus_set(bd_orig, 0, 0); 732 e_border_focus_set(bd_orig, 0, 0);
731 733
732 if ((e_config->focus_policy != E_FOCUS_CLICK) || 734 if ((!e_config->disable_all_pointer_warps) &&
735 ((e_config->focus_policy != E_FOCUS_CLICK) ||
733 (e_config->winlist_warp_at_end) || 736 (e_config->winlist_warp_at_end) ||
734 (e_config->winlist_warp_while_selecting)) 737 (e_config->winlist_warp_while_selecting)))
735 { 738 {
736 _warp_to_x = _bd_next->x + (_bd_next->w / 2); 739 _warp_to_x = _bd_next->x + (_bd_next->w / 2);
737 if (_warp_to_x < (_bd_next->zone->x + 1)) 740 if (_warp_to_x < (_bd_next->zone->x + 1))
@@ -853,9 +856,10 @@ e_winlist_right(E_Zone *zone)
853 if (!bd_orig->lock_focus_out) 856 if (!bd_orig->lock_focus_out)
854 e_border_focus_set(bd_orig, 0, 0); 857 e_border_focus_set(bd_orig, 0, 0);
855 858
856 if ((e_config->focus_policy != E_FOCUS_CLICK) || 859 if ((!e_config->disable_all_pointer_warps) &&
860 ((e_config->focus_policy != E_FOCUS_CLICK) ||
857 (e_config->winlist_warp_at_end) || 861 (e_config->winlist_warp_at_end) ||
858 (e_config->winlist_warp_while_selecting)) 862 (e_config->winlist_warp_while_selecting)))
859 { 863 {
860 _warp_to_x = _bd_next->x + (_bd_next->w / 2); 864 _warp_to_x = _bd_next->x + (_bd_next->w / 2);
861 if (_warp_to_x < (_bd_next->zone->x + 1)) 865 if (_warp_to_x < (_bd_next->zone->x + 1))
@@ -1122,9 +1126,10 @@ _e_winlist_activate(void)
1122 ok = 1; 1126 ok = 1;
1123 if (ok) 1127 if (ok)
1124 { 1128 {
1125 if ((e_config->focus_policy != E_FOCUS_CLICK) || 1129 if ((!e_config->disable_all_pointer_warps) &&
1130 ((e_config->focus_policy != E_FOCUS_CLICK) ||
1126 (e_config->winlist_warp_at_end) || 1131 (e_config->winlist_warp_at_end) ||
1127 (e_config->winlist_warp_while_selecting)) 1132 (e_config->winlist_warp_while_selecting)))
1128 { 1133 {
1129 _warp_to_x = ww->border->x + (ww->border->w / 2); 1134 _warp_to_x = ww->border->x + (ww->border->w / 2);
1130 if (_warp_to_x < (ww->border->zone->x + 1)) 1135 if (_warp_to_x < (ww->border->zone->x + 1))
diff --git a/src/modules/wizard/page_060.c b/src/modules/wizard/page_060.c
index 1cd5235d6..06a5369f8 100644
--- a/src/modules/wizard/page_060.c
+++ b/src/modules/wizard/page_060.c
@@ -57,6 +57,7 @@ wizard_page_hide(E_Wizard_Page *pg __UNUSED__)
57 e_config->always_click_to_focus = 0; 57 e_config->always_click_to_focus = 0;
58 e_config->focus_last_focused_per_desktop = 1; 58 e_config->focus_last_focused_per_desktop = 1;
59 e_config->pointer_slide = 0; 59 e_config->pointer_slide = 0;
60 e_config->disable_all_pointer_warps = 1;
60 e_config->winlist_warp_while_selecting = 0; 61 e_config->winlist_warp_while_selecting = 0;
61 e_config->winlist_warp_at_end = 0; 62 e_config->winlist_warp_at_end = 0;
62 e_config->winlist_no_warp_on_direction = 1; 63 e_config->winlist_no_warp_on_direction = 1;