~glitter-team/glitter/trunk

« back to all changes in this revision

Viewing changes to glitter/scroll_area.py

  • Committer: Jan Jokela
  • Date: 2009-06-06 14:43:42 UTC
  • mto: This revision was merged to the branch mainline in revision 30.
  • Revision ID: jan@jan-laptop-20090606144342-1pt6vkqq7uzmmndu
(glitter/scroll_area.py) _update_layout now remembers previous scroll area position

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
            _stage = self.get_stage()
85
85
            _stage.connect('key-press-event', self.do_key_press_event)
86
86
            
87
 
        # Update background and scroll image layouts
 
87
        # Update background layout
88
88
        self._background_image._update_layout()
 
89
        
 
90
        # Update scroll area layout, account for previous scroll position
 
91
        x_factor = y_factor = 0.0
 
92
        if self._scroll_image.get_xu() != 0:
 
93
            x_factor = \
 
94
              self._scroll_image.get_widthu() / self._scroll_image.get_xu()
 
95
        if self._scroll_image.get_yu() != 0:
 
96
            y_factor = \
 
97
              self._scroll_image.get_heightu() / self._scroll_image.get_yu()
 
98
        
89
99
        self._scroll_image._update_layout()  
90
100
        
 
101
        if x_factor != 0:
 
102
            self._scroll_image.set_xu(
 
103
              self._scroll_image.get_widthu() / x_factor
 
104
            )
 
105
        if y_factor != 0:
 
106
            self._scroll_image.set_yu(
 
107
              self._scroll_image.get_heightu() / y_factor
 
108
            )
 
109
        
 
110
        # Update layout for packed items
91
111
        for item in self._items:
92
112
            item._update_layout()
 
113
            # FIXME: Raising item to top shouldn't be necessary  
 
114
            item.raise_top()
93
115
 
94
116
        # Clip the scroll area
95
117
        self.set_clipu(0, 0, self.get_widthu(), self.get_heightu())
121
143
        self._vert_factor += vert_factor
122
144
        
123
145
        # Determine target x and y values for the scroll image
124
 
        horiz_factor_as_units = self._horiz_factor * self._scroll_image.get_widthu()
 
146
        horiz_factor_as_units = \
 
147
          self._horiz_factor * self._scroll_image.get_widthu()
125
148
        target_x = self._scroll_image.get_xu() + horiz_factor_as_units
126
149
 
127
 
        vert_factor_as_units = self._vert_factor * self._scroll_image.get_heightu()
 
150
        vert_factor_as_units = \
 
151
          self._vert_factor * self._scroll_image.get_heightu()
128
152
        target_y = self._scroll_image.get_yu() + vert_factor_as_units
129
153
        
130
154
        # Normalize targets out of bounds