move

[?]
Jun 15, 2022, 6:10 PM
IHHNPJ5QIEYWJTC34GSVWJ7KSHAEO7RQCQULTA7MA5RUMQ2GVOZQC

Dependencies

  • [2] W7JMT5V2 rip out most support for polygons
  • [3] 7OUJM7DL one missing transition between shape modes
  • [4] H4K2GFIL experiment: give up on changing shape mode
  • [5] XNFTJHC4 split keyboard handling between Text and Drawing
  • [6] 2MA33THZ few more transitions between shapes
  • [7] JFFUF5AL override mouse state lookups in tests
  • [8] YCDYGEZU include drawing index in a few places
  • [9] DRFE3B3Z mouse buttons are integers, not strings
  • [10] WDMPH4AN drop support for squares
  • [*] BLWAYPKV extract a module

Change contents

  • edit in drawing.lua at line 315
    [3.5858]
    [3.1772]
    elseif App.mouse_down(1) and chord == 'l' then
    Current_drawing_mode = 'line'
    local _,drawing = Drawing.current_drawing()
    if drawing.pending.mode == 'freehand' then
    drawing.pending.p1 = Drawing.insert_point(drawing.points, drawing.pending.points[1].x, drawing.pending.points[1].y)
    elseif drawing.pending.mode == 'polygon' or drawing.pending.mode == 'rectangle' or drawing.pending.mode == 'square' then
    drawing.pending.p1 = drawing.pending.vertices[1]
    elseif drawing.pending.mode == 'circle' or drawing.pending.mode == 'arc' then
    drawing.pending.p1 = drawing.pending.center
    end
    drawing.pending.mode = 'line'
    elseif chord == 'C-l' and not App.mouse_down(1) then
    Current_drawing_mode = 'line'
    elseif App.mouse_down(1) and chord == 'm' then
    Current_drawing_mode = 'manhattan'
    local drawing = Drawing.select_drawing_at_mouse()
    if drawing.pending.mode == 'freehand' then
    drawing.pending.p1 = Drawing.insert_point(drawing.points, drawing.pending.points[1].x, drawing.pending.points[1].y)
    elseif drawing.pending.mode == 'line' then
    -- do nothing
    elseif drawing.pending.mode == 'polygon' or drawing.pending.mode == 'rectangle' or drawing.pending.mode == 'square' then
    drawing.pending.p1 = drawing.pending.vertices[1]
    elseif drawing.pending.mode == 'circle' or drawing.pending.mode == 'arc' then
    drawing.pending.p1 = drawing.pending.center
    end
    drawing.pending.mode = 'manhattan'
    elseif chord == 'C-m' and not App.mouse_down(1) then
    Current_drawing_mode = 'manhattan'
  • edit in drawing.lua at line 388
    [3.8206][3.2342:2391](),[3.2391][3.8260:8294](),[3.3555][3.8260:8294](),[3.8260][3.8260:8294](),[3.8294][3.310:358](),[3.358][3.8340:8509](),[3.8340][3.8340:8509](),[3.8509][2.552:778](),[2.778][3.8591:8641](),[3.8591][3.8591:8641](),[3.8746][3.8746:8788](),[3.8788][3.2392:2447](),[3.71][3.8817:8851](),[3.2447][3.8817:8851](),[3.3613][3.8817:8851](),[3.8817][3.8817:8851](),[3.8851][3.2448:2497](),[3.2497][3.9028:9357](),[3.3665][3.9028:9357](),[3.9028][3.9028:9357](),[3.9357][2.779:831](),[3.632][3.9407:9462](),[2.831][3.9407:9462](),[3.1009][3.9407:9462](),[3.9407][3.9407:9462](),[3.9462][2.832:951](),[2.951][3.9544:9641](),[3.9544][3.9544:9641](),[3.9641][3.2498:2553](),[3.2553][3.9701:9740](),[3.3723][3.9701:9740](),[3.9701][3.9701:9740]()
    elseif App.mouse_down(1) and chord == 'l' then
    Current_drawing_mode = 'line'
    local _,drawing = Drawing.current_drawing()
    if drawing.pending.mode == 'freehand' then
    drawing.pending.p1 = Drawing.insert_point(drawing.points, drawing.pending.points[1].x, drawing.pending.points[1].y)
    elseif drawing.pending.mode == 'rectangle' then
    drawing.pending.p1 = drawing.pending.vertices[1]
    elseif drawing.pending.mode == 'polygon' or drawing.pending.mode == 'circle' or drawing.pending.mode == 'arc' then
    drawing.pending.p1 = drawing.pending.center
    end
    drawing.pending.mode = 'line'
    elseif chord == 'C-l' and not App.mouse_down(1) then
    Current_drawing_mode = 'line'
    elseif App.mouse_down(1) and chord == 'm' then
    Current_drawing_mode = 'manhattan'
    local drawing = Drawing.select_drawing_at_mouse()
    if drawing.pending.mode == 'freehand' then
    drawing.pending.p1 = Drawing.insert_point(drawing.points, drawing.pending.points[1].x, drawing.pending.points[1].y)
    elseif drawing.pending.mode == 'line' then
    -- do nothing
    elseif drawing.pending.mode == 'rectangle' then
    drawing.pending.p1 = drawing.pending.vertices[1]
    elseif drawing.pending.mode == 'polygon' or drawing.pending.mode == 'circle' or drawing.pending.mode == 'arc' then
    drawing.pending.p1 = drawing.pending.center
    end
    drawing.pending.mode = 'manhattan'
    elseif chord == 'C-m' and not App.mouse_down(1) then
    Current_drawing_mode = 'manhattan'