Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | flip return value of button handlers | Kartik K. Agaram | 2022-08-23 | 1 | -2/+1 |
| | | | | | | 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 global | Kartik K. Agaram | 2022-08-23 | 1 | -2/+3 |
| | | | | | | | | | | | | | | | | 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. | ||||
* | allow buttons to interrupt events | Kartik K. Agaram | 2022-08-23 | 1 | -1/+5 |
| | | | | Most button onpress1 handlers will want to return true. | ||||
* | distinguish consistently between mouse buttons and other buttons | Kartik K. Agaram | 2022-08-23 | 1 | -11/+11 |
| | |||||
* | subsection headings in a long switch | Kartik K. Agaram | 2022-08-18 | 1 | -0/+2 |
| | |||||
* | simplify cursor-on-screen check | Kartik K. Agaram | 2022-08-17 | 1 | -5/+3 |
| | |||||
* | remove some duplication | Kartik K. Agaram | 2022-08-14 | 1 | -6/+4 |
| | |||||
* | bugfix: obsolete location for attribute | Kartik K. Agaram | 2022-08-14 | 1 | -2/+2 |
| | |||||
* | click to the left of a line | Kartik K. Agaram | 2022-07-29 | 1 | -2/+4 |
| | |||||
* | copying to clipboard can never scroll | Kartik K. Agaram | 2022-07-27 | 1 | -1/+0 |
| | |||||
* | line.y -> line_cache.starty in a few more places | Kartik K. Agaram | 2022-07-27 | 1 | -8/+8 |
| | | | | | | Disquieting that none of my tests caught these. On the other hand, I also haven't noticed any issues in practice. Perhaps cache invalidation is often unnecessary. | ||||
* | have file API operate on state object | Kartik K. Agaram | 2022-07-25 | 1 | -2/+2 |
| | |||||
* | extract method | Kartik K. Agaram | 2022-07-23 | 1 | -0/+11 |
| | |||||
* | move drawing.starty into line cache | Kartik K. Agaram | 2022-07-20 | 1 | -4/+4 |
| | |||||
* | use line cache for drawings as well | Kartik K. Agaram | 2022-07-20 | 1 | -4/+4 |
| | |||||
* | separate data structure for each line's cache data | Kartik K. Agaram | 2022-07-17 | 1 | -8/+13 |
| | | | | I have no idea what the performance implications of this are.. | ||||
* | keep all text cache writes inside text.lua | Kartik K. Agaram | 2022-07-17 | 1 | -4/+3 |
| | |||||
* | switch to line index in a function | Kartik K. Agaram | 2022-07-17 | 1 | -2/+2 |
| | | | | - Text.to_pos_on_line | ||||
* | switch to line index in a function | Kartik K. Agaram | 2022-07-17 | 1 | -2/+2 |
| | | | | - Text.in_line | ||||
* | drop some extra args | Kartik K. Agaram | 2022-07-17 | 1 | -4/+4 |
| | |||||
* | fold together two largely similar cases | Kartik K. Agaram | 2022-07-17 | 1 | -28/+23 |
| | |||||
* | drop some redundant args from Text.draw | Kartik K. Agaram | 2022-07-17 | 1 | -3/+3 |
| | |||||
* | formatting | Kartik K. Agaram | 2022-07-16 | 1 | -1/+1 |
| | |||||
* | bring back a set of constants | Kartik K. Agaram | 2022-07-16 | 1 | -7/+6 |
| | | | | | It's starting to sink in that I don't want hard-coded constants inside objects. | ||||
* | more precise name | Kartik K. Agaram | 2022-07-15 | 1 | -3/+10 |
| | |||||
* | make test initializations a little more obvious | Kartik K. Agaram | 2022-07-15 | 1 | -7/+17 |
| | |||||
* | a bug I've never run into | Kartik K. Agaram | 2022-07-13 | 1 | -2/+8 |
| | | | | | | The previous commit was failing inside a test that I can't reproduce manually. Perhaps it's something about how often draw/update run in practice. Anyways, it's definitely uncovered a real issue. | ||||
* | replace globals with args in a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -2/+2 |
| | | | | | | | | | - Drawing.draw_shape - Drawing.draw_pending_shape - Drawing.in_drawing - Drawing.find_or_insert_point - Drawing.near - Drawing.pixels | ||||
* | correct a mis-named threshold | Kartik K. Agaram | 2022-07-12 | 1 | -0/+2 |
| | |||||
* | deduce left/right from state where possible | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | left/right margin -> left/right coordinates | Kartik K. Agaram | 2022-07-12 | 1 | -16/+19 |
| | | | | | Editor state initialization now depends on window dimensions, so we have to more carefully orchestrate startup. | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | | | | | | | - Drawing.current_drawing - Drawing.select_shape_at_mouse - Drawing.select_point_at_mouse - Drawing.select_drawing_at_mouse | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -10/+10 |
| | | | | | | | | | | | | | - Text.cursor_at_final_screen_line - Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary - Text.snap_cursor_to_bottom_of_screen - Text.in_line - Text.to_pos_on_line - Text.to2 - Text.to1 - Text.previous_screen_line - Text.tweak_screen_top_and_cursor - Text.redraw_all | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -2/+2 |
| | | | | | - Text.pos_at_start_of_cursor_screen_line - Text.cursor_past_screen_bottom | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -3/+3 |
| | | | | | - Text.search_next - Text.search_previous | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -15/+15 |
| | | | | | | | - record_undo_event - undo_event - redo_event - snapshot | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -3/+3 |
| | | | | | | | | | | | - Text.draw_highlight - Text.clip_selection - Text.selection - Text.cut_selection - Text.delete_selection - Text.delete_selection_without_undo - Text.mouse_pos - Text.to_pos | ||||
* | add state arg to a few functions | Kartik K. Agaram | 2022-07-12 | 1 | -2/+2 |
| | | | | | | | | | | | | | - Text.insert_at_cursor - Text.insert_return - Text.pageup - Text.pagedown - Text.up - Text.down - Text.start_of_line - Text.end_of_line - Text.word_left - Text.word_right | ||||
* | add state arg to Text.textinput | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to schedule_save | Kartik K. Agaram | 2022-07-12 | 1 | -12/+12 |
| | |||||
* | add state arg to Drawing.update | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to Drawing.draw | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to Text.keychord_pressed | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | . | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to Drawing.mouse_released | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to Drawing.keychord_pressed | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to Drawing.mouse_pressed | Kartik K. Agaram | 2022-07-12 | 1 | -1/+1 |
| | |||||
* | add state arg to some functions | Kartik K. Agaram | 2022-07-12 | 1 | -3/+3 |
| | | | | | | - Text.draw - Text.draw_cursor - Text.draw_search_bar | ||||
* | call edit rather than App callbacks in tests | Kartik K. Agaram | 2022-07-12 | 1 | -0/+43 |
| | |||||
* | start passing in Editor_state explicitly | Kartik K. Agaram | 2022-07-12 | 1 | -123/+123 |
| | | | | | | | | | | | | In this commit, top-level edit functions: - edit.draw - edit.update - edit.quit - edit.mouse_pressed - edit.mouse_released - edit.textinput - edit.keychord_pressed - edit.key_released |