[squeak-dev] The Inbox: Morphic-nice.635.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Jan 22 21:59:40 UTC 2013
A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.635.mcz
==================== Summary ====================
Name: Morphic-nice.635
Author: nice
Time: 22 January 2013, 10:57:07.833 pm
UUID: 3a69be3a-68a2-47aa-86e5-1aa7147bcb38
Ancestors: Morphic-dtl.634
Let TheWorldMainDockingBar points weakly on opened windows.
Otherwise they won't be garbage collected until next time the 'windows' menu is opened.
=============== Diff against Morphic-dtl.634 ===============
Item was changed:
----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'submenu - windows') -----
listWindowsOn: menu
| windows |
windows := SortedCollection sortBlock: [:winA :winB |
winA model name = winB model name
ifTrue: [winA label < winB label]
ifFalse: [winA model name < winB model name]].
windows addAll: self allVisibleWindows.
windows ifEmpty: [
menu addItem: [ :item |
item
contents: 'No Windows' translated;
isEnabled: false ] ].
windows do: [ :each |
+ | weak |
+ weak := WeakArray with: each.
menu addItem: [ :item |
item
contents: (self windowMenuItemLabelFor: each);
icon: (self colorIcon: each model defaultBackgroundColor);
- target: each;
- selector: #comeToFront;
subMenuUpdater: self
+ selector: #windowMenuFor:on:
+ arguments: { weak };
+ action: [ weak first ifNotNil: [:w | w activateAndForceLabelToShow; expand ] ] ] ].!
- selector: #windowMenuFor:on:
- arguments: { each };
- action: [ each activateAndForceLabelToShow; expand ] ] ].!
Item was changed:
----- Method: TheWorldMainDockingBar>>windowMenuFor:on: (in category 'submenu - windows') -----
+ windowMenuFor: weakArray on: menu
+ weakArray first
+ ifNil:
+ [menu
+ addItem: [ :item |
+ item
+ contents: 'already closed...' translated ;
+ isEnabled: false ]]
+ ifNotNil:
+ [:window |
+ menu
+ addItem: [ :item |
+ item
+ contents: 'Close' translated ;
+ target: window;
+ selector: #delete ];
+ addItem: [ :item |
+ item
+ contents: 'Close all like this' translated ;
+ target: self;
+ selector: #closeAllWindowsLike:;
+ arguments: { window } ];
+ addItem: [ :item |
+ item
+ contents: 'Close all but this' translated ;
+ target: self;
+ selector: #closeAllWindowsBut:;
+ arguments: { window } ];
+ addItem: [ :item |
+ item
+ contents: 'Expand or Contract' translated ;
+ target: window;
+ selector: #expandBoxHit ] ]!
- windowMenuFor: window on: menu
- menu
- addItem: [ :item |
- item
- contents: 'Close' translated ;
- target: window;
- selector: #delete ];
- addItem: [ :item |
- item
- contents: 'Close all like this' translated ;
- target: self;
- selector: #closeAllWindowsLike:;
- arguments: { window } ];
- addItem: [ :item |
- item
- contents: 'Close all but this' translated ;
- target: self;
- selector: #closeAllWindowsBut:;
- arguments: { window } ];
- addItem: [ :item |
- item
- contents: 'Expand or Contract' translated ;
- target: window;
- selector: #expandBoxHit ]!
More information about the Squeak-dev
mailing list
|