On Thu, Apr 30, 2009 at 01:38:23PM +0200, Marton Balint wrote:
> Hi,
>
> Is there a simple way to capture mouse events just like the example
> application does with keyboard events?
>
> I tried
>
> gtk_signal_connect(GTK_OBJECT(window), "button-press-event",
> GTK_SIGNAL_FUNC(vnc_click), vnc);
>
> but it only works if the vnc client is in read only mode.
What version of GTK-VNC have you got ? We fixed that problem in 0.3.7
I just confirmed that i can received events by trying this patch against
our example viewer program in GIT
Daniel
diff --git a/examples/gvncviewer.c b/examples/gvncviewer.c
index 7ccdb50..30bcd7a 100644
--- a/examples/gvncviewer.c
+++ b/examples/gvncviewer.c
@@ -287,6 +287,33 @@ static gboolean window_state_event(GtkWidget *widget,
}
#endif
+static gboolean
+do_mouse(GtkWidget *widget,
+ GdkEventMotion *motion)
+{
+ fprintf(stderr, "Do mouse\n");
+ return TRUE;
+}
+
+static gboolean
+do_button(GtkWidget *widget,
+ GdkEventButton *button)
+{
+ fprintf(stderr, "Do button\n");
+ return TRUE;
+}
+
+
+static gboolean
+do_key(GtkWidget *widget,
+ GdkEventKey *key)
+{
+ fprintf(stderr, "Do key\n");
+ return TRUE;
+}
+
+
+
int main(int argc, char **argv)
{
GOptionContext *context;
@@ -436,6 +463,14 @@ int main(int argc, char **argv)
GTK_SIGNAL_FUNC(window_state_event), layout);
#endif
+
+ gtk_signal_connect(GTK_OBJECT(vnc), "motion-notify-event",
+ GTK_SIGNAL_FUNC(do_mouse), NULL);
+ gtk_signal_connect(GTK_OBJECT(vnc), "button-press-event",
+ GTK_SIGNAL_FUNC(do_button), NULL);
+ gtk_signal_connect(GTK_OBJECT(vnc), "key-press-event",
+ GTK_SIGNAL_FUNC(do_key), NULL);
+
gtk_main();
return 0;
--
|: http://berrange.com/ -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://freshmeat.net/~danielpb/ -o- http://gtk-vnc.sourceforge.net :|
Attachment:
signature.asc
Description: Digital signature