Mantis Bugtracker
  

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  
Assigned To GazzaGuru
Priority normal Resolution fixed  
Status closed  
Summary 0006802: Bug with ScriptManager scrollbars
Description Hi,

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 [^]
Additional Information
Attached Files  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

- Relationships

- Notes
(0011576 - 715 - 799 - 799 - 799 - 799 - 799)
wiz
12-21-07 06:51
edited on: 12-21-07 06:57

some analysis

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)
Nicolai Hess
12-21-07 15:09

How did you (Damien) setup your image?
When I open a new ScriptManager Window all looks
good.


Nicolai
 
(0011579 - 170 - 762 - 762 - 762 - 762 - 762)
Damien Cassou
12-21-07 16:28

DevImageCreator>>openDocumentationManager
  documentationManager := (Smalltalk at: #ScriptManager) open
                                position: 0@0;
                                extent: 450@600;
                                model
 
(0011582 - 539 - 587 - 587 - 716 - 716 - 716)
wiz
12-22-07 01:13
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)
wiz
12-22-07 04:38

speed bump

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)
GazzaGuru
12-22-07 14:10

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)
wiz
12-22-07 19:30

Hi Gary,

I couldn't figure what 'this' you were refering to?

Anyway more data and an interesting observation.

For this.
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)
wiz
12-22-07 20:42

Ha.

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.

Cheers, --Jer
 
(0011589 - 394 - 442 - 442 - 442 - 442 - 442)
wiz
12-23-07 04:15

ScrollBar-init...eMenuButton.st

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)
wiz
01-06-08 00:20

Hmm.

I seemed to have missed uploading the patch. Now done.

Cheers -Jer
 
(0011639 - 254 - 272 - 272 - 272 - 272 - 272)
GazzaGuru
01-07-08 13:13

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)
Damien Cassou
01-08-08 09:17

«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
 

- Issue History
Date Modified Username Field Change
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.
Powered by Mantis Bugtracker