fix extending selection with shift + double click. Closes T228

This commit is contained in:
Boris Faure 2013-08-29 14:00:29 +02:00
parent 58bcae42d4
commit 2c5828f5e2
1 changed files with 19 additions and 18 deletions

View File

@ -2966,21 +2966,22 @@ _smart_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUS
} }
else else
{ {
if (evas_key_modifier_is_set(ev->modifiers, "Shift") || /* SINGLE CLICK */
evas_key_modifier_is_set(ev->modifiers, "Control") || if (evas_key_modifier_is_set(ev->modifiers, "Shift") ||
evas_key_modifier_is_set(ev->modifiers, "Alt")) evas_key_modifier_is_set(ev->modifiers, "Control") ||
{ evas_key_modifier_is_set(ev->modifiers, "Alt"))
sd->cur.sel1.x = cx; {
sd->cur.sel1.y = cy - sd->scroll; sd->cur.sel1.x = cx;
sd->cur.sel2.x = cx; sd->cur.sel1.y = cy - sd->scroll;
sd->cur.sel2.y = cy - sd->scroll; sd->cur.sel2.x = cx;
sd->cur.sel = EINA_TRUE; sd->cur.sel2.y = cy - sd->scroll;
sd->cur.makesel = EINA_TRUE; sd->cur.sel = EINA_TRUE;
sd->boxsel = EINA_TRUE; sd->cur.makesel = EINA_TRUE;
sd->boxsel = EINA_TRUE;
#if defined(SUPPORT_DBLWIDTH) #if defined(SUPPORT_DBLWIDTH)
_selection_dbl_fix(data); _selection_dbl_fix(data);
#endif #endif
} }
if (sd->top_left || sd->bottom_right) if (sd->top_left || sd->bottom_right)
{ {
sd->cur.makesel = 1; sd->cur.makesel = 1;
@ -3001,11 +3002,6 @@ _smart_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUS
} }
else else
{ {
sd->backup.sel = sd->cur.sel;
sd->backup.sel1.x = sd->cur.sel1.x;
sd->backup.sel1.y = sd->cur.sel1.y;
sd->backup.sel2.x = sd->cur.sel2.x;
sd->backup.sel2.y = sd->cur.sel2.y;
if (sd->cur.sel) if (sd->cur.sel)
{ {
sd->cur.sel = 0; sd->cur.sel = 0;
@ -3078,6 +3074,11 @@ _smart_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED
_smart_update_queue(data, sd); _smart_update_queue(data, sd);
_take_selection(data, ELM_SEL_TYPE_PRIMARY); _take_selection(data, ELM_SEL_TYPE_PRIMARY);
} }
sd->backup.sel = sd->cur.sel;
sd->backup.sel1.x = sd->cur.sel1.x;
sd->backup.sel1.y = sd->cur.sel1.y;
sd->backup.sel2.x = sd->cur.sel2.x;
sd->backup.sel2.y = sd->cur.sel2.y;
} }
} }
} }