ClassInspectorView.st
branchjv
changeset 16664 ef51c9c52b52
parent 16572 ab23beb4bba6
parent 16654 769d7d0f32b4
child 18532 cccb41254edf
--- a/ClassInspectorView.st	Thu Jun 02 06:51:52 2016 +0200
+++ b/ClassInspectorView.st	Mon Jun 06 12:37:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1994 by Claus Gittinger
               All Rights Reserved
@@ -78,27 +80,35 @@
 valueAtLine:lineNr
     "return a list of names to show in the selectionList"
 
-    |list idx0|
+    |list idx0 nm cls|
 
     list := super fieldList.
     lineNr <= list size ifTrue:[ ^ super valueAtLine:lineNr ].
 
-    "/
-    "/ a class variable
-    "/
-    idx0 := list size + 1.
-    inspectedObject class withAllSuperclasses reverseDo:[:aClass |
-        |varNames varName|
+    nm := self listEntryAt:lineNr.
+    nm isNil ifTrue:[ ^nil].
 
-        varNames := aClass classVarNames.
-        varNames notEmpty ifTrue:[
-            (lineNr between:idx0+1 and:(idx0 + 1 + varNames size - 1)) ifTrue:[
-                varName := varNames at:lineNr-idx0.
-                ^ aClass classVarAt:varName.
-            ].
-            idx0 := idx0 + varNames size + 1.
-        ]
+    "/
+    "/ a class variable?
+    "/
+    cls := inspectedObject class theNonMetaclass whichClassDefinesClassVar:nm.
+    cls notNil ifTrue:[
+        ^ cls classVarAt:nm.
     ].
+    
+"/    idx0 := list size + 1.
+"/    inspectedObject class withAllSuperclasses reverseDo:[:aClass |
+"/        |varNames varName|
+"/
+"/        varNames := aClass classVarNames.
+"/        varNames notEmpty ifTrue:[
+"/            (lineNr between:idx0+1 and:(idx0 + 1 + varNames size - 1)) ifTrue:[
+"/                varName := varNames at:lineNr-idx0.
+"/                ^ aClass classVarAt:varName.
+"/            ].
+"/            idx0 := idx0 + varNames size + 1.
+"/        ]
+"/    ].
     ^ nil
 ! !