# HG changeset patch # User Richard Laager # Date 1183252169 0 # Node ID b1fc539eb3906c99fa6eb6a7329c5712043251d4 # Parent 0ef0b2ead713f200d57fef8bafbe0d69fbf80715# Parent 693f9b544e2b0b0550d9733a5ecfb2347d9bba67 merge of '00f5a5bbf5027e924850c72a98b88981dbd260f8' and '358b68d6338e9e6305f7f3b82800a9b56ab4ea11' diff -r 693f9b544e2b -r b1fc539eb390 libpurple/dbus-useful.c diff -r 693f9b544e2b -r b1fc539eb390 libpurple/debug.c diff -r 693f9b544e2b -r b1fc539eb390 libpurple/plugins/perl/common/Connection.xs diff -r 693f9b544e2b -r b1fc539eb390 libpurple/protocols/jabber/jutil.c diff -r 693f9b544e2b -r b1fc539eb390 libpurple/protocols/yahoo/yahoochat.h diff -r 693f9b544e2b -r b1fc539eb390 pidgin/gtkdocklet.c diff -r 693f9b544e2b -r b1fc539eb390 pidgin/gtkimhtmltoolbar.c --- a/pidgin/gtkimhtmltoolbar.c Sun Jul 01 01:13:54 2007 +0000 +++ b/pidgin/gtkimhtmltoolbar.c Sun Jul 01 01:09:29 2007 +0000 @@ -37,6 +37,8 @@ #include "gtkthemes.h" #include "gtkutils.h" +#include + static GtkHBoxClass *parent_class = NULL; static void toggle_button_set_active_block(GtkToggleButton *button, @@ -629,7 +631,6 @@ return ls; } - static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { @@ -642,6 +643,18 @@ return TRUE; } +static gboolean +smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar) +{ + if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_Escape) || + (event->type == GDK_BUTTON_PRESS && event->button.button == 1)) + { + close_smiley_dialog(NULL, NULL, toolbar); + return TRUE; + } + + return FALSE; +} static void insert_smiley_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar) @@ -720,11 +733,16 @@ free(it_tmp); } gtk_box_pack_start(GTK_BOX(smiley_table), line, FALSE, TRUE, 0); + + gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK); } else { smiley_table = gtk_label_new(_("This theme has no available smileys.")); + gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK); + g_signal_connect(G_OBJECT(dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar); } + g_signal_connect(G_OBJECT(dialog), "key-press-event", (GCallback)smiley_dialog_input_cb, toolbar); gtk_container_add(GTK_CONTAINER(dialog), smiley_table); gtk_widget_show(smiley_table); diff -r 693f9b544e2b -r b1fc539eb390 pidgin/gtklog.c diff -r 693f9b544e2b -r b1fc539eb390 pidgin/plugins/gestures/gestures.c diff -r 693f9b544e2b -r b1fc539eb390 pidgin/plugins/notify.c diff -r 693f9b544e2b -r b1fc539eb390 pidgin/plugins/spellchk.c diff -r 693f9b544e2b -r b1fc539eb390 pidgin/plugins/timestamp.c