[dasher] Gtk3 uses a draw signal rather than an expose-event signal.
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher] Gtk3 uses a draw signal rather than an expose-event signal.
- Date: Wed, 13 Apr 2011 10:05:28 +0000 (UTC)
commit bb5aca5a2bbc8fd149b3c294741d08a6886c4c98
Author: Patrick Welche <prlw1 cam ac uk>
Date: Thu Mar 31 22:38:40 2011 +0200
Gtk3 uses a draw signal rather than an expose-event signal.
Src/Gtk2/DasherControl.cpp | 12 ++++++++++++
configure.ac | 2 +-
2 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/Src/Gtk2/DasherControl.cpp b/Src/Gtk2/DasherControl.cpp
index 9dc3fda..247577d 100644
--- a/Src/Gtk2/DasherControl.cpp
+++ b/Src/Gtk2/DasherControl.cpp
@@ -27,7 +27,11 @@ extern "C" gint canvas_configure_event(GtkWidget *widget, GdkEventConfigure *eve
extern "C" gint key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data);
extern "C" void canvas_destroy_event(GtkWidget *pWidget, gpointer pUserData);
extern "C" gboolean canvas_focus_event(GtkWidget *widget, GdkEventFocus *event, gpointer data);
+#ifdef HAVE_GTK_CAIRO_SHOULD_DRAW_WINDOW
+extern "C" gint canvas_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data);
+#else
extern "C" gint canvas_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
+#endif
static bool g_iTimeoutID = 0;
@@ -96,7 +100,11 @@ void CDasherControl::SetupUI() {
g_signal_connect(m_pCanvas, "key_press_event", G_CALLBACK(key_press_event), this);
g_signal_connect(m_pCanvas, "focus_in_event", G_CALLBACK(canvas_focus_event), this);
+#ifdef HAVE_GTK_CAIRO_SHOULD_DRAW_WINDOW
+ g_signal_connect(m_pCanvas, "draw", G_CALLBACK(canvas_draw_event), this);
+#else
g_signal_connect(m_pCanvas, "expose_event", G_CALLBACK(canvas_expose_event), this);
+#endif
// Create the Pango cache
@@ -651,6 +659,10 @@ extern "C" gboolean canvas_focus_event(GtkWidget *widget, GdkEventFocus *event,
return static_cast < CDasherControl * >(data)->FocusEvent(widget, event);
}
+#ifdef HAVE_GTK_CAIRO_SHOULD_DRAW_WINDOW
+extern "C" gint canvas_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) {
+#else
extern "C" gint canvas_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) {
+#endif
return ((CDasherControl*)data)->ExposeEvent();
}
diff --git a/configure.ac b/configure.ac
index 19c9181..e1004d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -219,7 +219,7 @@ then
CPPFLAGS="$CPPFLAGS $GTK2_CFLAGS"
LIBS="$LIBS $GTK2_LIBS"
AC_CHECK_HEADERS([gdk/gdkkeysyms-compat.h])
- AC_CHECK_FUNCS([gtk_builder_new gtk_show_uri gdk_window_get_width], [],
+ AC_CHECK_FUNCS([gtk_builder_new gtk_show_uri gdk_window_get_width gtk_cairo_should_draw_window], [],
[if test "x$ac_cv_func_gtk_builder_new" = "xno"; then
AC_MSG_ERROR([A version of GTK+ providing GtkBuilder is necessary.])
fi
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]