From 254eb748256785c903aef0cc66726f97dd95be28 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 12 Sep 2016 12:51:33 -0400 Subject: [PATCH] rodentia --- racket/syndicate-ide/display-terminal.rkt | 2 ++ racket/syndicate-ide/wm.rkt | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/racket/syndicate-ide/display-terminal.rkt b/racket/syndicate-ide/display-terminal.rkt index 428f786..7d48e36 100644 --- a/racket/syndicate-ide/display-terminal.rkt +++ b/racket/syndicate-ide/display-terminal.rkt @@ -1,6 +1,8 @@ #lang racket/base ;; Implicitly provides a factory via display.rkt's `register-tty-backend!`. +(provide (struct-out terminal)) + (require racket/set) (require racket/match) (require (only-in racket/vector vector-copy)) diff --git a/racket/syndicate-ide/wm.rkt b/racket/syndicate-ide/wm.rkt index 02f4430..3bc57c1 100644 --- a/racket/syndicate-ide/wm.rkt +++ b/racket/syndicate-ide/wm.rkt @@ -77,6 +77,7 @@ (require racket/generic) (require racket/match) (require (only-in racket/list flatten)) +(require (prefix-in ansi: ansi)) (require "display.rkt") @@ -387,6 +388,21 @@ (tbox-render-toplevel! toplevel-widget tty) (tty-goto tty 0 0) + (display (string-append (ansi:set-mode ansi:x11-focus-event-mode) + (ansi:set-mode ansi:x11-any-event-mouse-tracking-mode) + (ansi:set-mode ansi:x11-extended-mouse-tracking-mode)) + (terminal-output tty)) + (flush-output (terminal-output tty)) + + (plumber-add-flush! (current-plumber) + (lambda (_handle) + (display (string-append + (ansi:reset-mode ansi:x11-focus-event-mode) + (ansi:reset-mode ansi:x11-any-event-mouse-tracking-mode) + (ansi:reset-mode ansi:x11-extended-mouse-tracking-mode)) + (terminal-output tty)) + (flush-output (terminal-output tty)))) + (let loop () (tty-flush tty) (sync (handle-evt (tty-next-key-evt tty)