summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-10-01 21:39:01 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-10-01 21:39:01 +0000
commita263e0564676fb48a3eeaec4fc4996fea29bacc6 (patch)
tree8650df94f4e5f5049f245695a8045fc7749c76bf
parent8439956a9caa505b280eba27eb75c2f93ec5d0e3 (diff)
downloadgtk+-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--ChangeLog9
-rw-r--r--ChangeLog.pre-2-109
-rw-r--r--ChangeLog.pre-2-69
-rw-r--r--ChangeLog.pre-2-89
-rw-r--r--gtk/gtkcellrenderertext.c13
5 files changed, 44 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f101aa862d..6ccd9b475c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);