about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-09-02 12:08:33 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-09-02 12:08:33 -0700
commitebffd97f9db442804a75a75749f28f15a8f3f295 (patch)
treea0de03f21e63e5a5bce33220cf1cf19fe181d84d
parent449059c44d7145253a61c225bcf1911b6c566d46 (diff)
downloadmu-ebffd97f9db442804a75a75749f28f15a8f3f295.tar.gz
2129 - bugfix: clicking on 'menu' bar
-rw-r--r--edit.mu27
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 []