Fix for #335012, reported by Matteo Nastasi.
2006-07-18 Kristian Rietveld <kris@imendio.com> Fix for #335012, reported by Matteo Nastasi. * gtk/gtktreeview.c (gtk_tree_view_real_start_editing): if the requested space of the editable is smaller than the cell area, put it up above the middle of the cell area. * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_start_editing): configure the inner border to cover the cell area if the entry requisition is smaller than the cell_area.
This commit is contained in:
		
				
					committed by
					
						
						Kristian Rietveld
					
				
			
			
				
	
			
			
			
						parent
						
							61f4d77d55
						
					
				
				
					commit
					36329391a7
				
			
							
								
								
									
										12
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ChangeLog
									
									
									
									
									
								
							@ -1,3 +1,15 @@
 | 
			
		||||
2006-07-18  Kristian Rietveld  <kris@imendio.com>
 | 
			
		||||
 | 
			
		||||
	Fix for #335012, reported by Matteo Nastasi.
 | 
			
		||||
 | 
			
		||||
	* gtk/gtktreeview.c (gtk_tree_view_real_start_editing): if the
 | 
			
		||||
	requested space of the editable is smaller than the cell area,
 | 
			
		||||
	put it up above the middle of the cell area.
 | 
			
		||||
 | 
			
		||||
	* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_start_editing):
 | 
			
		||||
	configure the inner border to cover the cell area if the 
 | 
			
		||||
	entry requisition is smaller than the cell_area.
 | 
			
		||||
 | 
			
		||||
2006-07-18  Kristian Rietveld  <kris@imendio.com>
 | 
			
		||||
 | 
			
		||||
	Another fix for #164884.
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,15 @@
 | 
			
		||||
2006-07-18  Kristian Rietveld  <kris@imendio.com>
 | 
			
		||||
 | 
			
		||||
	Fix for #335012, reported by Matteo Nastasi.
 | 
			
		||||
 | 
			
		||||
	* gtk/gtktreeview.c (gtk_tree_view_real_start_editing): if the
 | 
			
		||||
	requested space of the editable is smaller than the cell area,
 | 
			
		||||
	put it up above the middle of the cell area.
 | 
			
		||||
 | 
			
		||||
	* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_start_editing):
 | 
			
		||||
	configure the inner border to cover the cell area if the 
 | 
			
		||||
	entry requisition is smaller than the cell_area.
 | 
			
		||||
 | 
			
		||||
2006-07-18  Kristian Rietveld  <kris@imendio.com>
 | 
			
		||||
 | 
			
		||||
	Another fix for #164884.
 | 
			
		||||
 | 
			
		||||
@ -1778,6 +1778,8 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer      *cell,
 | 
			
		||||
				      GdkRectangle         *cell_area,
 | 
			
		||||
				      GtkCellRendererState  flags)
 | 
			
		||||
{
 | 
			
		||||
  GtkBorder border;
 | 
			
		||||
  GtkRequisition requisition;
 | 
			
		||||
  GtkCellRendererText *celltext;
 | 
			
		||||
  GtkCellRendererTextPrivate *priv;
 | 
			
		||||
 | 
			
		||||
@ -1799,6 +1801,14 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer      *cell,
 | 
			
		||||
  
 | 
			
		||||
  gtk_editable_select_region (GTK_EDITABLE (priv->entry), 0, -1);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_size_request (priv->entry, &requisition);
 | 
			
		||||
  if (requisition.height < cell_area->height)
 | 
			
		||||
    {
 | 
			
		||||
      g_object_get (priv->entry, "inner-border", &border, NULL);
 | 
			
		||||
      border.top = (cell_area->height - requisition.height) / 2;
 | 
			
		||||
      border.bottom = (cell_area->height - requisition.height) / 2;
 | 
			
		||||
      gtk_entry_set_inner_border (GTK_ENTRY (priv->entry), &border);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  priv->in_entry_menu = FALSE;
 | 
			
		||||
  if (priv->entry_menu_popdown_timeout)
 | 
			
		||||
 | 
			
		||||
@ -14280,6 +14280,7 @@ gtk_tree_view_real_start_editing (GtkTreeView       *tree_view,
 | 
			
		||||
				  guint              flags)
 | 
			
		||||
{
 | 
			
		||||
  gint pre_val = tree_view->priv->vadjustment->value;
 | 
			
		||||
  GtkRequisition requisition;
 | 
			
		||||
 | 
			
		||||
  tree_view->priv->edited_column = column;
 | 
			
		||||
  _gtk_tree_view_column_start_editing (column, GTK_CELL_EDITABLE (cell_editable));
 | 
			
		||||
@ -14288,12 +14289,29 @@ gtk_tree_view_real_start_editing (GtkTreeView       *tree_view,
 | 
			
		||||
 | 
			
		||||
  cell_area->y += pre_val - tree_view->priv->vadjustment->value;
 | 
			
		||||
 | 
			
		||||
  gtk_widget_size_request (GTK_WIDGET (cell_editable), &requisition);
 | 
			
		||||
 | 
			
		||||
  GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
 | 
			
		||||
 | 
			
		||||
  if (requisition.height < cell_area->height)
 | 
			
		||||
    {
 | 
			
		||||
      gint diff = cell_area->height - requisition.height;
 | 
			
		||||
      gtk_tree_view_put (tree_view,
 | 
			
		||||
			 GTK_WIDGET (cell_editable),
 | 
			
		||||
		     cell_area->x, cell_area->y, cell_area->width, cell_area->height);
 | 
			
		||||
			 cell_area->x, cell_area->y + diff/2,
 | 
			
		||||
			 cell_area->width, requisition.height);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      gtk_tree_view_put (tree_view,
 | 
			
		||||
			 GTK_WIDGET (cell_editable),
 | 
			
		||||
			 cell_area->x, cell_area->y,
 | 
			
		||||
			 cell_area->width, cell_area->height);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  gtk_cell_editable_start_editing (GTK_CELL_EDITABLE (cell_editable),
 | 
			
		||||
				   (GdkEvent *)event);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_grab_focus (GTK_WIDGET (cell_editable));
 | 
			
		||||
  g_signal_connect (cell_editable, "remove_widget",
 | 
			
		||||
		    G_CALLBACK (gtk_tree_view_remove_widget), tree_view);
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user