[dia] [restructuring] move Canvas::expose-event to it's own handler



commit 50cef05f4b4091f00367898e9a4b2db0d0dad385
Author: Hans Breuer <hans breuer org>
Date:   Sun Aug 26 13:01:21 2012 +0200

    [restructuring] move Canvas::expose-event to it's own handler
    
    helps deprecation, with gtk-3-0 we wont get/need it anymore

 app/disp_callbacks.c |   10 ----------
 app/interface.c      |   19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 10 deletions(-)
---
diff --git a/app/disp_callbacks.c b/app/disp_callbacks.c
index 430bdb6..ffea0f1 100644
--- a/app/disp_callbacks.c
+++ b/app/disp_callbacks.c
@@ -561,7 +561,6 @@ ddisplay_canvas_events (GtkWidget *canvas,
 			GdkEvent  *event,
 			DDisplay *ddisp)
 {
-  GdkEventExpose *eevent;
   GdkEventMotion *mevent;
   GdkEventButton *bevent;
   GdkEventKey *kevent;
@@ -587,15 +586,6 @@ ddisplay_canvas_events (GtkWidget *canvas,
 
   switch (event->type)
   {
-      case GDK_EXPOSE:
-        eevent = (GdkEventExpose *) event;
-        ddisplay_add_display_area(ddisp,
-                                  eevent->area.x, eevent->area.y,
-                                  eevent->area.x + eevent->area.width,
-                                  eevent->area.y + eevent->area.height);
-        ddisplay_flush(ddisp);
-        break;
-
       case GDK_SCROLL:
         sevent = (GdkEventScroll *) event;
 
diff --git a/app/interface.c b/app/interface.c
index 6c5113d..75d38c8 100644
--- a/app/interface.c
+++ b/app/interface.c
@@ -386,6 +386,23 @@ canvas_configure_event (GtkWidget         *widget,
   return new_size;
 }
 
+/* Got when an area previously obscured need to be redrawn.
+ * Needs GDK_EXPOSURE_MASK.
+ * Gone with gtk+-3.0 or better replaced by "draw".
+ */
+static gboolean
+canvas_expose_event (GtkWidget      *widget,
+		     GdkEventExpose *event,
+		     DDisplay       *ddisp)
+{
+  ddisplay_add_display_area (ddisp,
+			     event->area.x, event->area.y,
+			     event->area.x + event->area.width,
+			     event->area.y + event->area.height);
+  ddisplay_flush(ddisp);
+  return FALSE;
+}
+
 static GtkWidget *
 create_canvas (DDisplay *ddisp)
 {
@@ -402,6 +419,8 @@ create_canvas (DDisplay *ddisp)
 			 GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
   g_signal_connect (G_OBJECT (canvas), "configure-event",
 		    G_CALLBACK (canvas_configure_event), ddisp);
+  g_signal_connect (G_OBJECT (canvas), "expose-event",
+		    G_CALLBACK (canvas_expose_event), ddisp);
 #if GTK_CHECK_VERSION(2,18,0)
   gtk_widget_set_can_focus (canvas, TRUE);
 #else



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]