plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit fb243a134de240cfafd3eb9db4545d0db5f01638
parent c51c29052ee4a356d345424249024c67c2ec05ae
Author: Russ Cox <rsc@swtch.com>
Date:   Thu, 14 Jan 2010 13:47:19 -0800

devdraw: handle kEventWindowDrawContent

makes windows redraw properly when moved
between screens when monitors get shuffled around

R=
CC=
http://codereview.appspot.com/189076

Diffstat:
Msrc/cmd/devdraw/osx-screen-carbon.m | 8++++++++
1 file changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/cmd/devdraw/osx-screen-carbon.m b/src/cmd/devdraw/osx-screen-carbon.m @@ -381,6 +381,7 @@ _screeninit(void) const EventTypeSpec cmds[] = { { kEventClassWindow, kEventWindowClosed }, { kEventClassWindow, kEventWindowBoundsChanged }, + { kEventClassWindow, kEventWindowDrawContent }, { kEventClassCommand, kEventCommandProcess }, { kEventClassWindow, kEventWindowActivated }, { kEventClassWindow, kEventWindowDeactivated }, @@ -519,6 +520,13 @@ eventhandler(EventHandlerCallRef next, EventRef event, void *arg) eresized(1); break; + case kEventWindowDrawContent:; + // The update says what rectangle needs drawing, + // but just draw everything. + Rectangle r = Rect(0, 0, Dx(osx.screenr), Dy(osx.screenr)); + _flushmemscreen(r); + break; + case kEventWindowActivated: if(!osx.collapsed) activated(1);