[niepce] on_expose_event() is gone in Gtkmm3. Use on_draw(). Fix display.



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]