[New-bugs-announce] [issue39475] window.getmaxyx() doesn't return updated height when window is resized
nova
report at bugs.python.org
Tue Jan 28 04:43:09 EST 2020
New submission from nova <nova.parker at gmx.com>:
Package : python(v3.6.9)
Severity: normal
When a window object has been created using curses.newwin(), increasing
the terminal size produces the KEY_RESIZE events, but getmaxyx() returns
the previous terminal size. Only by decreasing the terminal size does it
return the correct terminal dimensions.
Attachment includes:
1. video demonstrating the effect
Following is the script to reproduce the effect:
import curses
def init_curses():
curses.initscr()
window = curses.newwin(curses.LINES - 1, curses.COLS, 0, 0)
# window = curses.initscr()
curses.raw()
curses.noecho()
curses.cbreak()
window.keypad(True)
return window
def restore_terminal(window):
curses.noraw()
curses.nocbreak()
window.keypad(False)
curses.echo()
curses.endwin()
def main():
try:
window = init_curses()
resize_no = 0
maxy, maxx = window.getmaxyx()
dimension_string = "resize_no: " + str(resize_no) + ". maxy: " + str(maxy) + "; maxx: " + str(maxx) + '\n'
window.addstr(dimension_string)
while True:
ch = window.getch()
window.clear()
if ch == curses.KEY_RESIZE:
resize_no += 1
maxy, maxx = window.getmaxyx()
dimension_string = "resize_no: " + str(resize_no) + ". maxy: " + str(maxy) + "; maxx: " + str(maxx) + '\n'
window.addstr(dimension_string)
finally:
restore_terminal(window)
if __name__ == '__main__':
main()
----------
components: Extension Modules
files: bug_curses.mp4
messages: 360849
nosy: nova
priority: normal
severity: normal
status: open
title: window.getmaxyx() doesn't return updated height when window is resized
type: behavior
versions: Python 3.6
Added file: https://bugs.python.org/file48868/bug_curses.mp4
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39475>
_______________________________________
More information about the New-bugs-announce
mailing list