[gtk-vnc] Add fix to remove use of GdkDrawble for GTK3 compat

Daniel P. Berrange berrange at fedoraproject.org
Mon Jan 10 11:18:24 UTC 2011


commit 2d7b25978c67a54d20a8e881220eebbea4854ebc
Author: Daniel P. Berrange <berrange at redhat.com>
Date:   Mon Jan 10 11:17:57 2011 +0000

    Add fix to remove use of GdkDrawble for GTK3 compat

 gtk-vnc-0.4.2-gtk3-drawable.patch |   54 +++++++++++++++++++++++++++++++++++++
 gtk-vnc.spec                      |    7 ++++-
 2 files changed, 60 insertions(+), 1 deletions(-)
---
diff --git a/gtk-vnc-0.4.2-gtk3-drawable.patch b/gtk-vnc-0.4.2-gtk3-drawable.patch
new file mode 100644
index 0000000..77075a2
--- /dev/null
+++ b/gtk-vnc-0.4.2-gtk3-drawable.patch
@@ -0,0 +1,54 @@
+commit d2ad64e8fc13817f8fd7bfada5daf44230235446
+Author: Daniel P. Berrange <berrange at redhat.com>
+Date:   Thu Dec 9 17:48:28 2010 +0000
+
+    Adapt to avoid further Gtk3 changes
+    
+    More gdk_drawable calls have gone away in Gtk3. Adapt code to avoid
+    needing to use them, by calling gtk_widget APIs instead.
+
+diff --git a/src/vncdisplay.c b/src/vncdisplay.c
+index 33d2623..deab4d8 100644
+--- a/src/vncdisplay.c
++++ b/src/vncdisplay.c
+@@ -139,10 +139,6 @@ static inline void gdk_drawable_get_size(GdkWindow *w, gint *ww, gint *wh)
+ 	*wh = gdk_window_get_height(w);
+ }
+ 
+-#define gdk_drawable_get_display(w) gdk_window_get_display(w)
+-#define gdk_drawable_get_screen(w) gdk_window_get_screen(w)
+-#define gdk_drawable_get_visual(w) gdk_window_get_visual(w)
+-
+ #define GtkObject GtkWidget
+ #define GtkObjectClass GtkWidgetClass
+ #define GTK_OBJECT_CLASS(c) GTK_WIDGET_CLASS(c)
+@@ -629,9 +625,8 @@ static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion)
+ 
+ 	/* Next adjust the real client pointer */
+ 	if (!priv->absolute) {
+-		GdkDrawable *drawable = GDK_DRAWABLE(gtk_widget_get_window(widget));
+-		GdkDisplay *display = gdk_drawable_get_display(drawable);
+-		GdkScreen *screen = gdk_drawable_get_screen(drawable);
++		GdkDisplay *display = gtk_widget_get_display(widget);
++		GdkScreen *screen = gtk_widget_get_screen(widget);
+ 		int x = (int)motion->x_root;
+ 		int y = (int)motion->y_root;
+ 
+@@ -1009,7 +1004,7 @@ static void on_pixel_format_changed(VncConnection *conn G_GNUC_UNUSED,
+ static gboolean vnc_display_set_preferred_pixel_format(VncDisplay *display)
+ {
+ 	VncDisplayPrivate *priv = display->priv;
+-	GdkVisual *v =  gdk_drawable_get_visual(gtk_widget_get_window(GTK_WIDGET(display)));
++	GdkVisual *v =  gtk_widget_get_visual(GTK_WIDGET(display));
+ 	VncPixelFormat fmt;
+ 	const VncPixelFormat *currentFormat;
+ 
+@@ -1260,7 +1255,7 @@ static void on_cursor_changed(VncConnection *conn G_GNUC_UNUSED,
+ 	}
+ 
+ 	if (cursor) {
+-		GdkDisplay *display = gdk_drawable_get_display(GDK_DRAWABLE(gtk_widget_get_window(GTK_WIDGET(obj))));
++		GdkDisplay *display = gtk_widget_get_display(GTK_WIDGET(obj));
+ 		GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data(vnc_cursor_get_data(cursor),
+ 							     GDK_COLORSPACE_RGB,
+ 							     TRUE, 8,
diff --git a/gtk-vnc.spec b/gtk-vnc.spec
index ee7e549..8368333 100644
--- a/gtk-vnc.spec
+++ b/gtk-vnc.spec
@@ -27,6 +27,7 @@ Patch2: %{name}-%{version}-tls-shutdown-crash.patch
 Patch3: %{name}-%{version}-framebuffer-update-bounds-check.patch
 Patch4: %{name}-%{version}-pixmap-cache.patch
 Patch5: %{name}-%{version}-source-unref.patch
+Patch6: %{name}-%{version}-gtk3-drawable.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 URL: http://live.gnome.org/gtk-vnc
 BuildRequires: gtk2-devel >= 2.14
@@ -156,6 +157,7 @@ cd %{name}-%{version}
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 cd ..
 %if %{with_gtk3}
 cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
@@ -301,7 +303,10 @@ rm -fr %{buildroot}
 
 
 %changelog
-* Sun Jan  5 2011 Matthias Clasen <mclasen at redhat.com> - 0.4.2-5
+* Mon Jan 10 2011 Daniel P. Berrange <berrange at redhat.com> - 0.4.2-5
+- Add fix to remove use of GdkDrawble for GTK3 compat
+
+* Sun Jan  9 2011 Matthias Clasen <mclasen at redhat.com> - 0.4.2-5
 - Rebuild against newer gtk3
 
 * Tue Dec 14 2010 Daniel P. Berrange <berrange at redhat.com> - 0.4.2-4


More information about the scm-commits mailing list