Index: lib/Curses/UI.pm =================================================================== RCS file: /u/rse/wrk/cui/cvs/cui/lib/Curses/UI.pm,v retrieving revision 1.1.1.1 diff -u -d -u -d -r1.1.1.1 UI.pm --- lib/Curses/UI.pm 2002/11/20 15:00:33 1.1.1.1 +++ lib/Curses/UI.pm 2002/11/20 15:12:54 @@ -65,6 +65,7 @@ -cursor_mode => 0, # What is the current cursor_mode? -debug => undef, # Turn on debugging mode? -language => undef, # Which language to use? + -overlapping => 1, # Whether overlapping widgets are supported %userargs, @@ -118,6 +119,7 @@ sub clear_on_exit(;$) { shift()->accessor('-clear_on_exit', shift()) } sub cursor_mode(;$) { shift()->accessor('-cursor_mode', shift()) } sub lang(;$) { shift()->accessor('-language_object', shift()) } +sub overlapping(;$) { shift()->accessor('-overlapping', shift()) } # TODO: document sub debug(;$) Index: lib/Curses/UI/Widget.pm =================================================================== RCS file: /u/rse/wrk/cui/cvs/cui/lib/Curses/UI/Widget.pm,v retrieving revision 1.1.1.1 diff -u -d -u -d -r1.1.1.1 Widget.pm --- lib/Curses/UI/Widget.pm 2002/11/20 15:00:33 1.1.1.1 +++ lib/Curses/UI/Widget.pm 2002/11/20 15:41:37 @@ -460,7 +460,7 @@ my $parent = $this->parent; $parent->focus($this) if defined $parent; - $this->draw(1); + $this->draw(1) if ($this->root->overlapping); return $this; } @@ -943,6 +943,8 @@ my $show_cursor = $this->{-nocursor} ? 0 : 1; $this->root->cursor_mode($show_cursor); + $this->draw(1) if (not $this->root->overlapping); + return $this; } @@ -951,6 +953,7 @@ my $this = shift; $this->{-focus} = 0; $this->run_event('-onblur'); + $this->draw(1) if (not $this->root->overlapping); return $this; }