1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-26 17:10:38 +00:00

Allows desselecting a char by clicking outside the chart (ASCII).

- Allows Ctrl+Arrows to move quickly around the chart.
- Makes sure double-click occurs only when both clicks happen on the same glyph.
This commit is contained in:
FellippeHeitor 2021-01-14 23:37:28 -03:00
parent 1604ca1599
commit e0bfef4d87

View file

@ -13818,11 +13818,12 @@ FUNCTION ideASCIIbox$
Hover = i
IF mCLICK THEN
Selected = i
IF timeElapsedSince(lastClick!) <= .3 THEN
IF timeElapsedSince(lastClick!) <= .3 and lastClickOn = i THEN
'double click on chart
GOTO insertChar
END IF
lastClick! = TIMER
lastClickOn = i
END IF
COLOR 7, 0
ELSE
@ -13888,6 +13889,10 @@ FUNCTION ideASCIIbox$
NEXT
'-------- end of generic input response --------
IF mY > p.y AND mY < p.y + p.h AND mX > p.x AND mX < p.x + p.w THEN
IF Hover = 0 AND mCLICK THEN Selected = 0
END IF
IF K$ = CHR$(13) OR (Selected > 0 AND focus = 1 AND info <> 0) THEN
IF Selected = 0 AND Hover > 0 THEN
Selected = Hover
@ -13914,28 +13919,58 @@ FUNCTION ideASCIIbox$
CASE 19712, 19200, 20480, 18432
IF Selected = 0 AND Hover > 0 THEN Selected = Hover
CASE 19712
Selected = Selected + 1
IF KCTRL AND Selected > 0 THEN
DO UNTIL Selected MOD 16 = 0 OR Selected = 255
Selected = Selected + 1
LOOP
ELSE
Selected = Selected + 1
END IF
IF Selected > 255 THEN Selected = 1
CASE 19200
Selected = Selected - 1
IF KCTRL AND Selected > 0 THEN
DO UNTIL Selected MOD 16 = 1
Selected = Selected - 1
LOOP
ELSE
Selected = Selected - 1
END IF
IF Selected < 1 THEN Selected = 255
CASE 20480
IF Selected = 240 THEN
'corner case
Selected = 255
ELSEIF Selected + 16 <= 255 THEN
Selected = Selected + 16
IF KCTRL AND Selected > 0 THEN
IF Selected = 240 THEN
Selected = 255
ELSE
DO UNTIL Selected >= 240
Selected = Selected + 16
LOOP
END IF
IF Selected > 255 THEN Selected = 255
ELSE
Selected = Selected + 16 - 256
IF Selected = 240 THEN
'corner case
Selected = 255
ELSEIF Selected + 16 <= 255 THEN
Selected = Selected + 16
ELSE
Selected = Selected + 16 - 256
END IF
END IF
CASE 18432
IF Selected = 16 THEN
'corner case
Selected = 240
ELSEIF Selected - 16 >= 1 THEN
Selected = Selected - 16
IF KCTRL AND Selected > 0 THEN
DO UNTIL Selected <= 16
Selected = Selected - 16
LOOP
IF Selected < 1 THEN Selected = 0
ELSE
Selected = Selected - 16 + 256
IF Selected = 16 THEN
'corner case
Selected = 240
ELSEIF Selected - 16 >= 1 THEN
Selected = Selected - 16
ELSE
Selected = Selected - 16 + 256
END IF
END IF
END SELECT