Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: #focusOwner was sent to nil #89

Open
labordep opened this issue Jan 26, 2024 · 3 comments
Open

Error: #focusOwner was sent to nil #89

labordep opened this issue Jan 26, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@labordep
Copy link
Collaborator

labordep commented Jan 26, 2024

Bug when I'm using my application and resizing the window a lot of time.
The list element is inside TabPane, I'm switching between tabs and the bug appears after to open/close/reopen tabs.

image

Important: my image have this patch (not include in Toplo commit):

ToLabel>>initialize

	self class initializeSlots: self.
	super initialize.
	self applySkinInstallerOnFirstRequest: false. "PATCH HERE"
	
	self layout: self defaultLayout.
	self fitContent.

	self lineMode: self defaultLineMode.
	self innerElement: self defaultTextElement.	
	self text: self defaultText.

	self isEditable: false.
	self addEventHandler: self defaultEventHandler 

The stack:

UndefinedObject(Object)>>doesNotUnderstand: #focusOwner
UndefinedObject>>doesNotUnderstand: #focusOwner
ToListPrimarySelectionElement(BlElement)>>attachSpace
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in ToListElement(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToListElement(BlElement)>>childrenDo:
ToListElement(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in MyAppPanel(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
MyAppPanel(BlElement)>>childrenDo:
MyAppPanel(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in ToPane(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToPane(BlElement)>>childrenDo:
ToPane(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in ToPane(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToPane(BlElement)>>childrenDo:
ToPane(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in ToTabPane(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToTabPane(BlElement)>>childrenDo:
ToTabPane(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in BlElement>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in MyAppPanel2(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
MyAppPanel2(BlElement)>>childrenDo:
MyAppPanel2(BlElement)>>dispatchAddedToSceneGraph
[ :anElement |

		anElement isAttachedToSceneGraph
			ifFalse: [ anElement attachSpace ].
		
		anElement dispatchAddedToSceneGraph ] in ToPane(BlElement)>>dispatchAddedToSceneGraph in Block: [ :anElement |...
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToPane(BlElement)>>childrenDo:
ToPane(BlElement)>>dispatchAddedToSceneGraph
ToPane(BlElement)>>dispatchChildAdded:
ToPane(BlElement)>>addChild:at:
ToPane(BlElement)>>addChild:
ToTab>>onSelected
ToTab>>checkableCheckEvent:
[ :event | self checkableCheckEvent: event ] in ToTab>>onAddedToParent in Block: [ :event | self checkableCheckEvent: event ]
FullBlockClosure(BlockClosure)>>cull:
BlEventHandler>>handleEvent:
BlHandlerAnnouncementSubscription>>deliver:
[ subscription deliver: anAnnouncement ] in SubscriptionRegistry>>deliver:to:startingAt: in Block: [ subscription deliver: anAnnouncement ]
FullBlockClosure(BlockClosure)>>ifCurtailed:
SubscriptionRegistry>>deliver:to:startingAt:
SubscriptionRegistry>>deliver:to:
SubscriptionRegistry>>deliver:
Announcer>>announce:
BlHandlerAnnouncerRegistry>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchArrivedEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlElementEventDispatcher(BlEventDispatcher)>>dispatchEvent:
ToTab(BlElement)>>dispatchEvent:
ToTab>>privateChecked:
ToTab>>checked:
ToTab>>switchToNextCheckStateOnClick
ToSkinStateGenerator>>primaryClickEvent:
[ self primaryClickEvent: anEvent ] in ToSkinStateGenerator>>clickEvent: in Block: [ self primaryClickEvent: anEvent ]
BlMousePrimaryButton>>ifPrimary:secondary:middle:other:
BlPrimaryClickEvent(BlMouseEvent)>>ifPrimary:secondary:middle:other:
ToSkinStateGenerator>>clickEvent:
BlPrimaryClickEvent(BlClickEvent)>>sendTo:
ToSkinStateGenerator>>handleEvent:
BlHandlerAnnouncementSubscription>>deliver:
[ subscription deliver: anAnnouncement ] in SubscriptionRegistry>>deliver:to:startingAt: in Block: [ subscription deliver: anAnnouncement ]
FullBlockClosure(BlockClosure)>>ifCurtailed:
SubscriptionRegistry>>deliver:to:startingAt:
SubscriptionRegistry>>deliver:to:
SubscriptionRegistry>>deliver:
Announcer>>announce:
BlHandlerAnnouncerRegistry>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchBubblingEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlElementEventDispatcher(BlBubblingEventDispatcher)>>dispatchEvent:next:
BlEventDispatcherChain>>dispatchEvent:
BlEvent class>>fireEvent:target:
BlEvent class>>fireEvent:
BlMouseProcessor(BlBaseEventProcessor)>>fireEvent:
BlMouseProcessor>>fireEvent:
BlMouseProcessor>>fireClickEventFrom:
BlMouseProcessor>>processMouseUp:
BlMouseProcessor>>handleMouseUp:
BlSpaceEventListener>>mouseUpEvent:
BlPrimaryMouseUpEvent(BlMouseUpEvent)>>sendTo:
BlSpaceEventListener(BlEventListener)>>handleEvent:
BlHandlerAnnouncementSubscription>>deliver:
[ subscription deliver: anAnnouncement ] in SubscriptionRegistry>>deliver:to:startingAt: in Block: [ subscription deliver: anAnnouncement ]
FullBlockClosure(BlockClosure)>>ifCurtailed:
SubscriptionRegistry>>deliver:to:startingAt:
SubscriptionRegistry>>deliver:to:
SubscriptionRegistry>>deliver:
Announcer>>announce:
BlHandlerAnnouncerRegistry>>dispatchEvent:
BlDirectEventDispatcher>>dispatchEvent:next:
BlDirectEventDispatcher(BlEventDispatcher)>>dispatchEvent:
[
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] in [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ] in [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] in [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ] in [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ] in [ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [...
FullBlockClosure(BlockClosure)>>cull:
BlSpace>>hostSpaceDo:ifAbsent:
BlSpace>>hostSpaceDo:
[
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ] in [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] in [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ] in [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ] in [ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
BlNullTelemetry(BlTelemetry)>>timeSync:during:
[ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] in [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ] in [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ] in [ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [ :anEvent |...
LinkedList>>do:
BlHostEventFetcher>>fetchedEventsDo:
BlOSWindowSDL2HostSpace(BlOSWindowHostSpace)>>fetchedEventsDo:
[ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ] in [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ] in [ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [ :aHostSpace |...
FullBlockClosure(BlockClosure)>>cull:
BlSpace>>hostSpaceDo:ifAbsent:
BlSpace>>hostSpaceDo:
[ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ] in [ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [ ...
FullBlockClosure(BlockClosure)>>cull:
BlSpace>>hostSpaceDo:ifAbsent:
BlSpace>>hostSpaceDo:
[ :theSpace |
			"We must update focused element before processing events, otherwise keyboard events,
			for example, will be handled by the wrong element"
			aSpace doUpdateFocus.

			theSpace hostSpaceDo: [ 
				"Process events enqueued by host space and dispatch them to the scene graph"

				theSpace eventRecorder onPulse.

				theSpace hostSpaceDo: [ :aHostSpace |
					aHostSpace fetchedEventsDo: [ :anEvent |
					"we have to test for existance of the host space before handling each event because
					it is possible that a space is closed due to an event"
					
					theSpace telemetry
						timeSync: [ 'Process event {1}' format: { anEvent } ]
						during: [
							theSpace hostSpaceDo: [
								theSpace eventRecorder record: anEvent.
								theSpace eventDispatcher dispatchEvent: anEvent ] ]  ] ].
				
				theSpace hostSpaceDo: [ :aHostSpace | aHostSpace generateEvents ] ].
			theSpace mouseProcessor generateEvents ] in BlSpaceFrameEventPhase>>runOn: in Block: [ :theSpace |...
FullBlockClosure(BlockClosure)>>cull:
BlSpace>>dispatchTimeEvent:during:
BlSpaceFrameEventPhase>>runOn:
BlSpaceFrame>>runCurrentPhaseOn:
BlSpaceFrame>>runOn:
BlSpace>>processPulse
BlSpace>>pulse
[ :eachSpace | eachSpace pulse ] in [
		self tryToRunDeferredActions.
		spaceManager do: [ :eachSpace | eachSpace pulse ]
	] in BlParallelUniverse>>pulseSynchronously in Block: [ :eachSpace | eachSpace pulse ]
Array(SequenceableCollection)>>do:
BlSpaceManager>>do:
[
		self tryToRunDeferredActions.
		spaceManager do: [ :eachSpace | eachSpace pulse ]
	] in BlParallelUniverse>>pulseSynchronously in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
BlParallelUniverse>>pulseSynchronously
[ self pulseSynchronously ] in BlParallelUniverse>>pulse in Block: [ self pulseSynchronously ]
FullBlockClosure(BlockClosure)>>ensure:
BlParallelUniverse>>pulse
[
			pulseStartMS := Time millisecondClockValue.

			(BlParallelUniverse forHost: hostClass) pulse.

			pulseDurationMS := Time millisecondClockValue - pulseStartMS.

			self waitUntilNextPulse 
		
		] in [ [
			pulseStartMS := Time millisecondClockValue.

			(BlParallelUniverse forHost: hostClass) pulse.

			pulseDurationMS := Time millisecondClockValue - pulseStartMS.

			self waitUntilNextPulse 
		
		] doWhileTrue: [ loopProcess == Processor activeProcess ] ] in BlHostPulseLoop>>newLoopBlock in Block: [...
FullBlockClosure(BlockClosure)>>doWhileTrue:
[ [
			pulseStartMS := Time millisecondClockValue.

			(BlParallelUniverse forHost: hostClass) pulse.

			pulseDurationMS := Time millisecondClockValue - pulseStartMS.

			self waitUntilNextPulse 
		
		] doWhileTrue: [ loopProcess == Processor activeProcess ] ] in BlHostPulseLoop>>newLoopBlock in Block: [ [...
[self value.
			"IMPORTANT: Do not step over next line of code. See method comments for details"
			Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess in Block: [self value....

My config:

  • Toplo:main commit 2024-01-18 (2399e68)
  • Bloc commit 2024-01-17 (db868adae4779de3f7e40866f73ce2939afc8fbc)
  • Windows 10 Pro 64bits
  • Pharo-11.0.0+build.721
  • VM 10.0.9.0
@labordep labordep added the bug Something isn't working label Jan 26, 2024
@labordep
Copy link
Collaborator Author

Same problem when I'm trying to edit my application view in Pyramid (F12 shortcut):

image

@labordep labordep changed the title #focusOwner was sent to nil Error: #focusOwner was sent to nil Jan 26, 2024
@labordep
Copy link
Collaborator Author

Same problem on latest Toplo/Bloc commit of today

@LouisePla
Copy link
Collaborator

LouisePla commented Jan 29, 2024

Same error when I play with the selection on the lists below :

|tabsPanel list1 list2 tab1 tab2|

list1 := ToListElement new.
list1 constraints vertical matchParent.
list1 constraints horizontal matchParent.
1 to: 10 do: [ :i | list1 data add: 'Hello ' , i asString ].

list2 := ToListElement new.
list2 constraints vertical matchParent.
list2 constraints horizontal matchParent.
11 to: 20 do: [ :i | list1 data add: 'Goodbye ' , i asString ].

tabsPanel := ToTabPane new.

tab1 := ToTab new.
tab1 labelText: 'Hello'.
tab1 paneBuilder: [ :pane :theTabPane | pane addChild: list1 ].

tab2 := ToTab new.
tab2 labelText: 'Goodbye'.
tab2 paneBuilder: [ :pane :theTabPane | pane addChild: list2 ].

tabsPanel add: tab1.
tabsPanel add: tab2.
tabsPanel openInSpace

plantec added a commit that referenced this issue Jan 29, 2024
not  not surethat it  fixes definitively the issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants