about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* editing source code from within the appKartik K. Agaram2022-09-0321-194/+5157
| | | | integrated from pong.love: https://merveilles.town/@akkartik/108933336531898243
* Merge lines.loveKartik K. Agaram2022-08-241-4/+6
|\
| * bugfix: propagate mouse press if any button wouldKartik K. Agaram2022-08-241-4/+6
| | | | | | | | | | Before this commit I was propagating press events only if _all_ buttons would.
* | Merge lines.loveKartik K. Agaram2022-08-242-0/+12
|\|
| * infrastructure for caching LÖVE text objectsKartik K. Agaram2022-08-243-6/+13
| |
* | Merge lines.loveKartik K. Agaram2022-08-232-1/+23
|\|
| * set color for each fragmentKartik K. Agaram2022-08-231-1/+1
| | | | | | | | | | In general it seems like good practice to minimize assumptions about the current color.
| * helper: trimming whitespace from stringsKartik K. Agaram2022-08-231-0/+12
| |
| * helper: file_existsKartik K. Agaram2022-08-231-0/+10
| |
* | Merge lines.loveKartik K. Agaram2022-08-234-46/+68
|\|
| * make App.open_for_* look more like io.openKartik K. Agaram2022-08-231-7/+9
| | | | | | | | Now missing files will result in similar behavior: nil file handles.
| * pass all button params to the iconKartik K. Agaram2022-08-232-2/+3
| |
| * allow buttons to nest as wellKartik K. Agaram2022-08-231-2/+11
| |
| * flip return value of button handlersKartik K. Agaram2022-08-232-6/+4
| | | | | | | | | | | | This is compatible with Javascript, and it also seems like a better default; when people forget to think about return values in click handlers, they should be consumed.
| * stop putting button state in a globalKartik K. Agaram2022-08-233-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symptom: a test (test_click_to_create_drawing) started randomly failing after I inserted a `return` 2 commits ago. Cause: my tests call edit.draw, but button handlers only get cleared in app.draw. So my tests weren't clearing button handlers, and every call to edit.draw was accumulating states. Still unclear why those were going to different state objects after the `return`, but anyway. I'm not going to understand every last thing that happens when things go wrong, just guarantee they can't go wrong. And the way to do that is to decentralize button handlers to each state that receives them. The State object in buttons.lua doesn't have to be Editor_state. It just has to be some table that provides a Schelling Point for shared state.
| * improve explanation for buttonsKartik K. Agaram2022-08-231-1/+4
| |
| * allow buttons to interrupt eventsKartik K. Agaram2022-08-232-2/+6
| | | | | | | | Most button onpress1 handlers will want to return true.
| * indentKartik K. Agaram2022-08-231-1/+3
| |
| * distinguish consistently between mouse buttons and other buttonsKartik K. Agaram2022-08-233-30/+30
| |
* | Merge lines.loveKartik K. Agaram2022-08-220-0/+0
|\|
| * include pensieve.love even though it's in developmentKartik K. Agaram2022-08-221-0/+5
| |
* | Merge lines.loveKartik K. Agaram2022-08-212-1/+4
|\| | | | | | | Bring forks up to date.
| * include a forkKartik K. Agaram2022-08-211-0/+2
| |
| * correct a commentKartik K. Agaram2022-08-211-1/+1
| | | | | | | | We no longer have undo history directly in globals.
* | Merge lines.loveKartik K. Agaram2022-08-192-0/+3
|\|
| * regression: dropping files on the windowKartik K. Agaram2022-08-192-0/+3
| | | | | | | | Also improve the test to catch this next time.
* | Merge lines.loveKartik K. Agaram2022-08-192-4/+6
|\|
| * fix a nameKartik K. Agaram2022-08-191-4/+4
| |
| * reclaim a couple more functions after testsKartik K. Agaram2022-08-191-0/+2
| |
* | Merge lines.loveKartik K. Agaram2022-08-181-2/+2
|\|
| * couple of accidental globalsKartik K. Agaram2022-08-181-2/+2
| | | | | | | | Luckily they didn't bite me yet.
* | Merge lines.loveKartik K. Agaram2022-08-184-52/+41
|\|
| * get rid of some ridiculous codeKartik K. Agaram2022-08-181-15/+5
| | | | | | | | | | | | I guess I wrote it before I settled into the idiom of: * first change cursor * then scroll if necessary
| * spurious argsKartik K. Agaram2022-08-181-18/+18
| |
| * dead codeKartik K. Agaram2022-08-181-2/+0
| |
| * generalize a functionKartik K. Agaram2022-08-183-12/+13
| |
| * drop some obsolete argsKartik K. Agaram2022-08-181-2/+2
| |
| * subsection headings in a long switchKartik K. Agaram2022-08-181-0/+2
| |
| * extract a variableKartik K. Agaram2022-08-181-2/+3
| |
| * simplifyKartik K. Agaram2022-08-181-4/+1
| |
* | Merge lines.loveKartik K. Agaram2022-08-171-5/+2
|\|
| * simpler location comparisonKartik K. Agaram2022-08-171-5/+2
| |
* | Merge lines.loveKartik K. Agaram2022-08-171-4/+5
|\|
| * move caching behavior inside compute_fragmentsKartik K. Agaram2022-08-171-6/+6
| |
| * remove some unnecessary workKartik K. Agaram2022-08-171-1/+3
| |
* | Merge lines.loveKartik K. Agaram2022-08-172-14/+12
|\|
| * standardize scroll check in a few placesKartik K. Agaram2022-08-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | I'm taking some lessons from pensieve.love here. It seem like specific pixel thresholds don't matter too much for plain lines.love. I'd probably feel safer if I just used Text.cursor_out_of_screen in these places, but it means we draw the screen twice for most events[1]. Let's see if we can get by with the current approach. [1] Or we have to start scheduling things for the next draw, which is more complex to orchestrate.
| * simplify cursor-on-screen checkKartik K. Agaram2022-08-172-11/+9
| |
* | Merge lines.loveKartik K. Agaram2022-08-173-8/+8
|\|
| * swap return valuesKartik K. Agaram2022-08-173-8/+8
| |