# HG changeset patch # User Elliott Sales de Andrade # Date 1290841908 0 # Node ID 5e6997ae07e28a17ef4fb9a427f02e0e43950248 # Parent b1022aa66b8a8718cde6dd7f13e2b69d128479fe The left/right scroll, and close buttons in a PidginScrollBook should only react to single button presses. This addresses an issue I saw in the minidialog where "extra" authorization requests were closed if I clicked them too fast. diff -r b1022aa66b8a -r 5e6997ae07e2 pidgin/gtkscrollbook.c --- a/pidgin/gtkscrollbook.c Sat Nov 27 07:08:24 2010 +0000 +++ b/pidgin/gtkscrollbook.c Sat Nov 27 07:11:48 2010 +0000 @@ -65,9 +65,13 @@ } static gboolean -scroll_left_cb(PidginScrollBook *scroll_book) +scroll_left_cb(PidginScrollBook *scroll_book, GdkEventButton *event) { int index; + + if (event->type != GDK_BUTTON_PRESS) + return FALSE; + index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); if (index > 0) @@ -76,9 +80,13 @@ } static gboolean -scroll_right_cb(PidginScrollBook *scroll_book) +scroll_right_cb(PidginScrollBook *scroll_book, GdkEventButton *event) { int index, count; + + if (event->type != GDK_BUTTON_PRESS) + return FALSE; + index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); @@ -131,9 +139,10 @@ } static gboolean -scroll_close_cb(PidginScrollBook *scroll_book) +scroll_close_cb(PidginScrollBook *scroll_book, GdkEventButton *event) { - gtk_widget_destroy(gtk_notebook_get_nth_page(GTK_NOTEBOOK(scroll_book->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)))); + if (event->type == GDK_BUTTON_PRESS) + gtk_widget_destroy(gtk_notebook_get_nth_page(GTK_NOTEBOOK(scroll_book->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)))); return FALSE; }