Thread View: comp.bugs.sys5
1 messages
1 total messages
Started by Dominic Alston
Mon, 07 Sep 1992 17:05
CURSES: libpanel bug with libpanel
Author: Dominic Alston
Date: Mon, 07 Sep 1992 17:05
Date: Mon, 07 Sep 1992 17:05
76 lines
2563 bytes
2563 bytes
PANEL's with derived windows does not work with 3 panels active.
libpanel does not cope with derived windows properly.
If you create 3 PANELs, one of them containing a
derived WINDOW, libpanel seems to think parts of the
derived WINDOW need refreshing on a update_panels()
call.
This appears to be a problem with all System V libpanels. (SVR3.2 SVR4.0,..)
The following code demonstrates this problem.
Compile and run the following program (cc bug.c -lpanel -lcurses -o bug)
Once run, use the arrow keys to move the first window.
You will then notice that the bottom window (the PANEL with the derived
WINDOW) seems to get refreshed wrongly.
#include <curses.h>
#include <panel.h>
int main(void)
{
PANEL *p1,*p2,*p3;
WINDOW *a_wn;
int x=11,y=11,c,lx,ly;
initscr();
noecho(); cbreak(); keypad(stdscr,1);
a_wn = newwin(0,0,0,0);
p1 = new_panel(derwin(a_wn,10,40,10,10));
p2 = new_panel(newwin(10,40,11,11));
p3 = new_panel(newwin(10,40,12,12));
for (ly=0; ly < getmaxy(a_wn); ly++)
for (lx=0; lx < getmaxx(a_wn); lx++)
mvwaddch(a_wn,ly,lx,'%');
box(panel_window(p1),0,0);
box(panel_window(p2),0,0);
box(panel_window(p3),0,0);
update_panels();
doupdate();
while ((c = getch()) != '\033') {
switch (c) {
case KEY_UP: y--; break;
case KEY_DOWN: y++; break;
case KEY_LEFT: x--; break;
case KEY_RIGHT: x++; break;
}
move_panel(p3,y,x);
update_panels();
doupdate();
}
endwin();
return (0);
}
I have an application that relies heavily on the use of derived windows,
can anyone suggest a solution ???
If anyone has a rewritten libpanel library, that has the same optimisation
that libplanel gives, then please send it to me!!
--
Dominic Alston
International Computers Ltd.
Lovelace Road. dom@oasis.icl.co.uk ||
Bracknell RG12 4SN ..!uunet!mcvax!ukc!stc!iclbra!dom ||
Berks, England. da16@unix.brighton.ac.uk ||
da16@vms.brighton.ac.uk
Tel: +44 344 424842 x3695
Fax: +44 344 487832
Disclaimer: class myDisclaimer : public stdDisclaimer {
myDisclaimer() : stdDisclaimer() { }
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads