#8000 Only repaint the area needed (rlucchese)
This commit is contained in:
		
							parent
							
								
									1f6dae2360
								
							
						
					
					
						commit
						3bb9f47461
					
				| @ -417,10 +417,27 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|         if self._palette_invoker is not None: |         if self._palette_invoker is not None: | ||||||
|             self._palette_invoker.detach() |             self._palette_invoker.detach() | ||||||
| 
 | 
 | ||||||
|  |     def _repaint_for_icon_change(self): | ||||||
|  |         box_width, box_height = self.get_allocation() | ||||||
|  | 
 | ||||||
|  |         if self._buffer.width is None: | ||||||
|  |             icon_width = 0 | ||||||
|  |         else: | ||||||
|  |             icon_width = self._buffer.width | ||||||
|  | 
 | ||||||
|  |         if self._buffer.height is None: | ||||||
|  |             icon_height = 0 | ||||||
|  |         else: | ||||||
|  |             icon_height = self._buffer.height | ||||||
|  | 
 | ||||||
|  |         x = (box_width - icon_width) / 2 | ||||||
|  |         y = (box_height - icon_height) / 2 | ||||||
|  |         self.emit_paint_needed(x, y, icon_width, icon_height) | ||||||
|  | 
 | ||||||
|     def set_file_name(self, value): |     def set_file_name(self, value): | ||||||
|         if self._buffer.file_name != value: |         if self._buffer.file_name != value: | ||||||
|             self._buffer.file_name = value |             self._buffer.file_name = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     def get_file_name(self): |     def get_file_name(self): | ||||||
|         return self._buffer.file_name |         return self._buffer.file_name | ||||||
| @ -431,7 +448,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|     def set_icon_name(self, value): |     def set_icon_name(self, value): | ||||||
|         if self._buffer.icon_name != value: |         if self._buffer.icon_name != value: | ||||||
|             self._buffer.icon_name = value |             self._buffer.icon_name = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     def get_icon_name(self): |     def get_icon_name(self): | ||||||
|         return self._buffer.icon_name |         return self._buffer.icon_name | ||||||
| @ -442,7 +459,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|     def set_xo_color(self, value): |     def set_xo_color(self, value): | ||||||
|         if self._buffer.xo_color != value: |         if self._buffer.xo_color != value: | ||||||
|             self._buffer.xo_color = value |             self._buffer.xo_color = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     xo_color = gobject.property( |     xo_color = gobject.property( | ||||||
|         type=object, getter=None, setter=set_xo_color) |         type=object, getter=None, setter=set_xo_color) | ||||||
| @ -450,7 +467,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|     def set_fill_color(self, value): |     def set_fill_color(self, value): | ||||||
|         if self._buffer.fill_color != value: |         if self._buffer.fill_color != value: | ||||||
|             self._buffer.fill_color = value |             self._buffer.fill_color = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     def get_fill_color(self): |     def get_fill_color(self): | ||||||
|         return self._buffer.fill_color |         return self._buffer.fill_color | ||||||
| @ -461,7 +478,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|     def set_stroke_color(self, value): |     def set_stroke_color(self, value): | ||||||
|         if self._buffer.stroke_color != value: |         if self._buffer.stroke_color != value: | ||||||
|             self._buffer.stroke_color = value |             self._buffer.stroke_color = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     def get_stroke_color(self): |     def get_stroke_color(self): | ||||||
|         return self._buffer.stroke_color |         return self._buffer.stroke_color | ||||||
| @ -506,7 +523,7 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): | |||||||
|     def set_badge_name(self, value): |     def set_badge_name(self, value): | ||||||
|         if self._buffer.badge_name != value: |         if self._buffer.badge_name != value: | ||||||
|             self._buffer.badge_name = value |             self._buffer.badge_name = value | ||||||
|             self.emit_paint_needed(0, 0, -1, -1) |             self._repaint_for_icon_change() | ||||||
| 
 | 
 | ||||||
|     def get_badge_name(self): |     def get_badge_name(self): | ||||||
|         return self._buffer.badge_name |         return self._buffer.badge_name | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tomeu Vizoso
						Tomeu Vizoso