Changeset 1600

Show
Ignore:
Timestamp:
07/08/07 23:50:51 (1 year ago)
Author:
arj..@yirdis.nl
Message:

Fixed bug introduced in [1586] where the second update list was removed.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphas/trunk/gaphas/canvas.py

    r1586 r1600  
    1212from gaphas import tree 
    1313from gaphas import solver 
    14 from gaphas.decorators import async, PRIORITY_HIGH_IDLE 
     14from gaphas.decorators import nonrecursive, async, PRIORITY_HIGH_IDLE 
    1515from state import observed, reversible_method, reversible_pair 
    1616 
     
    4646        self._dirty_items = set() 
    4747        self._dirty_matrix_items = set() 
    48         self._in_update = False 
    4948 
    5049        self._registered_views = set() 
     
    357356        update job is scheduled as idle job. 
    358357        """ 
    359         if not self._in_update: 
    360             self.update_now() 
    361  
     358        self.update_now() 
     359 
     360    @nonrecursive 
    362361    def update_now(self): 
    363362        """ 
    364363        Peform an update of the items that requested an update. 
    365364        """ 
    366         self._in_update = True 
    367  
    368365        # Order the dirty items, so they are updated bottom to top 
    369366        dirty_items = [ item for item in reversed(self._tree.nodes) \ 
     
    395392            dirty_matrix_items.update(self._dirty_matrix_items) 
    396393            self.update_matrices() 
     394 
     395            # Also need to set up the dirty_items list here, since items 
     396            # may be marked as dirty during maxtrix update or solving. 
     397            dirty_items = [ item for item in reversed(self._tree.nodes) \ 
     398                                 if item in self._dirty_items ] 
    397399 
    398400            for item in dirty_items: 
     
    411413            self._update_views(self._dirty_items, dirty_matrix_items) 
    412414            self._dirty_items.clear() 
    413             self._in_update = False 
    414415 
    415416    def update_matrices(self): 
     
    470471            request_resolve(h.x) 
    471472            request_resolve(h.y) 
    472              
    473473 
    474474        if recursive: