By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,359 Members | 2,227 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,359 IT Pros & Developers. It's quick & easy.

Losing curses decorations.

P: n/a
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)
Oct 8 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Joe Keen wrote:
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:
Does redrawing
def vitest():
os.system('vi /tmp/foo_bar_baz');
screen.redrawwin()
screen.refresh()
return 1
help?

Peter
Oct 8 '08 #2

P: n/a
On Oct 8, 1:16 am, Peter Otten <__pete...@web.dewrote:
Joe Keen wrote:
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:

Does redrawing
def vitest():
os.system('vi /tmp/foo_bar_baz');

screen.redrawwin()
screen.refresh()
return 1

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?
Oct 8 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.