Add fix to remove use of GdkDrawble for GTK3 compat

This commit is contained in:
Daniel P. Berrange 2011-01-10 11:17:57 +00:00
parent 4cfb24a86e
commit 2d7b25978c
2 changed files with 60 additions and 1 deletions

View File

@ -0,0 +1,54 @@
commit d2ad64e8fc13817f8fd7bfada5daf44230235446
Author: Daniel P. Berrange <berrange@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,

View File

@ -27,6 +27,7 @@ Patch2: %{name}-%{version}-tls-shutdown-crash.patch
Patch3: %{name}-%{version}-framebuffer-update-bounds-check.patch Patch3: %{name}-%{version}-framebuffer-update-bounds-check.patch
Patch4: %{name}-%{version}-pixmap-cache.patch Patch4: %{name}-%{version}-pixmap-cache.patch
Patch5: %{name}-%{version}-source-unref.patch Patch5: %{name}-%{version}-source-unref.patch
Patch6: %{name}-%{version}-gtk3-drawable.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
URL: http://live.gnome.org/gtk-vnc URL: http://live.gnome.org/gtk-vnc
BuildRequires: gtk2-devel >= 2.14 BuildRequires: gtk2-devel >= 2.14
@ -156,6 +157,7 @@ cd %{name}-%{version}
%patch3 -p1 %patch3 -p1
%patch4 -p1 %patch4 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1
cd .. cd ..
%if %{with_gtk3} %if %{with_gtk3}
cp -a gtk-vnc-%{version} gtk-vnc2-%{version} cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
@ -301,7 +303,10 @@ rm -fr %{buildroot}
%changelog %changelog
* Sun Jan 5 2011 Matthias Clasen <mclasen@redhat.com> - 0.4.2-5 * Mon Jan 10 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-5
- Add fix to remove use of GdkDrawble for GTK3 compat
* Sun Jan 9 2011 Matthias Clasen <mclasen@redhat.com> - 0.4.2-5
- Rebuild against newer gtk3 - Rebuild against newer gtk3
* Tue Dec 14 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-4 * Tue Dec 14 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-4