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:",
 fn: function (aClass){
 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);
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -501,11 +501,15 @@ return $2;
 } else {
 $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)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLClassesListWidget);
 
 smalltalk.addMethod(
@@ -983,7 +987,7 @@ smalltalk.method({
 selector: "onMethodSelected:",
 fn: function (aMethod){
 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);
 $1=aMethod;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -992,11 +996,15 @@ return $2;
 } else {
 $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)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLMethodsListWidget);
 
 smalltalk.addMethod(
@@ -1298,13 +1306,17 @@ smalltalk.method({
 selector: "onPackageSelected:",
 fn: function (aPackage){
 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)})},
-messageSends: ["selectedItem:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLPackagesListWidget);
 
 smalltalk.addMethod(
@@ -1480,7 +1492,7 @@ smalltalk.method({
 selector: "onProtocolSelected:",
 fn: function (aString){
 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);
 $1=aString;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1489,11 +1501,15 @@ return $2;
 } else {
 $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)})},
-messageSends: ["selectedItem:", "ifNil:", "activateItem:", "focus"]}),
+messageSends: ["selectedItem:", "ifNil:", "ifFalse:", "activateItem:", "focus", "hasFocus"]}),
 smalltalk.HLProtocolsListWidget);
 
 smalltalk.addMethod(

+ 41 - 25
js/Helios-Browser.js

@@ -653,7 +653,7 @@ selector: "onClassSelected:",
 category: 'reactions',
 fn: function (aClass){
 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);
 $1=aClass;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -662,13 +662,17 @@ return $2;
 } else {
 $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)})},
 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: []
 }),
 smalltalk.HLClassesListWidget);
@@ -1279,7 +1283,7 @@ selector: "onMethodSelected:",
 category: 'reactions',
 fn: function (aMethod){
 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);
 $1=aMethod;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1288,13 +1292,17 @@ return $2;
 } else {
 $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)})},
 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: []
 }),
 smalltalk.HLMethodsListWidget);
@@ -1689,15 +1697,19 @@ selector: "onPackageSelected:",
 category: 'reactions',
 fn: function (aPackage){
 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)})},
 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: []
 }),
 smalltalk.HLPackagesListWidget);
@@ -1921,7 +1933,7 @@ selector: "onProtocolSelected:",
 category: 'reactions',
 fn: function (aString){
 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);
 $1=aString;
 if(($receiver = $1) == nil || $receiver == undefined){
@@ -1930,13 +1942,17 @@ return $2;
 } else {
 $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)})},
 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: []
 }),
 smalltalk.HLProtocolsListWidget);

+ 18 - 14
st/Helios-Browser.st

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