'From Squeak3.5 of ''11 April 2003'' [latest update: #5180] on 31 May 2003 at 12:44:56 pm'! !Cursor class methodsFor: 'current cursor' stamp: 'sumim 5/27/2003 05:47'! currentCursor: aCursor "Make the instance of cursor, aCursor, be the current cursor. Display it. Create an error if the argument is not a Cursor." | aForm | (aCursor isKindOf: self) ifTrue: [ CurrentCursor _ aCursor. (aForm _ aCursor = Cursor normal ifTrue: [Cursor blank] ifFalse: [aCursor]) displayAt: 2@2 - aForm offset. aCursor beCursor] ifFalse: [ self error: 'The new cursor must be an instance of class Cursor']! ! !HandMorph methodsFor: '*connectors-drawing' stamp: 'sumim 5/26/2003 21:42'! needsToBeDrawn "Return true if this hand must be drawn explicitely instead of being drawn via the hardware cursor. This is the case if it (a) it is a remote hand, (b) it is showing a temporary cursor, or (c) it is not empty. If using the software cursor, ensure that the hardware cursor is hidden." "Details: Return true if this hand has a saved patch to ensure that is is processed by the world. This saved patch will be deleted after one final display pass when it becomes possible to start using the hardware cursor again. This trick gives us one last display cycle to allow us to remove the software cursor and shadow from the display." [(savedPatch notNil or:[(submorphs size > 0) or:[temporaryCursor ~~ nil or:[self hasUserInformation]]]) ifTrue: [ "using the software cursor; hide the hardware one" Sensor currentCursor == Cursor blank ifFalse: [Cursor blank show]. ^ true]]. ^ true ! !