Browse Source

Fix for class-side selection

Nicolas Petton 12 years ago
parent
commit
d4b5612fda
3 changed files with 17 additions and 11 deletions
  1. 6 4
      js/Helios-Browser.deploy.js
  2. 7 5
      js/Helios-Browser.js
  3. 4 2
      st/Helios-Browser.st

+ 6 - 4
js/Helios-Browser.deploy.js

@@ -492,8 +492,10 @@ smalltalk.method({
 selector: "onClassSelected:",
 fn: function (aClass){
 var self=this;
+var selectedClass;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
-_st(self)._selectedItem_(aClass);
+selectedClass=_st(aClass)._theNonMetaClass();
+_st(self)._selectedItem_(selectedClass);
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 $2=self;
@@ -504,12 +506,12 @@ $1;
 $3=_st(self)._hasFocus();
 if(! smalltalk.assert($3)){
 $4=self;
-_st($4)._activateItem_(aClass);
+_st($4)._activateItem_(selectedClass);
 $5=_st($4)._focus();
 $5;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"onClassSelected:",{aClass:aClass},smalltalk.HLClassesListWidget)})},
-messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
+return self}, function($ctx1) {$ctx1.fill(self,"onClassSelected:",{aClass:aClass,selectedClass:selectedClass},smalltalk.HLClassesListWidget)})},
+messageSends: ["theNonMetaClass", "selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLClassesListWidget);
 
 smalltalk.addMethod(

+ 7 - 5
js/Helios-Browser.js

@@ -653,8 +653,10 @@ selector: "onClassSelected:",
 category: 'reactions',
 fn: function (aClass){
 var self=this;
+var selectedClass;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
-_st(self)._selectedItem_(aClass);
+selectedClass=_st(aClass)._theNonMetaClass();
+_st(self)._selectedItem_(selectedClass);
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 $2=self;
@@ -665,14 +667,14 @@ $1;
 $3=_st(self)._hasFocus();
 if(! smalltalk.assert($3)){
 $4=self;
-_st($4)._activateItem_(aClass);
+_st($4)._activateItem_(selectedClass);
 $5=_st($4)._focus();
 $5;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"onClassSelected:",{aClass:aClass},smalltalk.HLClassesListWidget)})},
+return self}, function($ctx1) {$ctx1.fill(self,"onClassSelected:",{aClass:aClass,selectedClass:selectedClass},smalltalk.HLClassesListWidget)})},
 args: ["aClass"],
-source: "onClassSelected: aClass\x0a\x09self selectedItem: aClass.\x0a\x09aClass ifNil: [ ^ self ].\x0a\x0a\x09self hasFocus ifFalse: [\x0a\x09\x09self \x0a\x09\x09\x09activateItem: aClass;\x0a\x09\x09\x09focus ]",
-messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"],
+source: "onClassSelected: aClass\x0a\x09| selectedClass |\x0a\x09selectedClass := aClass theNonMetaClass.\x0a\x09self selectedItem: selectedClass.\x0a\x09aClass ifNil: [ ^ self ].\x0a\x0a\x09self hasFocus ifFalse: [\x0a\x09\x09self \x0a\x09\x09\x09activateItem: selectedClass;\x0a\x09\x09\x09focus ]",
+messageSends: ["theNonMetaClass", "selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"],
 referencedClasses: []
 }),
 smalltalk.HLClassesListWidget);

+ 4 - 2
st/Helios-Browser.st

@@ -241,12 +241,14 @@ onClassRemoved: aClass
 !
 
 onClassSelected: aClass
-	self selectedItem: aClass.
+	| selectedClass |
+	selectedClass := aClass theNonMetaClass.
+	self selectedItem: selectedClass.
 	aClass ifNil: [ ^ self ].
 
 	self hasFocus ifFalse: [
 		self 
-			activateItem: aClass;
+			activateItem: selectedClass;
 			focus ]
 !