Path: utzoo!attcan!uunet!cs.utexas.edu!rutgers!apple!bloom-beacon!EXPO.LCS.MIT.EDU!rws From: rws@EXPO.LCS.MIT.EDU Newsgroups: comp.windows.x Subject: Re: Changing Screens/Cursor Warping problem Message-ID: <8904261207.AA04559@expire.lcs.mit.edu> Date: 26 Apr 89 12:07:42 GMT References: <5032@b11.ingr.com> Sender: daemon@bloom-beacon.MIT.EDU Organization: The Internet Lines: 31 What is the proper behavior for the cursor when a server changes screens? Something proper, of course. :-) What you describe is a known bug in the R3 server. There is no blessed fix at this point (and probably won't be until R4, given how much server sources have changed since R3 already). FYI, here's a suggested fix we received; it will have to be up to you to decide if it's the right one: CheckMotion is called when a motion event is generated. With few exceptions, the x and y values will be different from the sprite.hot values. It seems that the easiest way to fix this is for CheckMotion to call XYToWindow unconditionally and eliminate the setting of sprite.hot in ConfineCursorToWindow. SAMPLE FIX: (the suggestion is to delete the indicated lines) 294a295,296 > sprite.hot.x = -1; /* cause new sprite win computation */ > sprite.hot.y = -1; 1067a1070,1071 > if ((x != sprite.hot.x) || (y != sprite.hot.y)) > { 1077a1082,1087 > } > else > { > if ((ignoreCache) || (!sprite.win)) > sprite.win = XYToWindow(x, y); > }