Losing curses decorations.

J

Joe Keen

I'm working on a small curses application that opens an external
editor occasionally; in the current case I'm testing its running vi.
Once I exit vi and return to the curses application I lose the
background color, window frames, and any text I had on the screen
before I opened vi. I can still see the program functioning though as
it is still responding to key strokes and still updating small
portions of the screen. I'm obviously doing something wrong but so
far I haven't been able to figure out what from the documentation.

I've boiled the problem I'm seeing down to a relatively small program:

import curses
import os

def vitest():
os.system('vi /tmp/foo_bar_baz');
return 1

def quit():
return 0

def nocommand():
return 1

command_table = { 'a' : vitest,
'q' : quit}

def refresh():
screen.refresh()

def keyhandler():
key = screen.getkey()
result = command_table.get(key,nocommand)()
screen.addstr(1,1,"Got: "+key)
return result

def main(stdscr):
global navigation, text, screen
screen = stdscr
screen.border()
screen.addstr(0,1," Test Window ")

refresh()

while keyhandler():
refresh()

curses.wrapper(main)
 
J

Joe Keen

Does redrawing


help?

Peter

It helps a little bit. Using that the line I modified with
screen.addstr(1,1,"Got: "+key) now has the proper background color and
the window decorations on the far ends. Only that line does though.
My understanding is that curses is going to try and redraw as little
as possible. Is there a function to force a full redraw? Or is that
redrawwin function supposed to be doing that?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,738
Latest member
JinaMacvit

Latest Threads

Top