[niepce] on_expose_event() is gone in Gtkmm3. Use on_draw(). Fix display.
- From: Hubert FiguiÃre <hub src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [niepce] on_expose_event() is gone in Gtkmm3. Use on_draw(). Fix display.
- Date: Wed, 18 Jul 2012 04:31:02 +0000 (UTC)
commit 906824b8d8a2971a06f3652f68133828a042059a
Author: Hubert FiguiÃre <hub figuiere net>
Date: Thu May 31 21:22:35 2012 -0700
on_expose_event() is gone in Gtkmm3. Use on_draw(). Fix display.
src/niepce/modules/darkroom/imagecanvas.cpp | 16 +++++-----------
src/niepce/modules/darkroom/imagecanvas.hpp | 2 +-
2 files changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/src/niepce/modules/darkroom/imagecanvas.cpp b/src/niepce/modules/darkroom/imagecanvas.cpp
index d62f83a..8415675 100644
--- a/src/niepce/modules/darkroom/imagecanvas.cpp
+++ b/src/niepce/modules/darkroom/imagecanvas.cpp
@@ -84,7 +84,7 @@ void ImageCanvas::_calc_image_frame(int img_w, int img_h,
// DBG_OUT("image frame %f %f %f %f", x, y, width, height);
}
-bool ImageCanvas::on_expose_event(GdkEventExpose *ev)
+bool ImageCanvas::on_draw(const Cairo::RefPtr<Cairo::Context>& context)
{
// no image, just pass.
if(!m_image) {
@@ -92,11 +92,6 @@ bool ImageCanvas::on_expose_event(GdkEventExpose *ev)
return false;
}
-
- Cairo::RefPtr<Cairo::Context> context = get_window()->create_cairo_context();
- context->rectangle(ev->area.x, ev->area.y, ev->area.width, ev->area.height);
- context->clip();
-
if(m_need_redisplay) {
_redisplay();
@@ -111,7 +106,7 @@ bool ImageCanvas::on_expose_event(GdkEventExpose *ev)
// query the image.
- Cairo::RefPtr<Cairo::Surface> img_s
+ Cairo::RefPtr<Cairo::Surface> img_s
= m_image->cairo_surface_for_display();
if(!img_s) {
DBG_OUT("no image loaded");
@@ -123,10 +118,10 @@ bool ImageCanvas::on_expose_event(GdkEventExpose *ev)
canvas_w = get_width();
DBG_OUT("canvas w = %d ; h = %d", canvas_w, canvas_h);
- m_backingstore
- = Cairo::Surface::create(img_s, Cairo::CONTENT_COLOR,
+ m_backingstore
+ = Cairo::Surface::create(img_s, Cairo::CONTENT_COLOR,
canvas_w, canvas_h);
- Cairo::RefPtr<Cairo::Context> sc
+ Cairo::RefPtr<Cairo::Context> sc
= Cairo::Context::create(m_backingstore);
@@ -156,7 +151,6 @@ bool ImageCanvas::on_expose_event(GdkEventExpose *ev)
// sc->set_line_width(1.0);
// sc->rectangle(x, y, out_w, out_h);
// sc->stroke();
-
m_need_redisplay = false;
}
diff --git a/src/niepce/modules/darkroom/imagecanvas.hpp b/src/niepce/modules/darkroom/imagecanvas.hpp
index 107dba2..33f4ce8 100644
--- a/src/niepce/modules/darkroom/imagecanvas.hpp
+++ b/src/niepce/modules/darkroom/imagecanvas.hpp
@@ -54,7 +54,7 @@ public:
return m_zoom_mode;
}
protected:
- virtual bool on_expose_event(GdkEventExpose *);
+ virtual bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
private:
void on_image_reloaded();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]