summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--ChangeLog.pre-2-1019
-rw-r--r--ChangeLog.pre-2-419
-rw-r--r--ChangeLog.pre-2-619
-rw-r--r--ChangeLog.pre-2-819
-rw-r--r--gtk/gtkcellrenderertext.c10
-rw-r--r--gtk/gtkcellrenderertoggle.c4
-rw-r--r--gtk/gtkstyle.c13
-rw-r--r--gtk/gtktreeviewcolumn.c7
9 files changed, 121 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 4b9f97292a..6602c9955e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+Tue Feb 3 01:38:06 2004 Matthias Clasen <maclas@gmx.de>
+
+ Clip narrow columns in rtl-oriented tree views (#128089,
+ chinen@jp.ibm.com):
+
+ * gtk/gtkstyle.c (gtk_default_draw_option):
+ * gtk/gtkstyle.c (gtk_default_draw_check): Clip to the
+ given area.
+
+ * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
+ Use the right clip area when calling gtk_cell_renderer_render().
+ * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_draw_focus):
+ Use the right clip area when calling gtk_paint_focus().
+ * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+ Use the right clip area when calling gtk_paint_toggle() or
+ gtk_paint_check().
+ * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render):
+ Clip to the expose_area when drawing the background rectangle.
+
Tue Feb 3 00:14:36 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 4b9f97292a..6602c9955e 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,22 @@
+Tue Feb 3 01:38:06 2004 Matthias Clasen <maclas@gmx.de>
+
+ Clip narrow columns in rtl-oriented tree views (#128089,
+ chinen@jp.ibm.com):
+
+ * gtk/gtkstyle.c (gtk_default_draw_option):
+ * gtk/gtkstyle.c (gtk_default_draw_check): Clip to the
+ given area.
+
+ * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
+ Use the right clip area when calling gtk_cell_renderer_render().
+ * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_draw_focus):
+ Use the right clip area when calling gtk_paint_focus().
+ * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+ Use the right clip area when calling gtk_paint_toggle() or
+ gtk_paint_check().
+ * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render):
+ Clip to the expose_area when drawing the background rectangle.
+
Tue Feb 3 00:14:36 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 4b9f97292a..6602c9955e 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,22 @@
+Tue Feb 3 01:38:06 2004 Matthias Clasen <maclas@gmx.de>
+
+ Clip narrow columns in rtl-oriented tree views (#128089,
+ chinen@jp.ibm.com):
+
+ * gtk/gtkstyle.c (gtk_default_draw_option):
+ * gtk/gtkstyle.c (gtk_default_draw_check): Clip to the
+ given area.
+
+ * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
+ Use the right clip area when calling gtk_cell_renderer_render().
+ * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_draw_focus):
+ Use the right clip area when calling gtk_paint_focus().
+ * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+ Use the right clip area when calling gtk_paint_toggle() or
+ gtk_paint_check().
+ * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render):
+ Clip to the expose_area when drawing the background rectangle.
+
Tue Feb 3 00:14:36 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 4b9f97292a..6602c9955e 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,22 @@
+Tue Feb 3 01:38:06 2004 Matthias Clasen <maclas@gmx.de>
+
+ Clip narrow columns in rtl-oriented tree views (#128089,
+ chinen@jp.ibm.com):
+
+ * gtk/gtkstyle.c (gtk_default_draw_option):
+ * gtk/gtkstyle.c (gtk_default_draw_check): Clip to the
+ given area.
+
+ * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
+ Use the right clip area when calling gtk_cell_renderer_render().
+ * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_draw_focus):
+ Use the right clip area when calling gtk_paint_focus().
+ * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+ Use the right clip area when calling gtk_paint_toggle() or
+ gtk_paint_check().
+ * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render):
+ Clip to the expose_area when drawing the background rectangle.
+
Tue Feb 3 00:14:36 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 4b9f97292a..6602c9955e 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,22 @@
+Tue Feb 3 01:38:06 2004 Matthias Clasen <maclas@gmx.de>
+
+ Clip narrow columns in rtl-oriented tree views (#128089,
+ chinen@jp.ibm.com):
+
+ * gtk/gtkstyle.c (gtk_default_draw_option):
+ * gtk/gtkstyle.c (gtk_default_draw_check): Clip to the
+ given area.
+
+ * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
+ Use the right clip area when calling gtk_cell_renderer_render().
+ * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_cell_draw_focus):
+ Use the right clip area when calling gtk_paint_focus().
+ * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
+ Use the right clip area when calling gtk_paint_toggle() or
+ gtk_paint_check().
+ * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render):
+ Clip to the expose_area when drawing the background rectangle.
+
Tue Feb 3 00:14:36 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index f1f7896791..92448abc3f 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -1371,6 +1371,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
gtk_cell_renderer_text_get_size (cell, widget, cell_area, &x_offset, &y_offset, NULL, NULL);
+
if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
{
if (GTK_WIDGET_HAS_FOCUS (widget))
@@ -1398,7 +1399,9 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
gc = gdk_gc_new (window);
gdk_gc_set_rgb_fg_color (gc, &color);
-
+
+ if (expose_area)
+ gdk_gc_set_clip_rectangle (gc, expose_area);
gdk_draw_rectangle (window,
gc,
TRUE,
@@ -1406,7 +1409,8 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
background_area->y,
background_area->width,
background_area->height);
-
+ if (expose_area)
+ gdk_gc_set_clip_rectangle (gc, NULL);
g_object_unref (gc);
}
@@ -1414,7 +1418,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
window,
state,
TRUE,
- cell_area,
+ expose_area,
widget,
"cellrenderertext",
cell_area->x + x_offset + cell->xpad,
diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c
index 4db089e992..efce7708be 100644
--- a/gtk/gtkcellrenderertoggle.c
+++ b/gtk/gtkcellrenderertoggle.c
@@ -359,7 +359,7 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell,
gtk_paint_option (widget->style,
window,
state, shadow,
- cell_area, widget, "cellradio",
+ expose_area, widget, "cellradio",
cell_area->x + x_offset + cell->xpad,
cell_area->y + y_offset + cell->ypad,
width - 1, height - 1);
@@ -369,7 +369,7 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell,
gtk_paint_check (widget->style,
window,
state, shadow,
- cell_area, widget, "cellcheck",
+ expose_area, widget, "cellcheck",
cell_area->x + x_offset + cell->xpad,
cell_area->y + y_offset + cell->ypad,
width - 1, height - 1);
diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c
index 1e70a4e4da..0bdb73ed64 100644
--- a/gtk/gtkstyle.c
+++ b/gtk/gtkstyle.c
@@ -3681,16 +3681,25 @@ gtk_default_draw_check (GtkStyle *style,
{
if (detail && strcmp (detail, "cellcheck") == 0)
{
+ if (area)
+ gdk_gc_set_clip_rectangle (widget->style->base_gc[state_type], area);
gdk_draw_rectangle (window,
widget->style->base_gc[state_type],
TRUE,
x, y,
width, height);
+ if (area)
+ {
+ gdk_gc_set_clip_rectangle (widget->style->base_gc[state_type], NULL);
+ gdk_gc_set_clip_rectangle (widget->style->text_gc[state_type], area);
+ }
gdk_draw_rectangle (window,
widget->style->text_gc[state_type],
FALSE,
x, y,
width, height);
+ if (area)
+ gdk_gc_set_clip_rectangle (widget->style->text_gc[state_type], NULL);
x -= (1 + INDICATOR_PART_SIZE - width) / 2;
y -= (((1 + INDICATOR_PART_SIZE - height) / 2) - 1);
@@ -3773,6 +3782,8 @@ gtk_default_draw_option (GtkStyle *style,
{
if (detail && strcmp (detail, "cellradio") == 0)
{
+ if (area)
+ gdk_gc_set_clip_rectangle (widget->style->fg_gc[state_type], area);
gdk_draw_arc (window,
widget->style->fg_gc[state_type],
FALSE,
@@ -3797,6 +3808,8 @@ gtk_default_draw_option (GtkStyle *style,
draw_part (window, widget->style->fg_gc[state_type],
area, x, y, CHECK_INCONSISTENT_TEXT);
}
+ if (area)
+ gdk_gc_set_clip_rectangle (widget->style->fg_gc[state_type], NULL);
}
else
{
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index 222c6a46bd..838010484a 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -2621,6 +2621,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
GList *list;
GdkRectangle real_cell_area;
GdkRectangle real_background_area;
+ GdkRectangle real_expose_area = *cell_area;
gint expand_cell_count = 0;
gint full_requested_width = 0;
gint extra_space;
@@ -2737,7 +2738,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
tree_column->tree_view,
&rtl_background_area,
&rtl_cell_area,
- expose_area,
+ &real_expose_area,
flags);
}
@@ -2892,7 +2893,7 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
tree_column->tree_view,
&rtl_background_area,
&rtl_cell_area,
- expose_area,
+ &real_expose_area,
flags);
}
/* FOCUS */
@@ -3350,7 +3351,7 @@ _gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column,
gtk_paint_focus (tree_column->tree_view->style,
window,
cell_state,
- NULL,
+ cell_area,
tree_column->tree_view,
"treeview",
focus_rectangle.x,