1
0
فهرست منبع

Do not activate list items on selection if the list already has the focus

Nicolas Petton 12 سال پیش
والد
کامیت
455832a30a
3فایلهای تغییر یافته به همراه96 افزوده شده و 60 حذف شده
  1. 37 21
      js/Helios-Browser.deploy.js
  2. 41 25
      js/Helios-Browser.js
  3. 18 14
      st/Helios-Browser.st

+ 37 - 21
js/Helios-Browser.deploy.js

@@ -492,7 +492,7 @@ smalltalk.method({
 selector: "onClassSelected:",
 selector: "onClassSelected:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aClass);
 _st(self)._selectedItem_(aClass);
 $1=aClass;
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -501,11 +501,15 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aClass);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aClass);
+$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},smalltalk.HLClassesListWidget)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLClassesListWidget);
 smalltalk.HLClassesListWidget);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -983,7 +987,7 @@ smalltalk.method({
 selector: "onMethodSelected:",
 selector: "onMethodSelected:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aMethod);
 _st(self)._selectedItem_(aMethod);
 $1=aMethod;
 $1=aMethod;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -992,11 +996,15 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aMethod);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aMethod);
+$5=_st($4)._focus();
+$5;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onMethodSelected:",{aMethod:aMethod},smalltalk.HLMethodsListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onMethodSelected:",{aMethod:aMethod},smalltalk.HLMethodsListWidget)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLMethodsListWidget);
 smalltalk.HLMethodsListWidget);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -1298,13 +1306,17 @@ smalltalk.method({
 selector: "onPackageSelected:",
 selector: "onPackageSelected:",
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=self;
-_st($1)._selectedItem_(aPackage);
-_st($1)._activateItem_(aPackage);
-$2=_st($1)._focus();
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
+_st(self)._selectedItem_(aPackage);
+$1=_st(self)._hasFocus();
+if(! smalltalk.assert($1)){
+$2=self;
+_st($2)._activateItem_(aPackage);
+$3=_st($2)._focus();
+$3;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onPackageSelected:",{aPackage:aPackage},smalltalk.HLPackagesListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onPackageSelected:",{aPackage:aPackage},smalltalk.HLPackagesListWidget)})},
-messageSends: ["selectedItem:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLPackagesListWidget);
 smalltalk.HLPackagesListWidget);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -1480,7 +1492,7 @@ smalltalk.method({
 selector: "onProtocolSelected:",
 selector: "onProtocolSelected:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aString);
 _st(self)._selectedItem_(aString);
 $1=aString;
 $1=aString;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1489,11 +1501,15 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aString);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aString);
+$5=_st($4)._focus();
+$5;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onProtocolSelected:",{aString:aString},smalltalk.HLProtocolsListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onProtocolSelected:",{aString:aString},smalltalk.HLProtocolsListWidget)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLProtocolsListWidget);
 smalltalk.HLProtocolsListWidget);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(

+ 41 - 25
js/Helios-Browser.js

@@ -653,7 +653,7 @@ selector: "onClassSelected:",
 category: 'reactions',
 category: 'reactions',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aClass);
 _st(self)._selectedItem_(aClass);
 $1=aClass;
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -662,13 +662,17 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aClass);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aClass);
+$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},smalltalk.HLClassesListWidget)})},
 args: ["aClass"],
 args: ["aClass"],
-source: "onClassSelected: aClass\x0a\x09self selectedItem: aClass.\x0a\x09aClass ifNil: [ ^ self ].\x0a    \x0a\x09self \x0a\x09\x09activateItem: aClass;\x0a\x09\x09focus",
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"],
+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"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
 smalltalk.HLClassesListWidget);
 smalltalk.HLClassesListWidget);
@@ -1279,7 +1283,7 @@ selector: "onMethodSelected:",
 category: 'reactions',
 category: 'reactions',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aMethod);
 _st(self)._selectedItem_(aMethod);
 $1=aMethod;
 $1=aMethod;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1288,13 +1292,17 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aMethod);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aMethod);
+$5=_st($4)._focus();
+$5;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onMethodSelected:",{aMethod:aMethod},smalltalk.HLMethodsListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onMethodSelected:",{aMethod:aMethod},smalltalk.HLMethodsListWidget)})},
 args: ["aMethod"],
 args: ["aMethod"],
-source: "onMethodSelected: aMethod\x0a\x09self selectedItem: aMethod.\x0a\x09aMethod ifNil: [ ^ self ].\x0a    \x0a    self \x0a\x09\x09activateItem: aMethod;\x0a\x09\x09focus",
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"],
+source: "onMethodSelected: aMethod\x0a\x09self selectedItem: aMethod.\x0a\x09aMethod ifNil: [ ^ self ].\x0a    \x0a\x09self hasFocus ifFalse: [\x0a\x09\x09self \x0a\x09\x09\x09activateItem: aMethod;\x0a\x09\x09\x09focus ]",
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
 smalltalk.HLMethodsListWidget);
 smalltalk.HLMethodsListWidget);
@@ -1689,15 +1697,19 @@ selector: "onPackageSelected:",
 category: 'reactions',
 category: 'reactions',
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=self;
-_st($1)._selectedItem_(aPackage);
-_st($1)._activateItem_(aPackage);
-$2=_st($1)._focus();
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
+_st(self)._selectedItem_(aPackage);
+$1=_st(self)._hasFocus();
+if(! smalltalk.assert($1)){
+$2=self;
+_st($2)._activateItem_(aPackage);
+$3=_st($2)._focus();
+$3;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onPackageSelected:",{aPackage:aPackage},smalltalk.HLPackagesListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onPackageSelected:",{aPackage:aPackage},smalltalk.HLPackagesListWidget)})},
 args: ["aPackage"],
 args: ["aPackage"],
-source: "onPackageSelected: aPackage\x0a\x09self \x0a\x09\x09selectedItem: aPackage;\x0a\x09\x09activateItem: aPackage;\x0a\x09\x09focus",
-messageSends: ["selectedItem:", "activateItem:", "focus"],
+source: "onPackageSelected: aPackage\x0a\x09self selectedItem: aPackage.\x0a\x09self hasFocus ifFalse: [\x0a\x09\x09self\x0a\x09\x09\x09activateItem: aPackage;\x0a\x09\x09\x09focus ]",
+messageSends: ["selectedItem:", "ifFalse:", "activateItem:", "focus", "hasFocus"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
 smalltalk.HLPackagesListWidget);
 smalltalk.HLPackagesListWidget);
@@ -1921,7 +1933,7 @@ selector: "onProtocolSelected:",
 category: 'reactions',
 category: 'reactions',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 _st(self)._selectedItem_(aString);
 _st(self)._selectedItem_(aString);
 $1=aString;
 $1=aString;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1930,13 +1942,17 @@ return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=self;
-_st($3)._activateItem_(aString);
-$4=_st($3)._focus();
+$3=_st(self)._hasFocus();
+if(! smalltalk.assert($3)){
+$4=self;
+_st($4)._activateItem_(aString);
+$5=_st($4)._focus();
+$5;
+};
 return self}, function($ctx1) {$ctx1.fill(self,"onProtocolSelected:",{aString:aString},smalltalk.HLProtocolsListWidget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"onProtocolSelected:",{aString:aString},smalltalk.HLProtocolsListWidget)})},
 args: ["aString"],
 args: ["aString"],
-source: "onProtocolSelected: aString\x0a\x09self selectedItem: aString.\x0a\x09aString ifNil: [ ^ self ].\x0a    \x0a    self \x0a\x09\x09activateItem: aString;\x0a\x09\x09focus",
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"],
+source: "onProtocolSelected: aString\x0a\x09self selectedItem: aString.\x0a\x09aString ifNil: [ ^ self ].\x0a    \x0a\x09self hasFocus ifFalse: [\x0a\x09\x09self \x0a\x09\x09\x09activateItem: aString;\x0a\x09\x09\x09focus ]",
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
 smalltalk.HLProtocolsListWidget);
 smalltalk.HLProtocolsListWidget);

+ 18 - 14
st/Helios-Browser.st

@@ -243,10 +243,11 @@ onClassRemoved: aClass
 onClassSelected: aClass
 onClassSelected: aClass
 	self selectedItem: aClass.
 	self selectedItem: aClass.
 	aClass ifNil: [ ^ self ].
 	aClass ifNil: [ ^ self ].
-    
-	self 
-		activateItem: aClass;
-		focus
+
+	self hasFocus ifFalse: [
+		self 
+			activateItem: aClass;
+			focus ]
 !
 !
 
 
 onClassesFocusRequested
 onClassesFocusRequested
@@ -481,9 +482,10 @@ onMethodSelected: aMethod
 	self selectedItem: aMethod.
 	self selectedItem: aMethod.
 	aMethod ifNil: [ ^ self ].
 	aMethod ifNil: [ ^ self ].
     
     
-    self 
-		activateItem: aMethod;
-		focus
+	self hasFocus ifFalse: [
+		self 
+			activateItem: aMethod;
+			focus ]
 !
 !
 
 
 onMethodsFocusRequested
 onMethodsFocusRequested
@@ -581,10 +583,11 @@ selectItem: aPackage
 !HLPackagesListWidget methodsFor: 'reactions'!
 !HLPackagesListWidget methodsFor: 'reactions'!
 
 
 onPackageSelected: aPackage
 onPackageSelected: aPackage
-	self 
-		selectedItem: aPackage;
-		activateItem: aPackage;
-		focus
+	self selectedItem: aPackage.
+	self hasFocus ifFalse: [
+		self
+			activateItem: aPackage;
+			focus ]
 !
 !
 
 
 onPackagesFocusRequested
 onPackagesFocusRequested
@@ -699,9 +702,10 @@ onProtocolSelected: aString
 	self selectedItem: aString.
 	self selectedItem: aString.
 	aString ifNil: [ ^ self ].
 	aString ifNil: [ ^ self ].
     
     
-    self 
-		activateItem: aString;
-		focus
+	self hasFocus ifFalse: [
+		self 
+			activateItem: aString;
+			focus ]
 !
 !
 
 
 onProtocolsFocusRequested
 onProtocolsFocusRequested