Code: Select all
-- https://forum.farmanager.com/viewtopic.php?p=107362#p107362
F = far.Flags
OPAQUE = F.ALPHAMASK
color = Flags:F.FCF_INHERIT_STYLE +F.FCF_BG_INDEX, BackgroundColor:OPAQUE*0.5 + 0
local isScrollLocked
SCROLL = 145
updateScrollState = () ->isScrollLocked = select 2, win.GetKeyState SCROLL
updateScrollState!
Macro
description:"Cross toggle"
area:"Common", key:"ScrollLock"
action:updateScrollState
Event
description:"Cross on ScrollLock handler"
group:"EditorEvent"
action:(id,event) ->
if event==F.EE_REDRAW and isScrollLocked
with ei = editor.GetInfo!
if ei
for line=.TopScreenLine, math.min .TopScreenLine+.WindowSizeY-1, .TotalLines
if line==.CurLine
editor.AddColor id, line, 1, .LeftPos+.WindowSizeX, F.ECF_AUTODELETE, color, 200
col = (editor.TabToReal id, line, .CurTabPos) or .CurPos
editor.AddColor id, line, col, col, F.ECF_AUTODELETE +F.ECF_TABMARKCURRENT, color, 200
ScrollLock