Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 507367

Summary: InfiniteCanvas does not update its set of bounds and its scrollbars when the scroll offset is changed.
Product: [Tools] GEF Reporter: Matthias Wienand <matthias.wienand>
Component: GEF FXAssignee: Matthias Wienand <matthias.wienand>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 1.0.0   
Target Milestone: 5.0.0 (Oxygen) M4   
Hardware: All   
OS: All   
Whiteboard:

Description Matthias Wienand CLA 2016-11-10 11:25:20 EST
Currently, InfiniteCanvas uses listeners to update its contentBoundsProperty, scrollableBoundsProperty, and the visibility, position, min, max, and value of its scroll bars. However, the listeners do not register scroll offset changes. Moreover, the properties and scroll bars are also updated manually when scrollbars are interacted with and when the content transformation is changed via the setter. These manual updates should not be necessary.
Comment 1 Matthias Wienand CLA 2016-11-11 08:55:56 EST
I ensured that the scroll bars and bounds properties of the InfiniteCanvas are updated when the scroll offset is changed. This is done by registering a listener on the boundsInParent property of the scrolled pane instead of its boundsInLocal property. This is because the scroll offset is implemented as a translation of the scrolled pane. Such a translation is not part of the boundsInLocal, but it is part of the boundsInParent. The code is published on the master branch, therefore, I resolve this ticket as fixed for 5.0.0 M4.