summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Williams <andy@andywilliams.me>2017-04-06 22:16:27 +0100
committerAndy Williams <andy@andywilliams.me>2017-04-06 22:16:27 +0100
commite44c33f233130525e538c313ff6aa2489d4741f8 (patch)
tree42afe35a110ccd59ac3e1d87d14cce48c0c264c5
parent8c93a207c1cb447e84285108086c23a3f8afe4e3 (diff)
downloadefl-e44c33f233130525e538c313ff6aa2489d4741f8.tar.gz
elm_code: Fix bug when deleting slection beyond start of document.
@fix
-rw-r--r--src/lib/elementary/elm_code_widget.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c
index ca0d1db3b4..7fdcd68bd1 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -654,7 +654,7 @@ _elm_code_widget_position_at_coordinates_get(Eo *obj, Elm_Code_Widget_Data *pd,
Evas_Coord ox = 0, oy = 0, sx = 0, sy = 0, rowy = 0;
Evas_Object *grid;
int cw = 0, ch = 0, gutter, retcol;
- unsigned int guess = 1, number;
+ unsigned int guess = 1, number = 1;
widget = (Elm_Code_Widget *)obj;
evas_object_geometry_get(widget, &ox, &oy, NULL, NULL);
@@ -667,19 +667,22 @@ _elm_code_widget_position_at_coordinates_get(Eo *obj, Elm_Code_Widget_Data *pd,
if (y >= 0 && ch > 0)
guess = ((double) y / ch) + 1;
- number = guess;
-
- // unfortunately EINA_LIST_REVERSE_FOREACH skips to the end of the list...
- for (item = eina_list_nth_list(pd->grids, guess - 1), grid = eina_list_data_get(item);
- item;
- item = eina_list_prev(item), grid = eina_list_data_get(item))
+ if (guess > 1)
{
- evas_object_geometry_get(grid, NULL, &rowy, NULL, NULL);
+ number = guess;
- if (rowy + sy - oy - 1<= y)
- break;
+ // unfortunately EINA_LIST_REVERSE_FOREACH skips to the end of the list...
+ for (item = eina_list_nth_list(pd->grids, number), grid = eina_list_data_get(item);
+ number > 1 && item;
+ item = eina_list_prev(item), grid = eina_list_data_get(item))
+ {
+ evas_object_geometry_get(grid, NULL, &rowy, NULL, NULL);
- number--;
+ if (rowy + sy - oy - 1<= y)
+ break;
+
+ number--;
+ }
}
if (col)