[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Ocaml-tmk-devel] Handling xterm resizing
From: |
Erik de Castro Lopo |
Subject: |
Re: [Ocaml-tmk-devel] Handling xterm resizing |
Date: |
Mon, 1 Nov 2010 15:14:24 +1100 |
Paul Pelzl wrote:
> On Sun, Oct 31, 2010 at 7:26 PM, Erik de Castro Lopo <
> address@hidden <address@hidden>> wrote:
>
> > I've just noticed something strange. I do indeed get a KEY_RESIZE
> > character from Curses.getch(), but only after I get another key.
> >
>
> Could you post your code for this test case?
Code follows.
CHeers,
Erik
let (count, resize) = ref 0, ref 0
let draw_window w =
assert (Curses.wmove w 0 0) ;
let text = Printf.sprintf "Key.resize : %d / %d" !resize !count in
assert (Curses.mvaddstr 10 10 text)
let key_handler w =
let ch = ref 0 in
while !ch != 113 do
count := succ !count ;
draw_window w ;
assert (Curses.wrefresh w) ;
ch := Curses.getch () ;
if !ch == Curses.Key.resize then
( resize := succ !resize ;
Curses.clear () ;
)
done
let () =
Sys.set_signal Sys.sigint Sys.Signal_ignore ;
let w = Curses.initscr () in
( try Curses.winch_handler_on ()
with Invalid_argument "winch_handler_on" -> ()
) ;
if Curses.has_colors () then
( assert (Curses.start_color ()) ;
assert (Curses.init_pair 1 Curses.Color.white Curses.Color.red)
) ;
assert (Curses.cbreak ()) ;
assert (Curses.noecho ()) ;
assert (Curses.intrflush w false) ;
assert (Curses.keypad w true) ;
assert (Curses.curs_set 0) ; (* hide the
cursor. *)
Curses.nonl () ;
draw_window w ;
let (trows, tcols) = Curses.get_size () in
key_handler w ;
Curses.endwin () ;
Printf.printf "Term size : %d x %d\n" trows tcols
>
> Paul
--
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
- Re: [Ocaml-tmk-devel] Handling xterm resizing,
Erik de Castro Lopo <=