diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-09-02 12:08:33 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-09-02 12:08:33 -0700 |
commit | ebffd97f9db442804a75a75749f28f15a8f3f295 (patch) | |
tree | a0de03f21e63e5a5bce33220cf1cf19fe181d84d | |
parent | 449059c44d7145253a61c225bcf1911b6c566d46 (diff) | |
download | mu-ebffd97f9db442804a75a75749f28f15a8f3f295.tar.gz |
2129 - bugfix: clicking on 'menu' bar
-rw-r--r-- | edit.mu | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/edit.mu b/edit.mu index 7d7ccc81..8a99a12c 100644 --- a/edit.mu +++ b/edit.mu @@ -719,13 +719,14 @@ recipe handle-keyboard-event [ ] # process click, return if it was on current editor -# todo: ignores menu bar (for now just displays shortcuts) recipe move-cursor-in-editor [ local-scope screen:address <- next-ingredient editor:address:editor-data <- next-ingredient t:touch-event <- next-ingredient reply-unless editor, 0/false + click-row:number <- get t, row:offset + reply-unless click-row, 0/false # ignore clicks on 'menu' click-column:number <- get t, column:offset left:number <- get *editor, left:offset too-far-left?:boolean <- lesser-than click-column, left @@ -735,8 +736,6 @@ recipe move-cursor-in-editor [ reply-if too-far-right?, 0/false # position cursor +move-cursor-begin - click-row:number <- get t, row:offset - click-column:number <- get t, column:offset editor <- snap-cursor screen, editor, click-row, click-column undo-coalesce-tag:number <- copy 0/never +move-cursor-end @@ -1047,6 +1046,28 @@ scenario editor-handles-mouse-clicks-outside-column [ check-trace-count-for-label 0, [print-character] ] +scenario editor-handles-mouse-clicks-in-menu-area [ + assume-screen 10/width, 5/height + 1:address:array:character <- new [abc] + 2:address:editor-data <- new-editor 1:address:array:character, screen:address, 0/left, 5/right + editor-render screen, 2:address:editor-data + $clear-trace + assume-console [ + # click on first, 'menu' row + left-click 0, 3 + ] + run [ + editor-event-loop screen:address, console:address, 2:address:editor-data + 3:number <- get *2:address:editor-data, cursor-row:offset + 4:number <- get *2:address:editor-data, cursor-column:offset + ] + # no change to cursor + memory-should-contain [ + 3 <- 1 + 4 <- 0 + ] +] + scenario editor-inserts-characters-into-empty-editor [ assume-screen 10/width, 5/height 1:address:array:character <- new [] |