Changeset 1784

Show
Ignore:
Timestamp:
07/28/07 13:11:03 (1 year ago)
Author:
arj..@yirdis.nl
Message:

Fixed update cycle:

  • Items updated by constraint resolving will be called for post_update()
  • drawing of items solved by constraint solver will be drawn correctly.
Files:

Legend:

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

    r1783 r1784  
    437437            # solving; 
    438438            # NOTE: no matrix can change during constraint solving 
    439             # NOTE: keep c_dirty_items separate from dirty_items as only 
    440             # items in dirty_items will be "post updated" 
    441             c_dirty_items = self._dirty_items 
     439            dirty_items.extend(self._dirty_items) 
     440 
     441            self._dirty_items.clear() 
    442442 
    443443            # normalize items, which changed after constraint solving; 
    444444            # store those items, which matrices changed 
    445             c_dirty_matrix_items = self._normalize(dirty_items) 
    446             c_dirty_matrix_items.update(self._normalize(c_dirty_items)) 
     445            normalized_items = self._normalize(dirty_items) 
    447446 
    448447            # recalculate matrices of normalized items 
    449             c_dirty_matrix_items = self.update_matrices(c_dirty_matrix_items) 
    450             dirty_matrix_items.update(c_dirty_matrix_items) 
     448            dirty_matrix_items.update(self.update_matrices(normalized_items)) 
    451449 
    452450            self._post_update_items(dirty_items, cr) 
    453             self._dirty_items.clear() 
    454451 
    455452        finally: 
     
    537534            handles = item.handles() 
    538535            if not handles: 
    539                 return dirty_matrix_items 
     536                continue 
    540537            x, y = map(float, handles[0].pos) 
    541538            if x: