Losing curses decorations.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Joe Keen

    #1

    Losing curses decorations.

    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.g et(key,nocomman d)()
    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)
  • Peter Otten

    #2
    Re: Losing curses decorations.

    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.redrawwi n()
    screen.refresh( )
    return 1
    help?

    Peter

    Comment

    • Joe Keen

      #3
      Re: Losing curses decorations.

      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.redrawwi n()
      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?

      Comment

      Working...