[gthumb] Revert "image-viewer: clip the expose event region only ones"
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] Revert "image-viewer: clip the expose event region only ones"
- Date: Sat, 15 Jan 2011 16:51:30 +0000 (UTC)
commit a8a71394a8f866fb90783eaa13905e11bd29d316
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sat Jan 15 16:52:36 2011 +0100
Revert "image-viewer: clip the expose event region only ones"
This reverts commit 7c7c3e038e26c9eb5db5ccd74141b6626c149e1f.
gthumb/gth-image-selector.c | 20 ++++++++-----
gthumb/gth-image-viewer.c | 67 ++++++++++++++++++------------------------
2 files changed, 41 insertions(+), 46 deletions(-)
---
diff --git a/gthumb/gth-image-selector.c b/gthumb/gth-image-selector.c
index 59dd63e..eadf676 100644
--- a/gthumb/gth-image-selector.c
+++ b/gthumb/gth-image-selector.c
@@ -583,13 +583,17 @@ paint_background (GthImageSelector *self,
self->priv->viewer->y_offset - self->priv->viewer->image_area.y,
&self->priv->viewer->image_area,
event->region,
- GDK_INTERP_NEAREST);
+ GDK_INTERP_TILES);
- if (! self->priv->viewer->dragging) { /* make the background darker */
+ /* make the background darker */
+ {
GdkRectangle *rects;
int n_rects;
int i;
+ cairo_save (cr);
+ gdk_cairo_region (cr, event->region);
+ cairo_clip (cr);
gdk_cairo_rectangle (cr, &self->priv->viewer->image_area);
cairo_clip (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
@@ -601,6 +605,7 @@ paint_background (GthImageSelector *self,
cairo_rectangle (cr, paint_area.x, paint_area.y, paint_area.width, paint_area.height);
}
cairo_fill (cr);
+ cairo_restore (cr);
g_free (rects);
}
@@ -625,10 +630,9 @@ paint_selection (GthImageSelector *self,
self->priv->viewer->y_offset - self->priv->viewer->image_area.y,
&selection_area,
event->region,
- GDK_INTERP_NEAREST);
+ GDK_INTERP_TILES);
cairo_save (cr);
-
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 9, 2)
cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE);
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
@@ -636,6 +640,8 @@ paint_selection (GthImageSelector *self,
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
#endif
+
+ gdk_cairo_region (cr, event->region);
gdk_cairo_rectangle (cr, &selection_area);
cairo_clip (cr);
@@ -680,8 +686,8 @@ paint_selection (GthImageSelector *self,
cairo_rectangle (cr,
selection_area.x + 0.5,
selection_area.y + 0.5,
- selection_area.width - 1,
- selection_area.height - 1);
+ selection_area.width,
+ selection_area.height);
cairo_stroke (cr);
cairo_restore (cr);
@@ -787,7 +793,6 @@ gth_image_selector_button_release (GthImageViewerTool *base,
update_cursor (self,
event->x + self->priv->viewer->x_offset,
event->y + self->priv->viewer->y_offset);
- gtk_widget_queue_draw (GTK_WIDGET (self->priv->viewer));
return FALSE;
}
@@ -960,7 +965,6 @@ gth_image_selector_button_press (GthImageViewerTool *base,
self->priv->viewer->pressed = TRUE;
self->priv->viewer->dragging = TRUE;
self->priv->drag_start_selection_area = self->priv->selection_area;
- gtk_widget_queue_draw (GTK_WIDGET (self->priv->viewer));
retval = TRUE;
}
diff --git a/gthumb/gth-image-viewer.c b/gthumb/gth-image-viewer.c
index be9b551..45f00de 100644
--- a/gthumb/gth-image-viewer.c
+++ b/gthumb/gth-image-viewer.c
@@ -570,15 +570,15 @@ gth_image_viewer_size_allocate (GtkWidget *widget,
if (width > gdk_width)
self->x_offset = CLAMP (self->x_offset,
- 0,
- width - gdk_width);
+ 0,
+ width - gdk_width);
else
self->x_offset = 0;
if (height > gdk_height)
self->y_offset = CLAMP (self->y_offset,
- 0,
- height - gdk_height);
+ 0,
+ height - gdk_height);
else
self->y_offset = 0;
@@ -589,48 +589,40 @@ gth_image_viewer_size_allocate (GtkWidget *widget,
/* Change adjustment values. */
- gtk_adjustment_configure (self->hadj,
- self->x_offset,
- 0.0,
- width,
- STEP_INCREMENT,
- gdk_width / 2,
- gdk_width);
- gtk_adjustment_configure (self->vadj,
- self->y_offset,
- 0.0,
- height,
- STEP_INCREMENT,
- gdk_height / 2,
- gdk_height);
+ gtk_adjustment_set_lower (self->hadj, 0.0);
+ gtk_adjustment_set_upper (self->hadj, width);
+ gtk_adjustment_set_value (self->hadj, self->x_offset);
+ gtk_adjustment_set_step_increment (self->hadj, STEP_INCREMENT);
+ gtk_adjustment_set_page_increment (self->hadj, gdk_width / 2);
+ gtk_adjustment_set_page_size (self->hadj, gdk_width);
+
+ gtk_adjustment_set_lower (self->vadj, 0.0);
+ gtk_adjustment_set_upper (self->vadj, height);
+ gtk_adjustment_set_value (self->vadj, self->y_offset);
+ gtk_adjustment_set_step_increment (self->vadj, STEP_INCREMENT);
+ gtk_adjustment_set_page_increment (self->vadj, gdk_height / 2);
+ gtk_adjustment_set_page_size (self->vadj, gdk_height);
}
else {
- gtk_adjustment_configure (self->hadj,
- 0.0,
- 0.0,
- 1.0,
- 0.1,
- 1.0,
- 1.0);
- gtk_adjustment_configure (self->vadj,
- 0.0,
- 0.0,
- 1.0,
- 0.1,
- 1.0,
- 1.0);
+ gtk_adjustment_set_lower (self->hadj, 0.0);
+ gtk_adjustment_set_upper (self->hadj, 1.0);
+ gtk_adjustment_set_value (self->hadj, 0.0);
+ gtk_adjustment_set_page_size (self->hadj, 1.0);
+
+ gtk_adjustment_set_lower (self->vadj, 0.0);
+ gtk_adjustment_set_upper (self->vadj, 1.0);
+ gtk_adjustment_set_value (self->vadj, 0.0);
+ gtk_adjustment_set_page_size (self->vadj, 1.0);
}
_gth_image_viewer_update_image_area (self);
- /* FIXME
g_signal_handlers_block_by_data (G_OBJECT (self->hadj), self);
g_signal_handlers_block_by_data (G_OBJECT (self->vadj), self);
gtk_adjustment_changed (self->hadj);
gtk_adjustment_changed (self->vadj);
g_signal_handlers_unblock_by_data (G_OBJECT (self->hadj), self);
g_signal_handlers_unblock_by_data (G_OBJECT (self->vadj), self);
- */
/**/
@@ -748,6 +740,7 @@ gth_image_viewer_expose (GtkWidget *widget,
self = GTH_IMAGE_VIEWER (widget);
cr = gdk_cairo_create (gtk_widget_get_window (widget));
+
cairo_set_line_width (cr, 0.5);
cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
@@ -2557,7 +2550,8 @@ gth_image_viewer_paint_region (GthImageViewer *self,
int i;
cairo_save (cr);
-
+ gdk_cairo_region (cr, region);
+ cairo_clip (cr);
gdk_cairo_rectangle (cr, pixbuf_area);
cairo_clip (cr);
@@ -2593,10 +2587,7 @@ gth_image_viewer_apply_painters (GthImageViewer *self,
for (scan = self->priv->painters; scan; scan = scan->next) {
PainterData *painter_data = scan->data;
-
- cairo_save (cr);
painter_data->func (self, event, cr, painter_data->user_data);
- cairo_restore (cr);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]