From 9a7050235c726d4f85bfce8bd4081ab137fe11d3 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 7 Mar 2008 18:23:24 +0000 Subject: [PATCH] Click to dismiss cow git-svn-id: http://svn.nickg.me.uk/work/xcowsay@283 a97b1542-0b21-0410-a459-e47997c36f34 --- configure.ac | 2 +- display_cow.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 137b0e3..6d0edf3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([xcowsay], [0.4.1], +AC_INIT([xcowsay], [0.5], [Nick Gasson ], [xcowsay]) AM_INIT_AUTOMAKE([-Wall]) diff --git a/display_cow.c b/display_cow.c index cb2dfff..9f8cac5 100644 --- a/display_cow.c +++ b/display_cow.c @@ -258,6 +258,15 @@ static gboolean tick(gpointer data) return (xcowsay.state != csCleanup); } +static gboolean cow_clicked(GtkWidget *widget, GdkEventButton *event, gpointer data) +{ + if (csDisplay == xcowsay.state) { + xcowsay.transition_timeout = 0; + tick(NULL); + } + return true; +} + void cowsay_init(int *argc, char ***argv) { gtk_init(argc, argv); @@ -348,6 +357,12 @@ void display_cow(bool debug, const char *text) xcowsay.state = csLeadIn; xcowsay.transition_timeout = get_int_option("lead_in_time"); g_timeout_add(TICK_TIMEOUT, tick, NULL); + + GdkEventMask events = gdk_window_get_events(shape_window(xcowsay.cow)->window); + events |= GDK_BUTTON_PRESS_MASK; + gdk_window_set_events(shape_window(xcowsay.cow)->window, events); + g_signal_connect(G_OBJECT(shape_window(xcowsay.cow)), "button-press-event", + G_CALLBACK(cow_clicked), NULL); gtk_main(); -- 2.39.2