|Anonymous | Login||08-09-2020 06:16 UTC|
|Main | My View | View Issues | Change Log | Docs|
|Viewing Issue Simple Details [ Jump to Notes ]||[ View Advanced ] [ Issue History ] [ Print ]|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0006802||[Squeak Packages] Polymorph||tweak||always||12-07-07 15:13||01-08-08 09:17|
|Reporter||Damien Cassou||View Status||public|
|Summary||0006802: Bug with ScriptManager scrollbars|
each time I generate a squeak-dev image with UI-Enhancements, a graphical bug appears in the ScriptManager. Attached is a screen shot.
You can download an image and see by yourself: ftp://ftp.ofset.org/squeak/squeak-dev/beta/sq3.10-7159dev07.12.1.zip [^]
ui-bug.png [^] (8,033 bytes) 12-07-07 15:13
ScrollBar(971).gif [^] (14,186 bytes) 12-21-07 06:42
ScrollBar-init...eMenuButton.st [^] (1,375 bytes) 01-06-08 00:18
(0011576 - 715 - 799 - 799 - 799 - 799 - 799)
edited on: 12-21-07 06:57
ScrollBar(971).gif uploaded this is an explorer on the visibly munged scroll bar.
The visual problem is that the paging area is getting set to an improper rectangle with an negative width.
This happens in both pluggable list morphs in the ScriptManager.
It does not occur in the pluggable text morphs or in the OBbrowser llist which use OBPanes instead of Pluggable lists.
I am still wondering why. But its very hard to track down whats happening with all the super calls sending messages that get overiden in the self classes. Major mindboggle.
I wonder how OBPane avoids the difficulty? And how is pluggable list morph involved???
Yours in curiosity and service, --Jerome Peace
(0011578 - 108 - 138 - 138 - 138 - 138 - 138)
How did you (Damien) setup your image?
When I open a new ScriptManager Window all looks
(0011579 - 170 - 762 - 762 - 762 - 762 - 762)
documentationManager := (Smalltalk at: #ScriptManager) open
(0011582 - 539 - 587 - 587 - 716 - 716 - 716)
edited on: 12-22-07 01:15
related to 0001231 apparently this is a old but hard to reproduce problem.
My notion is that the up button is being miss-placed so the paging area is also drawn strangely. For some reason the bottom button always gets placed correctly.
Also a non-nil menuButton is present but not shown (owner: nil).
This is confusing some logic I suspect. scroll bars can be vertical or horizontal depending usually on bounds isWide. But I remember seeing at least one test that by passed that test for something supposedly similar. I wonder?
(0011583 - 281 - 341 - 341 - 341 - 341 - 341)
ScrollPane>>#scrollBarThickness is they way the old code refers to things.
ScrollPane>>#scrollbarThickness is the way that gvc refers to things.
So this could be a source of confusion.
I don't believe it was done deliberately because the names are so close.
(0011584 - 369 - 393 - 393 - 393 - 393 - 393)
Well, I expect this may be happening due to the window being opened (indirectly) on the class initialize for DevImageCreator. Possibly if being called during Monticello's loading of the packages. All kinds of weird things can happen if the process isn't the UI process.
Maybe a WorldState>>addDeferredUIMessage: is in order for opening these windows.
Just a guess!
(0011585 - 1343 - 1541 - 1541 - 1541 - 1541 - 1541)
I couldn't figure what 'this' you were refering to?
Anyway more data and an interesting observation.
In the ScriptBrowser:
More the horizontal bar between the two list panels.
Then move the vertical bar between the list panels and the text pane.
The first move causes both the scrollers top button and bottom button to move by the change in the vertical bar.
The second move causes the bottom button to move vertically but surprisingly also causes the top button to move horizontally!
The top button changes it position relative to the bottom button.
The change is related in direction and magnitude to the vertical move of the bar.
Further moves of the vertical bar do not change the relative position of the top button.
So to summarize:
The bottom button seems to always be placed correctly and responds to updates correctly.
The top button can be misplaced by vertical updates (after being sensitized to the change by the horizontal update).
The paging area is figured from the corners of the two buttons and its odd shape reflects the odd placement of the top button.
There is historical info to indicate this weakness is possibly of earlier origin than the current updates.
Now all we have to do is pin it down in the code.
Yours in curiosity and service, --Jeorme Peace
(0011586 - 620 - 704 - 704 - 704 - 704 - 704)
Here is the bug.
When the menu button is not shown (i.e. not one of the submorphs) it needs to be nil.
The script manager scroll bars are initialized by determining where the menu buttons are and then determining where the top button is from the placement of the menu button.
When morphs move the submorphs move with them. But the menu morph does not move because it is not a submorph.
So the top button gets misplaced. Nilling out the menuButton ivar cures the problem when next the list gets resized.
So in initializing the scroller either show the menu button or nil it out.
(0011589 - 394 - 442 - 442 - 442 - 442 - 442)
is the patch that fixes things by having initializeMenuButton be responsible for nilling out the menuButton ivar when menus are not shown.
The following initializeTopButton will then notice this and align itself with the topLeft of the scroll bar. QED*
Yours in service and curiosity, --Jerome Peace
* Quite Easily Done (once you know the trick ;-).
(0011630 - 78 - 102 - 102 - 102 - 102 - 102)
I seemed to have missed uploading the patch. Now done.
(0011639 - 254 - 272 - 272 - 272 - 272 - 272)
In normal usage the problem does not seem to appear and I'd rather not touch that method unnecessarily.
Can I suggest that, Damien, you modify DEVImageCreator>>install to set the preferences before opening the script manager. I expect that may fix it.
(0011641 - 221 - 239 - 239 - 239 - 239 - 239)
«Can I suggest that, Damien, you modify DEVImageCreator>>install to set the preferences before opening the script manager? I expect that may fix it.»
It fixes the bug. Thank you. This is now in ImageForDevelopers-dc.37
|12-07-07 15:13||Damien Cassou||New Issue|
|12-07-07 15:13||Damien Cassou||Status||new => assigned|
|12-07-07 15:13||Damien Cassou||Assigned To||=> GazzaGuru|
|12-07-07 15:13||Damien Cassou||File Added: ui-bug.png|
|12-21-07 06:42||wiz||File Added: ScrollBar(971).gif|
|12-21-07 06:51||wiz||Note Added: 0011576|
|12-21-07 06:57||wiz||Note Edited: 0011576|
|12-21-07 15:09||Nicolai Hess||Note Added: 0011578|
|12-21-07 16:28||Damien Cassou||Note Added: 0011579|
|12-22-07 01:13||wiz||Note Added: 0011582|
|12-22-07 01:15||wiz||Note Edited: 0011582|
|12-22-07 04:38||wiz||Note Added: 0011583|
|12-22-07 14:10||GazzaGuru||Note Added: 0011584|
|12-22-07 19:30||wiz||Note Added: 0011585|
|12-22-07 20:42||wiz||Note Added: 0011586|
|12-23-07 04:15||wiz||Note Added: 0011589|
|01-06-08 00:18||wiz||File Added: ScrollBar-init...eMenuButton.st|
|01-06-08 00:20||wiz||Note Added: 0011630|
|01-07-08 13:13||GazzaGuru||Note Added: 0011639|
|01-08-08 09:17||Damien Cassou||Status||assigned => closed|
|01-08-08 09:17||Damien Cassou||Note Added: 0011641|
|01-08-08 09:17||Damien Cassou||Resolution||open => fixed|
| Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
95 total queries executed.|
55 unique queries executed.