diff --git a/src/cg/03-ui-components.cg b/src/cg/03-ui-components.cg index c99181c..20b4e0c 100644 --- a/src/cg/03-ui-components.cg +++ b/src/cg/03-ui-components.cg @@ -96,7 +96,6 @@ textInput = config \ ui.stateful { # update : State \ Event \ State update = state event \ event | Key { key = c, printable = True } \ - _ = debug "text keydown" c; newText = insertChar state.text state.cursorPos c; newCursorPos = state.cursorPos + 1; newScroll = calcScrollOffset newText newCursorPos state.scrollOffset config.w; diff --git a/src/cg/05-palette.cg b/src/cg/05-palette.cg index b4e8e7b..1c25f26 100644 --- a/src/cg/05-palette.cg +++ b/src/cg/05-palette.cg @@ -52,9 +52,7 @@ palette = config \ w = contentWidth, h = textInputHeight, onChange = text \ batch [config.state.query := text, config.state.focusedIndex := 0], - onKeyDown = key \ - _ = debug "palette key" key; - key + onKeyDown = key \ key | "ArrowUp" \ config.state.focusedIndex := max 0 (config.state.focusedIndex - 1) | "ArrowDown" \ config.state.focusedIndex := (config.state.focusedIndex + 1) | "Enter" \ (\ config.onSelect (unwrapOr "" (nth config.state.focusedIndex results))) diff --git a/src/cg/10-os.cg b/src/cg/10-os.cg index a523974..214c7ed 100644 --- a/src/cg/10-os.cg +++ b/src/cg/10-os.cg @@ -1,6 +1,6 @@ osState = { palette = { - visible = True, + visible = False, query = "", focusedIndex = 0, }, @@ -9,8 +9,7 @@ osState = { init = {}; update = state event \ event - | Key { key = "p", meta = True } \ togglePalette - | Key { key = k } \ debug "key" k + | Key { key = "p", meta = True } \ osState.palette.visible := not (osState.palette.visible) | _ \ state; view = state viewport \ @@ -24,7 +23,7 @@ view = state viewport \ onSelect = item \ (debug "selected" item), viewport = viewport, } - | False \ text { content = "" } + | False \ ui.text { content = "" } ] }; diff --git a/src/runtime-compiled.ts b/src/runtime-compiled.ts index 14469e8..92803eb 100644 --- a/src/runtime-compiled.ts +++ b/src/runtime-compiled.ts @@ -217,11 +217,13 @@ export function runAppCompiled(app: App, canvas: HTMLCanvasElement, rt: any) { } }; + // always send to OS first + handleEvent(event); + if (focusedComponentKey) { handleComponentEvent(focusedComponentKey, event); - } else { - handleEvent(event); } + e.preventDefault(); });