Icon: port to new Height-for-width Geometry Management
GTK3 has replaced [1] the GTK2 geometry management with Height-for-width
Geometry Management [2]. This means we need to replace size_request() methods
with get_preferred_{width,height}().
[1] http://developer.gnome.org/gtk3/3.0/ch25s02.html#id1525688
[2] http://developer.gnome.org/gtk3/3.0/GtkWidget.html#geometry-management
Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
[assembled from several patches; fixed up left-over plus sign; added
description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
			
			
This commit is contained in:
		
							parent
							
								
									327ca88ca8
								
							
						
					
					
						commit
						e05f84bc4f
					
				@ -362,27 +362,27 @@ class Icon(Gtk.Image):
 | 
				
			|||||||
    def _file_changed_cb(self, image, pspec):
 | 
					    def _file_changed_cb(self, image, pspec):
 | 
				
			||||||
        self._buffer.file_name = self.props.file
 | 
					        self._buffer.file_name = self.props.file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def do_size_request(self, requisition):
 | 
					    def do_get_preferred_height(self):
 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        Parameters
 | 
					 | 
				
			||||||
        ----------
 | 
					 | 
				
			||||||
        requisition :
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Returns
 | 
					 | 
				
			||||||
        -------
 | 
					 | 
				
			||||||
        None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        self._sync_image_properties()
 | 
					        self._sync_image_properties()
 | 
				
			||||||
        surface = self._buffer.get_surface()
 | 
					        surface = self._buffer.get_surface()
 | 
				
			||||||
        if surface:
 | 
					        if surface:
 | 
				
			||||||
            requisition[0] = surface.get_width()
 | 
					            height = surface.get_height()
 | 
				
			||||||
            requisition[1] = surface.get_height()
 | 
					        elif self._buffer.height:
 | 
				
			||||||
        elif self._buffer.width and self._buffer.height:
 | 
					            height = self._buffer.height
 | 
				
			||||||
            requisition[0] = self._buffer.width
 | 
					 | 
				
			||||||
            requisition[1] = self._buffer.width
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            requisition[0] = requisition[1] = 0
 | 
					            height = 0
 | 
				
			||||||
 | 
					        return (height, height)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def do_get_preferred_width(self):
 | 
				
			||||||
 | 
					        self._sync_image_properties()
 | 
				
			||||||
 | 
					        surface = self._buffer.get_surface()
 | 
				
			||||||
 | 
					        if surface:
 | 
				
			||||||
 | 
					            width = surface.get_width()
 | 
				
			||||||
 | 
					        elif self._buffer.width:
 | 
				
			||||||
 | 
					            width = self._buffer.width
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            width = 0
 | 
				
			||||||
 | 
					        return (width, width)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def do_expose_event(self, event):
 | 
					    def do_expose_event(self, event):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
@ -408,9 +408,9 @@ class Icon(Gtk.Image):
 | 
				
			|||||||
            xalign = 1.0 - xalign
 | 
					            xalign = 1.0 - xalign
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        allocation = self.get_allocation()
 | 
					        allocation = self.get_allocation()
 | 
				
			||||||
        x = math.floor(allocation.x + xpad +
 | 
					        x = math.floor(xpad +
 | 
				
			||||||
            (allocation.width - requisition.width) * xalign)
 | 
					            (allocation.width - requisition.width) * xalign)
 | 
				
			||||||
        y = math.floor(allocation.y + ypad +
 | 
					        y = math.floor(ypad +
 | 
				
			||||||
            (allocation.height - requisition.height) * yalign)
 | 
					            (allocation.height - requisition.height) * yalign)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cr = self.get_window().cairo_create()
 | 
					        cr = self.get_window().cairo_create()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user