From fe43bca85b269314b007cd9b2eecc4a52aa73dde Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 25 Feb 2013 15:20:42 +0000 Subject: [PATCH] Replace expose-event handler with draw handler in GTK3 In GTK3 the 'expose-event' signal has been replaced by a new 'draw' signal. The only difference is that the latter will pre-create the cairo drawing context & set the clip mask. Since the drawing code is already structured in a nice way, we can just wire up the 'gd_draw_event' method to the 'draw' signal in GTK3 Signed-off-by: Daniel P. Berrange Message-id: 1361805646-6425-10-git-send-email-berrange@redhat.com Signed-off-by: Anthony Liguori --- ui/gtk.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ui/gtk.c b/ui/gtk.c index c89c7c4f8b..fa4c3b0d12 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -433,6 +433,7 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque) return TRUE; } +#if !GTK_CHECK_VERSION(3, 0, 0) static gboolean gd_expose_event(GtkWidget *widget, GdkEventExpose *expose, void *opaque) { @@ -453,6 +454,7 @@ static gboolean gd_expose_event(GtkWidget *widget, GdkEventExpose *expose, return ret; } +#endif static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, void *opaque) @@ -1100,8 +1102,13 @@ static void gd_connect_signals(GtkDisplayState *s) g_signal_connect(s->window, "delete-event", G_CALLBACK(gd_window_close), s); +#if GTK_CHECK_VERSION(3, 0, 0) + g_signal_connect(s->drawing_area, "draw", + G_CALLBACK(gd_draw_event), s); +#else g_signal_connect(s->drawing_area, "expose-event", G_CALLBACK(gd_expose_event), s); +#endif g_signal_connect(s->drawing_area, "motion-notify-event", G_CALLBACK(gd_motion_event), s); g_signal_connect(s->drawing_area, "button-press-event", -- 2.11.4.GIT