dtas-all
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] dtas-console: support terminal resize


From: Eric Wong
Subject: [PATCH] dtas-console: support terminal resize
Date: Fri, 30 Aug 2013 07:01:31 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

Lightly-tested, but this seems to work.
---
 bin/dtas-console | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/bin/dtas-console b/bin/dtas-console
index f60ae13..3b246bd 100755
--- a/bin/dtas-console
+++ b/bin/dtas-console
@@ -6,14 +6,17 @@
 # Note: no idea what I'm doing, especially w.r.t. curses
 require 'dtas/unix_client'
 require 'dtas/rg_state'
+require 'dtas/sigevent'
 require 'curses'
 require 'yaml'
 
+se = DTAS::Sigevent.new
+trap(:WINCH) { se.signal }
 w = DTAS::UNIXClient.new
 w.req_ok('watch')
 c = DTAS::UNIXClient.new
 cur = YAML.load(c.req('current'))
-readable = [ w, $stdin ]
+readable = [ se, w, $stdin ]
 
 # current rg mode
 rg_mode = DTAS::RGState::RG_MODE.keys.unshift("off")
@@ -146,6 +149,9 @@ begin
     r = IO.select(readable, nil, nil, current ? interval : nil) or next
     r[0].each do |io|
       case io
+      when se
+        se.readable_iter {} # noop, just consume the event
+        Curses.clear
       when w
         event = w.res_wait
         events << "#{Time.now.strftime(tfmt)} #{event}"
-- 
EW




reply via email to

[Prev in Thread] Current Thread [Next in Thread]