DirectoryContentsBrowser.st
changeset 18074 95f03de33c4a
parent 18028 a2b4f242df66
child 18309 f141abb7f243
--- a/DirectoryContentsBrowser.st	Mon Apr 30 23:30:07 2018 +0200
+++ b/DirectoryContentsBrowser.st	Wed May 02 17:30:36 2018 +0200
@@ -2470,7 +2470,7 @@
     self allItems notEmpty ifTrue:[
         "/ update icon for invisible items by suffix
         desc := self findNextItemFor:[:n| n iconOrNil isNil ].
-        desc notNil ifTrue:[
+        (desc notNil and:[desc icon isNil]) ifTrue:[
             icon := self getIconFor:desc.
             icon notNil ifTrue:[
                 desc icon:icon.
@@ -2773,10 +2773,11 @@
                             self updateStep
                         ] 
                       ] newProcess.
-        updateTask name:'DirectoryContentsBrowser updateTask'.
-        updateTask priorityRange:(Processor userBackgroundPriority to:Processor activePriority).
-        updateTask restartable:true.
-        updateTask resume.
+        updateTask 
+            name:'DirectoryContentsBrowser updateTask';
+            priorityRange:(Processor userBackgroundPriority to:Processor activePriority-1);
+            restartable:true;
+            resume.
     ].
 
     "Modified: / 10-08-2010 / 14:03:57 / sr"
@@ -2845,14 +2846,12 @@
 updateStep
     |timedOut sensor|
 
-    "/ Processor yield.
-
     sensor := self windowGroup sensor.
     (sensor anyButtonPressed or:[sensor shiftDown]) ifTrue:[
         Processor yield.
 
         "/ no update while scrolling
-        timedOut := ( changeSema waitWithTimeoutMs:(self class updateTaskCyleTime milliseconds) ) isNil.
+        timedOut := (changeSema waitWithTimeout:(self class updateTaskCyleTime)) isNil.
         timedOut ifFalse:[changeSema signal].
         ^ self 
     ].
@@ -2868,7 +2867,7 @@
             timedOut := false
         ] ifFalse:[
             self debugMessage:'sema wait'.
-            timedOut := (changeSema waitWithTimeoutMs:(self class updateTaskCyleTime asMilliseconds)) isNil.
+            timedOut := (changeSema waitWithTimeout:(self class updateTaskCyleTime)) isNil.
             self debugMessage:'timedOut:', timedOut asString.
         ].
 
@@ -3374,28 +3373,25 @@
 hasBeenModified
     "check if item modification time has changed"
 
-    |info|
-
+    |info oldModificationTime|
+
+    "do not automount remote directories"
     self isRemoteDirectory ifTrue:[^ false].
     "/ root directories are not verified
     fileName isRootDirectory ifTrue:[ ^ false ].
 
-
     fileInfo isNil ifTrue:[
-        "first time of invokation "
-        info := self getFileInfo.
-        info isNil ifTrue:[ ^ false].
-        ^ true
+        "first time of invocation"
+        ^ self getFileInfo notNil.
     ].
     fileInfo isSymbolicLink ifTrue:[
         "/ symbolic links are not verified
         ^ false
     ].
-
-    self modificationTime  ~= fileName modificationTime ifTrue:[
-        ^ true
-    ].
-    ^ false
+    oldModificationTime := fileInfo modificationTime.
+    fileInfo := nil.
+    info := self getFileInfo.
+    ^ info isNil or:[oldModificationTime ~= info modificationTime].
 ! !
 
 !DirectoryContentsBrowser::DirectoryContentsItem methodsFor:'comparing'!