Cursor.st
changeset 2474 bddae0850c56
parent 2473 2d4b51e6eb48
child 2482 7e1e4eaa5ce6
--- a/Cursor.st	Fri Feb 26 00:27:33 1999 +0100
+++ b/Cursor.st	Fri Feb 26 00:40:14 1999 +0100
@@ -2732,7 +2732,7 @@
     "create a new Cursor representing the same cursor as
      myself on aDevice. Dont search the lobby."
 
-    |newCursor id sF mF w h|
+    |newCursor id sF mF w h deviceSf deviceMf|
 
     "ask that device for the cursor"
     shape notNil ifTrue:[
@@ -2744,25 +2744,21 @@
     ] ifFalse:[
         aDevice needDeviceFormsForCursor ifTrue:[
             sourceForm notNil ifTrue:[
-                sF := sourceForm asFormOn:aDevice.
+                sF := deviceSf := sourceForm asFormOn:aDevice.
             ].
             maskForm notNil ifTrue:[
-                mF := maskForm asFormOn:aDevice.
+                mF := deviceMf := maskForm asFormOn:aDevice.
             ] ifFalse:[
                 mF := sF
             ].
-            (sF notNil and:[mF notNil]) ifTrue:[
-                device == aDevice ifTrue:[
-                    sourceForm := sF.
-                    maskForm := mF.
-                ]
-            ].
         ] ifFalse:[
             sourceForm notNil ifTrue:[
-                sF := sourceForm bits
+                sF := sourceForm bits.
+                deviceSf := sourceForm.
             ].
             maskForm notNil ifTrue:[
                 mF := maskForm bits.
+                deviceMf := maskForm.
             ] ifFalse:[
                 mF := sF
             ].
@@ -2795,6 +2791,8 @@
         "receiver was not associated - do it now"
         device := aDevice.
         cursorId := id.
+        sourceForm := deviceSf.
+        maskForm := deviceMf.
 
         "must re-register, the old registration had a nil cursorId in it"
         Lobby registerChange:self.
@@ -2806,8 +2804,8 @@
     shape notNil ifTrue:[
         newCursor setShape:shape.
     ] ifFalse:[
-        newCursor setSourceForm:sourceForm
-                       maskForm:maskForm
+        newCursor setSourceForm:deviceSf
+                       maskForm:deviceMf
                            hotX:hotX
                            hotY:hotY
     ].
@@ -2860,6 +2858,6 @@
 !Cursor class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Cursor.st,v 1.63 1999-02-25 23:26:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Cursor.st,v 1.64 1999-02-25 23:40:14 cg Exp $'
 ! !
 Cursor initialize!