move

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

Dependencies

  • [2] DRFE3B3Z mouse buttons are integers, not strings
  • [3] 6VQIWTQU standardize on ordering of cases
  • [4] 7OUJM7DL one missing transition between shape modes
  • [5] YCDYGEZU include drawing index in a few places
  • [6] H4K2GFIL experiment: give up on changing shape mode
  • [7] JFFUF5AL override mouse state lookups in tests
  • [8] XNFTJHC4 split keyboard handling between Text and Drawing
  • [9] 2MA33THZ few more transitions between shapes
  • [*] BLWAYPKV extract a module

Change contents

  • edit in drawing.lua at line 355
    [4.5858]
    [2.1666]
    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 471
    [4.8206][2.2342:2391](),[2.2391][4.8260:8294](),[4.3555][4.8260:8294](),[4.8260][4.8260:8294](),[4.8294][4.310:358](),[4.358][4.8340:8509](),[4.8340][4.8340:8509](),[4.8641][4.132:257](),[4.257][4.8691:8746](),[4.8691][4.8691:8746](),[4.8746][3.462:594](),[3.594][4.8746:8788](),[4.8746][4.8746:8788](),[4.8788][2.2392:2447](),[4.71][4.8817:8851](),[2.2447][4.8817:8851](),[4.3613][4.8817:8851](),[4.8817][4.8817:8851](),[4.8851][2.2448:2497](),[2.2497][4.9028:9357](),[4.3665][4.9028:9357](),[4.9028][4.9028:9357](),[4.9357][4.507:632](),[4.632][4.9407:9641](),[4.9407][4.9407:9641](),[4.9641][2.2498:2553](),[2.2553][4.9701:9740](),[4.3723][4.9701:9740](),[4.9701][4.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 == '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'