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

Restores cursor position when navigating with QuickNav.

This commit is contained in:
Fellippe Heitor 2021-07-13 00:40:11 -03:00
parent a94b738407
commit 88ab0369c0
2 changed files with 33 additions and 19 deletions

View file

@ -31,6 +31,13 @@ END TYPE
REDIM SHARED IdeBmk(1) AS IdeBmkType
DIM SHARED IdeBmkN
TYPE QuickNavType
AS LONG idesx, idesy, idecx, idecy
END TYPE
DIM SHARED QuickNavTotal AS LONG
DIM SHARED QuickNavHistory(0) AS QuickNavType
REDIM SHARED IdeBreakpoints(1) AS _BYTE
'GetInput global variables
@ -152,8 +159,6 @@ DIM SHARED idechangemade AS INTEGER
DIM SHARED ideinsert AS INTEGER
DIM SHARED idepathsep AS STRING * 1
DIM SHARED SubFuncLIST(0) AS STRING
DIM SHARED QuickNavTotal AS LONG
DIM SHARED QuickNavHistory(0) AS LONG
DIM SHARED ModifyCOMMAND$
DIM SHARED EnteringRGB AS _BYTE
DIM SHARED ActiveINCLUDELink AS LONG

View file

@ -1284,7 +1284,7 @@ FUNCTION ide2 (ignore)
'Hover/click (QuickNav, "Find" field, version number, line number)
updateHover = 0
IF QuickNavTotal > 0 THEN
DO UNTIL QuickNavHistory(QuickNavTotal) <= iden
DO UNTIL QuickNavHistory(QuickNavTotal).idecy <= iden
'make sure that the line number in history still exists
QuickNavTotal = QuickNavTotal - 1
IF QuickNavTotal = 0 THEN EXIT DO
@ -1297,7 +1297,7 @@ FUNCTION ide2 (ignore)
IF QuickNavHover = 0 THEN
QuickNavHover = -1
COLOR 15, 3
popup$ = " " + CHR$(17) + " back to line " + str2$(QuickNavHistory(QuickNavTotal)) + " "
popup$ = " " + CHR$(17) + " back to line " + str2$(QuickNavHistory(QuickNavTotal).idecy) + " "
_PRINTSTRING (4, 2), popup$
'shadow
@ -1310,7 +1310,10 @@ FUNCTION ide2 (ignore)
IF mCLICK THEN
ideselect = 0
idecy = QuickNavHistory(QuickNavTotal)
idecy = QuickNavHistory(QuickNavTotal).idecy
idecx = QuickNavHistory(QuickNavTotal).idecx
idesy = QuickNavHistory(QuickNavTotal).idesy
idesx = QuickNavHistory(QuickNavTotal).idesx
QuickNavTotal = QuickNavTotal - 1
GOTO ideloop
END IF
@ -1498,7 +1501,7 @@ FUNCTION ide2 (ignore)
CASE 2
'2- Link to the line that has a compiler error:
idecx = 1
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = idefocusline
ideselect = 0
GOTO specialchar
@ -2733,7 +2736,7 @@ FUNCTION ide2 (ignore)
IF IdeBmk(b).y = l THEN EXIT DO
NEXT
LOOP
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = l
idecx = IdeBmk(b).x
ideselect = 0
@ -3123,7 +3126,7 @@ FUNCTION ide2 (ignore)
IF KCONTROL AND UCASE$(K$) = "G" THEN 'goto line
IF KSHIFT AND idefocusline > 0 THEN
idecx = 1
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = idefocusline
ideselect = 0
ELSE
@ -3173,7 +3176,10 @@ FUNCTION ide2 (ignore)
IF KCONTROL THEN
IF QuickNavTotal > 0 THEN
ideselect = 0
idecy = QuickNavHistory(QuickNavTotal)
idecy = QuickNavHistory(QuickNavTotal).idecy
idecx = QuickNavHistory(QuickNavTotal).idecx
idesy = QuickNavHistory(QuickNavTotal).idesy
idesx = QuickNavHistory(QuickNavTotal).idesx
QuickNavTotal = QuickNavTotal - 1
GOTO ideloop
END IF
@ -4919,7 +4925,7 @@ FUNCTION ide2 (ignore)
IF IdeBmk(b).y = l THEN EXIT DO
NEXT
LOOP
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = l
idecx = IdeBmk(b).x
ideselect = 0
@ -5026,7 +5032,7 @@ FUNCTION ide2 (ignore)
IF LEFT$(menu$(m, s), 10) = "#Go To SUB" OR LEFT$(menu$(m, s), 15) = "#Go To FUNCTION" THEN 'Contextual menu Goto
PCOPY 3, 0: SCREEN , , 3, 0
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = CVL(MID$(SubFuncLIST(1), 1, 4))
idesy = idecy
idecx = 1
@ -5037,7 +5043,7 @@ FUNCTION ide2 (ignore)
IF LEFT$(menu$(m, s), 12) = "Go To #Label" THEN 'Contextual menu Goto label
PCOPY 3, 0: SCREEN , , 3, 0
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = CVL(MID$(SubFuncLIST(UBOUND(SubFuncLIST)), 1, 4))
idesy = idecy
idecx = 1
@ -9263,7 +9269,7 @@ FUNCTION idesubs$
IF K$ = CHR$(13) OR (focus = 4 AND info <> 0) OR (info = 1 AND focus = 1) THEN
y = o(1).sel
IF y < 1 THEN y = -y
AddQuickNavHistory idecy
AddQuickNavHistory
IF SortedSubsFlag = 0 THEN
idecy = CVL(MID$(ly$, y * 4 - 3, 4))
ELSE
@ -9687,7 +9693,7 @@ FUNCTION idewarningbox
y = ABS(o(1).sel)
IF y >= 1 AND y <= warningListItems AND warningLines(y) > 0 THEN
idegotobox_LastLineNum = warningLines(y)
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = idegotobox_LastLineNum
IF warningIncLines(y) > 0 THEN
warningInInclude = idecy
@ -10812,7 +10818,7 @@ SUB idegotobox
IF v& < 1 THEN v& = 1
IF v& > iden THEN v& = iden
idegotobox_LastLineNum = v&
AddQuickNavHistory idecy
AddQuickNavHistory
idecy = v&
ideselect = 0
END SUB
@ -14622,16 +14628,19 @@ FUNCTION FindCurrentSF$ (whichline)
FindCurrentSF$ = sfname$
END FUNCTION
SUB AddQuickNavHistory (LineNumber&)
SUB AddQuickNavHistory
IF QuickNavTotal > 0 THEN
IF QuickNavHistory(QuickNavTotal) = LineNumber& THEN EXIT SUB
IF QuickNavHistory(QuickNavTotal).idecy = idecy THEN EXIT SUB
END IF
QuickNavTotal = QuickNavTotal + 1
REDIM _PRESERVE QuickNavHistory(1 TO QuickNavTotal) AS LONG
REDIM _PRESERVE QuickNavHistory(1 TO QuickNavTotal) AS QuickNavType
QuickNavHistory(QuickNavTotal) = LineNumber&
QuickNavHistory(QuickNavTotal).idecy = idecy
QuickNavHistory(QuickNavTotal).idecx = idecx
QuickNavHistory(QuickNavTotal).idesy = idesy
QuickNavHistory(QuickNavTotal).idesx = idesx
END SUB
SUB UpdateIdeInfo