diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-10-01 21:39:01 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-10-01 21:39:01 +0000 |
commit | a263e0564676fb48a3eeaec4fc4996fea29bacc6 (patch) | |
tree | 8650df94f4e5f5049f245695a8045fc7749c76bf | |
parent | 8439956a9caa505b280eba27eb75c2f93ec5d0e3 (diff) | |
download | gtk+-a263e0564676fb48a3eeaec4fc4996fea29bacc6.tar.gz |
Fix bug #150790:
2004-10-01 Matthias Clasen <mclasen@redhat.com>
Fix bug #150790:
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): Fix the
calculation of x_offset when ellipsized and in RTL mode.
(gtk_cell_renderer_text_render): Fix the calculation of the layout
width when ellipsized.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 9 | ||||
-rw-r--r-- | gtk/gtkcellrenderertext.c | 13 |
5 files changed, 44 insertions, 5 deletions
@@ -1,3 +1,12 @@ +2004-10-01 Matthias Clasen <mclasen@redhat.com> + + Fix bug #150790: + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): Fix the + calculation of x_offset when ellipsized and in RTL mode. + (gtk_cell_renderer_text_render): Fix the calculation of the layout + width when ellipsized. + 2004-10-01 Tor Lillqvist <tml@iki.fi> * gdk/win32/gdkglobals-win32.c: Set _gdk_input_ignore_wintab to diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f101aa862d..6ccd9b475c 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2004-10-01 Matthias Clasen <mclasen@redhat.com> + + Fix bug #150790: + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): Fix the + calculation of x_offset when ellipsized and in RTL mode. + (gtk_cell_renderer_text_render): Fix the calculation of the layout + width when ellipsized. + 2004-10-01 Tor Lillqvist <tml@iki.fi> * gdk/win32/gdkglobals-win32.c: Set _gdk_input_ignore_wintab to diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f101aa862d..6ccd9b475c 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +2004-10-01 Matthias Clasen <mclasen@redhat.com> + + Fix bug #150790: + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): Fix the + calculation of x_offset when ellipsized and in RTL mode. + (gtk_cell_renderer_text_render): Fix the calculation of the layout + width when ellipsized. + 2004-10-01 Tor Lillqvist <tml@iki.fi> * gdk/win32/gdkglobals-win32.c: Set _gdk_input_ignore_wintab to diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f101aa862d..6ccd9b475c 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +2004-10-01 Matthias Clasen <mclasen@redhat.com> + + Fix bug #150790: + + * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): Fix the + calculation of x_offset when ellipsized and in RTL mode. + (gtk_cell_renderer_text_render): Fix the calculation of the layout + width when ellipsized. + 2004-10-01 Tor Lillqvist <tml@iki.fi> * gdk/win32/gdkglobals-win32.c: Set _gdk_input_ignore_wintab to diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index dfb770d57a..ec7aaa33c3 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -1412,11 +1412,13 @@ gtk_cell_renderer_text_get_size (GtkCellRenderer *cell, { if (x_offset) { - *x_offset = ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? - (1.0 - cell->xalign) : cell->xalign) * (cell_area->width - rect.width - (2 * cell->xpad)); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - *x_offset -= rect.width; - *x_offset = MAX (*x_offset, 0); + *x_offset = (1.0 - cell->xalign) * (cell_area->width - rect.width - (2 * cell->xpad)); + else + *x_offset = cell->xalign * (cell_area->width - rect.width - (2 * cell->xpad)); + + if (priv->ellipsize) + *x_offset = MAX(*x_offset, 0); } if (y_offset) { @@ -1503,7 +1505,8 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell, } if (priv->ellipsize) - pango_layout_set_width (layout, cell_area->width * PANGO_SCALE); + pango_layout_set_width (layout, + (cell_area->width - x_offset - 2 * cell->xpad) * PANGO_SCALE); else pango_layout_set_width (layout, -1); |