diff -rup gtk-vnc-0.3.6.orig/src/vncdisplay.c gtk-vnc-0.3.6.new/src/vncdisplay.c --- gtk-vnc-0.3.6.orig/src/vncdisplay.c 2008-05-06 03:53:56.000000000 +0100 +++ gtk-vnc-0.3.6.new/src/vncdisplay.c 2008-08-01 12:20:30.000000000 +0100 @@ -268,8 +268,7 @@ static GdkCursor *create_null_cursor(voi return cursor; } -static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose, - gpointer data G_GNUC_UNUSED) +static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose) { VncDisplay *obj = VNC_DISPLAY(widget); VncDisplayPrivate *priv = obj->priv; @@ -488,8 +487,7 @@ void vnc_display_force_grab(VncDisplay * do_pointer_ungrab(obj, FALSE); } -static gboolean button_event(GtkWidget *widget, GdkEventButton *button, - gpointer data G_GNUC_UNUSED) +static gboolean button_event(GtkWidget *widget, GdkEventButton *button) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; int n; @@ -520,11 +518,10 @@ static gboolean button_event(GtkWidget * 0x7FFF, 0x7FFF); } - return FALSE; + return TRUE; } -static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *scroll, - gpointer data G_GNUC_UNUSED) +static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *scroll) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; int mask; @@ -558,11 +555,10 @@ static gboolean scroll_event(GtkWidget * 0x7FFF, 0x7FFF); } - return FALSE; + return TRUE; } -static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion, - gpointer data G_GNUC_UNUSED) +static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; int dx, dy; @@ -637,11 +633,10 @@ static gboolean motion_event(GtkWidget * priv->last_x = (int)motion->x; priv->last_y = (int)motion->y; - return FALSE; + return TRUE; } -static gboolean key_event(GtkWidget *widget, GdkEventKey *key, - gpointer data G_GNUC_UNUSED) +static gboolean key_event(GtkWidget *widget, GdkEventKey *key) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; guint keyval; @@ -746,19 +741,18 @@ static gboolean key_event(GtkWidget *wid do_pointer_grab(VNC_DISPLAY(widget), FALSE); } - return FALSE; + return TRUE; } -static gboolean enter_event(GtkWidget *widget, GdkEventCrossing *crossing, - gpointer data G_GNUC_UNUSED) +static gboolean enter_event(GtkWidget *widget, GdkEventCrossing *crossing) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) - return TRUE; + return FALSE; if (crossing->mode != GDK_CROSSING_NORMAL) - return TRUE; + return FALSE; if (priv->grab_keyboard) do_keyboard_grab(VNC_DISPLAY(widget), FALSE); @@ -766,16 +760,15 @@ static gboolean enter_event(GtkWidget *w return TRUE; } -static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing, - gpointer data G_GNUC_UNUSED) +static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) - return TRUE; + return FALSE; if (crossing->mode != GDK_CROSSING_NORMAL) - return TRUE; + return FALSE; if (priv->grab_keyboard) do_keyboard_ungrab(VNC_DISPLAY(widget), FALSE); @@ -784,14 +777,13 @@ static gboolean leave_event(GtkWidget *w } -static gboolean focus_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UNUSED, - gpointer data G_GNUC_UNUSED) +static gboolean focus_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UNUSED) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; int i; if (priv->gvnc == NULL || !gvnc_is_initialized(priv->gvnc)) - return TRUE; + return FALSE; for (i = 0 ; i < (int)(sizeof(priv->down_keyval)/sizeof(priv->down_keyval[0])) ; i++) { /* We are currently pressed so... */ @@ -808,7 +800,7 @@ static gboolean focus_event(GtkWidget *w } #if WITH_GTKGLEXT -static void realize_event(GtkWidget *widget, gpointer data G_GNUC_UNUSED) +static void realize_event(GtkWidget *widget) { VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv; @@ -1202,8 +1194,7 @@ static void rescale_display(VncDisplay * } } -static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *configure, - gpointer data G_GNUC_UNUSED) +static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *configure) { VncDisplay *obj = VNC_DISPLAY(widget); VncDisplayPrivate *priv = obj->priv; @@ -1781,6 +1772,23 @@ static void vnc_display_class_init(VncDi { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS (klass); + GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); + + gtkwidget_class->expose_event = expose_event; + gtkwidget_class->motion_notify_event = motion_event; + gtkwidget_class->button_press_event = button_event; + gtkwidget_class->button_release_event = button_event; + gtkwidget_class->scroll_event = scroll_event; + gtkwidget_class->key_press_event = key_event; + gtkwidget_class->key_release_event = key_event; + gtkwidget_class->enter_notify_event = enter_event; + gtkwidget_class->leave_notify_event = leave_event; + gtkwidget_class->focus_out_event = focus_event; +#if WITH_GTKGLEXT + gtkwidget_class->realize = realize_event; + gtkwidget_class->configure_event = configure_event; +#endif + object_class->finalize = vnc_display_finalize; object_class->get_property = vnc_display_get_property; @@ -2062,33 +2070,6 @@ static void vnc_display_init(VncDisplay GtkWidget *widget = GTK_WIDGET(display); VncDisplayPrivate *priv; - g_signal_connect(obj, "expose-event", - G_CALLBACK(expose_event), NULL); - g_signal_connect(obj, "motion-notify-event", - G_CALLBACK(motion_event), NULL); - g_signal_connect(obj, "button-press-event", - G_CALLBACK(button_event), NULL); - g_signal_connect(obj, "button-release-event", - G_CALLBACK(button_event), NULL); - g_signal_connect(obj, "scroll-event", - G_CALLBACK(scroll_event), NULL); - g_signal_connect(obj, "key-press-event", - G_CALLBACK(key_event), NULL); - g_signal_connect(obj, "key-release-event", - G_CALLBACK(key_event), NULL); - g_signal_connect(obj, "enter-notify-event", - G_CALLBACK(enter_event), NULL); - g_signal_connect(obj, "leave-notify-event", - G_CALLBACK(leave_event), NULL); - g_signal_connect(obj, "focus-out-event", - G_CALLBACK(focus_event), NULL); -#if WITH_GTKGLEXT - g_signal_connect(obj, "realize", - G_CALLBACK(realize_event), NULL); - g_signal_connect(obj, "configure-event", - G_CALLBACK(configure_event), NULL); -#endif - GTK_WIDGET_SET_FLAGS(obj, GTK_CAN_FOCUS); gtk_widget_add_events(widget,