plumb through all supported args in LÖVE handlers

akkartik
May 6, 2025, 8:42 PM
A42EMHOQV2GBLLYYVASKUJY6JF5CGBWXYUD2PW5OZPX365QUZ2MQC

Dependencies

  • [2] 3P5RYCBL another missed rename
  • [3] 6XCJX4DZ bugfix: inscript's bug
  • [4] 5SM6DRHK port inscript's bugfix to source editor
  • [5] SW7BSBMJ several bugfixes in saving/loading cursor position
  • [6] VPRGENLA hide some details within the 'warning' state
  • [7] 2IOWGOPG mousemoved handler
  • [8] QUCBJJSU don't always pop up keyboard on mobile devices
  • [9] R3KXFRZN get rid of to_text
  • [10] Z3TDYADA mouse button state in source editor
  • [11] OI4FPFIN support drawings in the source editor
  • [12] GX5PD3CL consistently schedule_save after all mutations
  • [13] 2J5CURWY ensure tapping on editor brings up soft keyboard
  • [14] XNFTJHC4 split keyboard handling between Text and Drawing
  • [15] LNUHQOGH start passing in Editor_state explicitly
  • [16] 3OTESDW6 move drawing.starty into line cache
  • [17] MKPXANB5 bugfix: mouse clicks on file navigator above log browser side
  • [18] 73OCE2MC after much struggle, a brute-force undo
  • [19] DLQAEAC7 add state arg to Drawing.mouse_pressed
  • [20] UHB4GARJ left/right margin -> left/right coordinates
  • [21] XX7G2FFJ intermingle freehand line drawings with text
  • [22] RT6EV6OP delegate update events to drawings
  • [23] LUNH47XX make text and drawings the same width
  • [24] PX7DDEMO autosave slightly less aggressively
  • [25] C45WCXJ2 keep drawings within the line width slider as well
  • [26] KKMFQDR4 editing source code from within the app
  • [27] EKJUHVHB hoist out some common settings
  • [28] ZQDQLLCL bugfix
  • [29] 75O55MGV disable vsync
  • [30] 5ITAXPEP wait a little to flush disk before quitting
  • [31] KMSL74GA support selections in the source editor
  • [32] LDFXFRUO bring a few things in sync between run and source
  • [33] VHQCNMAR several more modules
  • [34] 3HVBAZPA add state arg to a few functions
  • [35] 4EGQRXDA bugfix: naming points
  • [36] LIKTH6HM update stale source X-(
  • [37] QJISOCHJ some temporary logging to catch a bug
  • [38] 2CK5QI7W make love event names consistent
  • [39] ZX3VAHVU stop generating invalid keychords
  • [40] KYNGDE2C consistent names in a few more places
  • [41] HYEAFRZ2 split mouse_pressed events between Text and Drawing
  • [42] 7FPELAZB ah, I see the problem
  • [43] 6VJTQKW7 start supporting LÖVE v12
  • [44] 7SICLTED check for 'error' mode in a few more places
  • [45] PTDO2SOT add state arg to schedule_save
  • [46] KVEEGWKS remove some dead code
  • [47] 5HEZU3YS consume a mouse click when switching sides
  • [48] 23MA4T3G add state arg to Drawing.keychord_pressed
  • [49] LYN3L74W correct commit f3abc2cbf2
  • [50] Z2VZTIXY redo version checks
  • [51] QAMVLUK2 fix a crash involving mouse and drawings
  • [52] JYB3RFWH bugfix in source editor
  • [53] IM6GSGVZ fix some arg names
  • [54] KTZQ57HV replace globals with args in a few functions
  • [55] LF7BWEG4 group all editor globals
  • [56] PWCZAAMT no, turn vsync back on
  • [57] XZ6QVCTT manually maintain mouse button press state
  • [58] U2TKUOID bugfix: undo drawing creation
  • [59] S7ZZA3YE ugh, handle absolute as well as relative paths
  • [60] L2FWWEQL source: remember cursor position of multiple files
  • [61] 2L5MEZV3 experiment: new edit namespace
  • [62] JMUD7T3O get rid of ugly side-effects in tests
  • [63] AQMZJXUR use editor state font for width calculations
  • [64] YGCT2D2O start loading settings as applicable
  • [65] EPRDIYDA bugfix in source editor
  • [66] 5DOTWNVM right margin
  • [67] M5Y4H74F use my name for a dir
  • [68] 5UKUADTW distinguish consistently between mouse buttons and other buttons
  • [69] GLABQJQQ repeat bugfix on source editor X-(
  • [70] M6TH7VSZ rip out notion of Line_width
  • [71] 6DE7RBZ6 move mouse_released events to Drawing
  • [72] CIQN2MDE bugfix: typing a capital letter deletes selection
  • [73] QXVD2RIF add state arg to Drawing.mouse_released
  • [74] APX2PY6G stop tracking wallclock time
  • [75] 6LJZN727 handle chords
  • [76] 3XQROLSK redo version checks yet again
  • [77] KVHUFUFV reorg
  • [78] HRWN5V6J Devine's suggestion to try to live with just freehand
  • [79] SPSW74Y5 add state arg to Text.keychord_pressed
  • [80] OAHNWDYG .
  • [81] 5RDWSYK2 consistently use App names for methods everywhere
  • [82] 2TCIWW6Z stop caching starty
  • [83] K2X6G75Z start writing some tests for drawings
  • [84] WZZLGNXE correct comment; vsync is hard to reason about
  • [85] AVTNUQYR basic test-enabled framework
  • [86] MTJEVRJR add state arg to a few functions
  • [87] SPNMXTYR have file API operate on state object
  • [88] IFTYOERM line.y -> line_cache.starty in a few more places
  • [89] QZ2SXLHF some debug prints
  • [90] DRFE3B3Z mouse buttons are integers, not strings
  • [91] GFXWHTE6 mouse wheel support
  • [*] BULPIBEG beginnings of a module for the text editor
  • [*] OTIBCAUJ love2d scaffold
  • [*] BLWAYPKV extract a module

Change contents

  • replacement in text.lua at line 152
    [9.1137][9.1137:1180]()
    function Text.keychord_press(State, chord)
    [9.1137]
    [9.48]
    function Text.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in source_text.lua at line 226
    [9.2319][9.2319:2362]()
    function Text.keychord_press(State, chord)
    [9.2319]
    [9.21139]
    function Text.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in source_edit.lua at line 235
    [9.157058][9.11:63]()
    function edit.mouse_press(State, x,y, mouse_button)
    [9.157058]
    [9.157112]
    function edit.mouse_press(State, x,y, mouse_button, is_touch, presses)
  • replacement in source_edit.lua at line 282
    [9.22192][9.64:130]()
    Drawing.mouse_press(State, line_index, x,y, mouse_button)
    [9.22192]
    [4.5203]
    Drawing.mouse_press(State, line_index, x,y, mouse_button, is_touch, presses)
  • replacement in source_edit.lua at line 295
    [9.157698][9.2434:2488]()
    function edit.mouse_release(State, x,y, mouse_button)
    [9.157698]
    [9.22285]
    function edit.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in source_edit.lua at line 300
    [9.22385][9.2489:2541]()
    Drawing.mouse_release(State, x,y, mouse_button)
    [9.22385]
    [9.22463]
    Drawing.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in source_edit.lua at line 386
    [9.158096][9.2611:2659]()
    function edit.keychord_press(State, chord, key)
    [9.158096]
    [9.32160]
    function edit.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in source_edit.lua at line 505
    [9.23489][9.2660:2703]()
    Drawing.keychord_press(State, chord)
    [9.23489]
    [9.23534]
    Drawing.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in source_edit.lua at line 538
    [9.163235][9.2704:2742]()
    Text.keychord_press(State, chord)
    [9.163128]
    [9.163275]
    Text.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in source.lua at line 59
    [9.166737][9.166737:166766]()
    function source.initialize()
    [9.166737]
    [9.27]
    function source.initialize(arg, unfiltered_arg)
  • replacement in source.lua at line 176
    [9.171215][9.171215:171244]()
    function source.resize(w, h)
    [9.171215]
    [9.171244]
    function source.resize(w,h)
  • replacement in source.lua at line 286
    [9.174570][9.224:271]()
    function source.mouse_press(x,y, mouse_button)
    [9.174570]
    [9.174619]
    function source.mouse_press(x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 294
    [9.157][9.272:326]()
    edit.mouse_press(Editor_state, x,y, mouse_button)
    [9.157]
    [9.213]
    edit.mouse_press(Editor_state, x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 303
    [9.174991][9.327:381]()
    edit.mouse_press(Editor_state, x,y, mouse_button)
    [9.174991]
    [9.175047]
    edit.mouse_press(Editor_state, x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 310
    [9.175261][9.382:448]()
    log_browser.mouse_press(Log_browser_state, x,y, mouse_button)
    [9.175261]
    [9.175443]
    log_browser.mouse_press(Log_browser_state, x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 314
    [9.175454][9.3258:3307]()
    function source.mouse_release(x,y, mouse_button)
    [9.175454]
    [9.175504]
    function source.mouse_release(x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 317
    [9.175604][9.3308:3371]()
    return edit.mouse_release(Editor_state, x,y, mouse_button)
    [9.175604]
    [9.175668]
    return edit.mouse_release(Editor_state, x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 319
    [9.175675][9.3372:3447]()
    return log_browser.mouse_release(Log_browser_state, x,y, mouse_button)
    [9.175675]
    [9.175751]
    return log_browser.mouse_release(Log_browser_state, x,y, mouse_button, is_touch, presses)
  • replacement in source.lua at line 345
    [9.176007][9.3618:3661]()
    function source.keychord_press(chord, key)
    [9.176007]
    [9.176052]
    function source.keychord_press(chord, key, scancode, is_repeat)
  • replacement in source.lua at line 385
    [9.177038][9.3712:3769]()
    return edit.keychord_press(Editor_state, chord, key)
    [9.177038]
    [9.177097]
    return edit.keychord_press(Editor_state, chord, key, scancode, is_repeat)
  • replacement in source.lua at line 387
    [9.177104][9.3770:3839]()
    return log_browser.keychord_press(Log_browser_state, chord, key)
    [9.177104]
    [9.177175]
    return log_browser.keychord_press(Log_browser_state, chord, key, scancode, is_repeat)
  • replacement in run.lua at line 14
    [9.178360][9.178360:178389]()
    function run.initialize(arg)
    [9.178360]
    [9.52]
    function run.initialize(arg, unfiltered_arg)
  • replacement in run.lua at line 103
    [9.181355][9.181355:181381]()
    function run.resize(w, h)
    [9.181355]
    [9.181381]
    function run.resize(w,h)
  • replacement in run.lua at line 169
    [5.314][9.16:60](),[9.183005][9.16:60]()
    function run.mouse_press(x,y, mouse_button)
    [5.314]
    [9.183051]
    function run.mouse_press(x,y, mouse_button, is_touch, presses)
  • replacement in run.lua at line 172
    [8.73][9.61:120](),[9.183125][9.61:120]()
    return edit.mouse_press(Editor_state, x,y, mouse_button)
    [8.73]
    [9.183186]
    return edit.mouse_press(Editor_state, x,y, mouse_button, is_touch, presses)
  • replacement in run.lua at line 175
    [9.183191][9.4054:4100]()
    function run.mouse_release(x,y, mouse_button)
    [9.183191]
    [9.183238]
    function run.mouse_release(x,y, mouse_button, is_touch, presses)
  • replacement in run.lua at line 177
    [9.183312][9.4101:4162]()
    return edit.mouse_release(Editor_state, x,y, mouse_button)
    [9.183312]
    [9.183374]
    return edit.mouse_release(Editor_state, x,y, mouse_button, is_touch, presses)
  • replacement in run.lua at line 190
    [9.183525][9.4234:4274]()
    function run.keychord_press(chord, key)
    [9.183525]
    [9.183567]
    function run.keychord_press(chord, key, scancode, is_repeat)
  • replacement in run.lua at line 192
    [9.183641][9.4275:4330]()
    return edit.keychord_press(Editor_state, chord, key)
    [9.183641]
    [9.183698]
    return edit.keychord_press(Editor_state, chord, key, scancode, is_repeat)
  • replacement in main.lua at line 118
    [9.1016][9.187114:187143](),[9.1052][9.187114:187143]()
    function App.initialize(arg)
    [9.1016]
    [9.90]
    function App.initialize(arg, unfiltered_arg)
  • replacement in main.lua at line 124
    [9.187174][9.187174:187198]()
    run.initialize(arg)
    [9.187174]
    [9.187198]
    run.initialize(arg, unfiltered_arg)
  • replacement in main.lua at line 126
    [9.187236][9.187236:187263]()
    source.initialize(arg)
    [9.187236]
    [6.283]
    source.initialize(arg, unfiltered_arg)
  • replacement in main.lua at line 212
    [9.8][9.4537:4577]()
    function App.keychord_press(chord, key)
    [9.8]
    [9.188715]
    function App.keychord_press(chord, key, scancode, is_repeat)
  • replacement in main.lua at line 256
    [9.189628][9.4578:4644]()
    if run.keychord_press then run.keychord_press(chord, key) end
    [9.189628]
    [9.189698]
    if run.keychord_press then run.keychord_press(chord, key, scancode, is_repeat) end
  • replacement in main.lua at line 258
    [9.189736][9.4645:4717]()
    if source.keychord_press then source.keychord_press(chord, key) end
    [9.189736]
    [9.189812]
    if source.keychord_press then source.keychord_press(chord, key, scancode, is_repeat) end
  • replacement in main.lua at line 298
    [9.190572][9.190572:190617]()
    function App.mousepressed(x,y, mouse_button)
    [9.190572]
    [6.1004]
    function App.mousepressed(x,y, mouse_button, is_touch, presses)
  • replacement in main.lua at line 302
    [9.190680][2.17:84]()
    if run.mouse_press then run.mouse_press(x,y, mouse_button) end
    [9.190680]
    [9.190751]
    if run.mouse_press then run.mouse_press(x,y, mouse_button, is_touch, presses) end
  • replacement in main.lua at line 304
    [9.190789][2.85:158]()
    if source.mouse_press then source.mouse_press(x,y, mouse_button) end
    [9.190789]
    [9.190866]
    if source.mouse_press then source.mouse_press(x,y, mouse_button, is_touch, presses) end
  • replacement in main.lua at line 310
    [9.361][9.190933:190979]()
    function App.mousereleased(x,y, mouse_button)
    [9.361]
    [6.1051]
    function App.mousereleased(x,y, mouse_button, is_touch, presses)
  • replacement in main.lua at line 313
    [9.191010][9.4952:5023]()
    if run.mouse_release then run.mouse_release(x,y, mouse_button) end
    [9.191010]
    [9.191083]
    if run.mouse_release then run.mouse_release(x,y, mouse_button, is_touch, presses) end
  • replacement in main.lua at line 315
    [9.191121][9.5024:5101]()
    if source.mouse_release then source.mouse_release(x,y, mouse_button) end
    [9.191121]
    [9.823]
    if source.mouse_release then source.mouse_release(x,y, mouse_button, is_touch, presses) end
  • replacement in main.lua at line 324
    [7.143][7.143:196]()
    if run.mouse_move then run.mouse_move(dx,dy) end
    [7.143]
    [7.196]
    if run.mouse_move then run.mouse_move(x,y, dx,dy, is_touch) end
  • replacement in main.lua at line 326
    [7.234][7.234:293]()
    if source.mouse_move then source.mouse_move(dx,dy) end
    [7.234]
    [7.293]
    if source.mouse_move then source.mouse_move(x,y, dx,dy, is_touch) end
  • replacement in log_browser.lua at line 186
    [9.199163][9.601:660]()
    function log_browser.mouse_press(State, x,y, mouse_button)
    [9.199163]
    [9.199224]
    function log_browser.mouse_press(State, x,y, mouse_button, is_touch, presses)
  • replacement in log_browser.lua at line 252
    [9.201364][9.5103:5164]()
    function log_browser.mouse_release(State, x,y, mouse_button)
    [9.201364]
    [9.1132]
    function log_browser.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in log_browser.lua at line 270
    [9.201477][9.5208:5263]()
    function log_browser.keychord_press(State, chord, key)
    [9.201477]
    [9.201534]
    function log_browser.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in keychord.lua at line 11
    [9.801][9.5322:5376]()
    App.keychord_press(App.combine_modifiers(key), key)
    [9.801]
    [9.844]
    App.keychord_press(App.combine_modifiers(key), key, scancode, is_repeat)
  • replacement in edit.lua at line 229
    [9.6757][9.669:721]()
    function edit.mouse_press(State, x,y, mouse_button)
    [9.6757]
    [9.4542]
    function edit.mouse_press(State, x,y, mouse_button, is_touch, presses)
  • replacement in edit.lua at line 276
    [9.2295][9.722:788]()
    Drawing.mouse_press(State, line_index, x,y, mouse_button)
    [9.2295]
    [3.2271]
    Drawing.mouse_press(State, line_index, x,y, mouse_button, is_touch, presses)
  • replacement in edit.lua at line 289
    [9.8364][9.5450:5504]()
    function edit.mouse_release(State, x,y, mouse_button)
    [9.8364]
    [9.5299]
    function edit.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in edit.lua at line 294
    [9.5377][9.5505:5557]()
    Drawing.mouse_release(State, x,y, mouse_button)
    [9.5377]
    [9.8641]
    Drawing.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in edit.lua at line 380
    [9.10343][9.5627:5675]()
    function edit.keychord_press(State, chord, key)
    [9.10343]
    [9.6800]
    function edit.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in edit.lua at line 499
    [9.2865][9.5676:5719]()
    Drawing.keychord_press(State, chord)
    [9.2865]
    [9.2866]
    Drawing.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in edit.lua at line 532
    [9.1400][9.5720:5758]()
    Text.keychord_press(State, chord)
    [9.15878]
    [9.15990]
    Text.keychord_press(State, chord, key, scancode, is_repeat)
  • replacement in drawing.lua at line 224
    [9.800][9.883:953]()
    function Drawing.mouse_press(State, drawing_index, x,y, mouse_button)
    [9.800]
    [9.2690]
    function Drawing.mouse_press(State, drawing_index, x,y, mouse_button, is_touch, presses)
  • replacement in drawing.lua at line 303
    [9.1875][9.7466:7523]()
    function Drawing.mouse_release(State, x,y, mouse_button)
    [9.1875]
    [9.123]
    function Drawing.mouse_release(State, x,y, mouse_button, is_touch, presses)
  • replacement in drawing.lua at line 399
    [9.19077][9.7524:7570]()
    function Drawing.keychord_press(State, chord)
    [9.19077]
    [9.1614]
    function Drawing.keychord_press(State, chord, key, scancode, is_repeat)