From 08bc720614a530b39c626d91ac322f835c9f7775 Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Tue, 31 Aug 2004 21:15:51 +0000 Subject: [PATCH] constrain cell area to passed in cell_area, #147867 Tue Aug 31 17:07:41 2004 Jonathan Blandford * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): constrain cell area to passed in cell_area, #147867 * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): if ellipsizing, get_size is only 3 chars wide. * docs/tree-column-sizing.png: Add Matthias's excellent image. --- ChangeLog | 11 +++++++ ChangeLog.pre-2-10 | 11 +++++++ ChangeLog.pre-2-6 | 11 +++++++ ChangeLog.pre-2-8 | 11 +++++++ .../gdk-pixbuf/tmpl/file-loading.sgml | 13 ++++++++ docs/tree-column-sizing.png | Bin 0 -> 26582 bytes gtk/gtkcellrenderertext.c | 26 ++++++++++++++-- gtk/gtktreeviewcolumn.c | 29 ++++++++++++++++-- 8 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 docs/tree-column-sizing.png diff --git a/ChangeLog b/ChangeLog index c0b3443355..d66d2b8e63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Tue Aug 31 17:07:41 2004 Jonathan Blandford + + * gtk/gtktreeviewcolumn.c + (gtk_tree_view_column_cell_process_action): constrain cell area to + passed in cell_area, #147867 + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): if + ellipsizing, get_size is only 3 chars wide. + + * docs/tree-column-sizing.png: Add Matthias's excellent image. + 2004-08-28 Robert Ögren On Win32, do not produce tablet motion or button events while a diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c0b3443355..d66d2b8e63 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,14 @@ +Tue Aug 31 17:07:41 2004 Jonathan Blandford + + * gtk/gtktreeviewcolumn.c + (gtk_tree_view_column_cell_process_action): constrain cell area to + passed in cell_area, #147867 + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): if + ellipsizing, get_size is only 3 chars wide. + + * docs/tree-column-sizing.png: Add Matthias's excellent image. + 2004-08-28 Robert Ögren On Win32, do not produce tablet motion or button events while a diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c0b3443355..d66d2b8e63 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,14 @@ +Tue Aug 31 17:07:41 2004 Jonathan Blandford + + * gtk/gtktreeviewcolumn.c + (gtk_tree_view_column_cell_process_action): constrain cell area to + passed in cell_area, #147867 + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): if + ellipsizing, get_size is only 3 chars wide. + + * docs/tree-column-sizing.png: Add Matthias's excellent image. + 2004-08-28 Robert Ögren On Win32, do not produce tablet motion or button events while a diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c0b3443355..d66d2b8e63 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,14 @@ +Tue Aug 31 17:07:41 2004 Jonathan Blandford + + * gtk/gtktreeviewcolumn.c + (gtk_tree_view_column_cell_process_action): constrain cell area to + passed in cell_area, #147867 + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): if + ellipsizing, get_size is only 3 chars wide. + + * docs/tree-column-sizing.png: Add Matthias's excellent image. + 2004-08-28 Robert Ögren On Win32, do not produce tablet motion or button events while a diff --git a/docs/reference/gdk-pixbuf/tmpl/file-loading.sgml b/docs/reference/gdk-pixbuf/tmpl/file-loading.sgml index 2c046580b2..2757d674b9 100644 --- a/docs/reference/gdk-pixbuf/tmpl/file-loading.sgml +++ b/docs/reference/gdk-pixbuf/tmpl/file-loading.sgml @@ -52,6 +52,19 @@ End: @Returns: + + + + + +@filename: +@width: +@height: +@keep_aspect_ratio: +@error: +@Returns: + + diff --git a/docs/tree-column-sizing.png b/docs/tree-column-sizing.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7f2158bad20b4a7ef502afc128c229106ad73e GIT binary patch literal 26582 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Ò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 * 2 + rect.width; - if (height) *height = GTK_CELL_RENDERER (celltext)->ypad * 2 + rect.height; + /* The minimum size for ellipsized labels is ~ 3 chars */ + if (width) + { + if (priv->ellipsize) + { + PangoContext *context; + PangoFontMetrics *metrics; + gint char_width; + + context = pango_layout_get_context (layout); + metrics = pango_context_get_metrics (context, widget->style->font_desc, NULL); + + char_width = pango_font_metrics_get_approximate_char_width (metrics); + pango_font_metrics_unref (metrics); + + *width += (PANGO_PIXELS (char_width) * 3); + } + else + { + *width = GTK_CELL_RENDERER (celltext)->xpad * 2 + rect.width; + } + } + if (cell_area) { if (x_offset) diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index 70349d9646..eea8180433 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -2621,6 +2621,9 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column, /* rendering, event handling and rendering focus are somewhat complicated, and * quite a bit of code. Rather than duplicate them, we put them together to * keep the code in one place. + * + * To better understand what's going on, check out + * docs/tree-column-sizing.png */ enum { CELL_ACTION_RENDER, @@ -2713,10 +2716,10 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, if (info->expand == TRUE) expand_cell_count ++; full_requested_width += info->requested_width; + /* FIXME: We prolly need to include tree_column->spacing here */ } - extra_space = cell_area->width + horizontal_separator - full_requested_width; - + extra_space = cell_area->width - full_requested_width; if (extra_space < 0) extra_space = 0; else if (extra_space > 0 && expand_cell_count > 0) @@ -2740,13 +2743,26 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, info->real_width = info->requested_width + (info->expand?extra_space:0); + /* We constrain ourselves to only the width available */ + if (real_cell_area.x + info->real_width > cell_area->x + cell_area->width) + { + info->real_width = cell_area->x + cell_area->width - real_cell_area.x; + } + + if (real_cell_area.x > cell_area->x + cell_area->width) + break; + real_cell_area.width = info->real_width; + real_background_area.width= real_cell_area.x + real_cell_area.width - real_background_area.x; real_cell_area.width -= 2 * focus_line_width; rtl_cell_area = real_cell_area; rtl_background_area = real_background_area; + + + if (rtl) { rtl_cell_area.x = cell_area->x + cell_area->width - (real_cell_area.x - cell_area->x) - real_cell_area.width; @@ -2895,6 +2911,15 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, info->real_width = info->requested_width + (info->expand?extra_space:0); + /* We constrain ourselves to only the width available */ + if (real_cell_area.x + info->real_width > cell_area->x + cell_area->width) + { + info->real_width = cell_area->x + cell_area->width - real_cell_area.x; + } + + if (real_cell_area.x > cell_area->x + cell_area->width) + break; + real_cell_area.width = info->real_width; real_background_area.width = real_cell_area.x + real_cell_area.width - real_background_area.x;