# HG changeset patch # User Ethan Blanton # Date 1196179023 0 # Node ID d804f5b656cd98a9fa101b7b8d944d5a072c2338 # Parent 8451e0d5eb8368bc6b0ac4d1b16071cecb85f8ea# Parent baa25b6139997689f1afdfc6bf6b8a846f428c78 merge of '58c35aec5c3cdd46ab59070b5e659782d73d8001' and 'ee39fe2d2bc694cf58bd99f447589b8e19da8c66' diff -r 8451e0d5eb83 -r d804f5b656cd pidgin/gtkconv.c --- a/pidgin/gtkconv.c Tue Nov 27 09:57:44 2007 +0000 +++ b/pidgin/gtkconv.c Tue Nov 27 15:57:03 2007 +0000 @@ -235,11 +235,7 @@ switch (purple_conversation_get_type(conv)) { case PURPLE_CONV_TYPE_IM: { - if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/close_immediately")) - close_this_sucker(gtkconv); - else - hide_conv(gtkconv, TRUE); - break; + hide_conv(gtkconv, TRUE); } case PURPLE_CONV_TYPE_CHAT: { @@ -5036,7 +5032,7 @@ gtk_widget_show(gtkconv->toolbar); else gtk_widget_hide(gtkconv->toolbar); - g_idle_add(resize_imhtml_cb, gtkconv); + g_idle_add((GSourceFunc)resize_imhtml_cb, gtkconv); if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons")) gtk_widget_show(gtkconv->infopane_hbox); @@ -7048,7 +7044,7 @@ else gtk_widget_hide(gtkconv->toolbar); - g_idle_add(resize_imhtml_cb,gtkconv); + g_idle_add((GSourceFunc)resize_imhtml_cb,gtkconv); } } @@ -7549,7 +7545,6 @@ purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons", TRUE); purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new", "never"); - purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/im/close_immediately", TRUE); #ifdef _WIN32 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/win32/minimize_new_convs", FALSE); diff -r 8451e0d5eb83 -r d804f5b656cd pidgin/gtkimhtml.c --- a/pidgin/gtkimhtml.c Tue Nov 27 09:57:44 2007 +0000 +++ b/pidgin/gtkimhtml.c Tue Nov 27 15:57:03 2007 +0000 @@ -31,6 +31,7 @@ #include "internal.h" #include "pidgin.h" +#include "pidginstock.h" #include "debug.h" #include "util.h" @@ -811,6 +812,7 @@ static void hijack_menu_cb(GtkIMHtml *imhtml, GtkMenu *menu, gpointer data) { GtkWidget *menuitem; + GtkWidget *mi, *img; menuitem = gtk_menu_item_new_with_mnemonic(_("Paste as Plain _Text")); gtk_widget_show(menuitem); @@ -836,6 +838,28 @@ gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 5); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(clear_formatting_cb), imhtml); + + mi = gtk_menu_item_new(); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Smile!")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Insert")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(GTK_STOCK_BOLD, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Font")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); } static char * @@ -4257,6 +4281,33 @@ g_object_unref(object); } +static void populate_popup_cb(GtkTextView *textview, GtkMenu *menu, gpointer nul) +{ + GtkWidget *mi, *img; + + mi = gtk_menu_item_new(); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(GTK_STOCK_BOLD, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Font")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Insert")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); + + img = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY, GTK_ICON_SIZE_MENU); + mi = gtk_image_menu_item_new_with_label(_("_Smile!")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img); + gtk_widget_show(mi); + gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), mi); +} + static void imhtml_toggle_bold(GtkIMHtml *imhtml) { GtkTextIter start, end; diff -r 8451e0d5eb83 -r d804f5b656cd pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Tue Nov 27 09:57:44 2007 +0000 +++ b/pidgin/gtkprefs.c Tue Nov 27 15:57:03 2007 +0000 @@ -995,8 +995,6 @@ pidgin_prefs_checkbox(_("Show _formatting on incoming messages"), PIDGIN_PREFS_ROOT "/conversations/show_incoming_formatting", vbox); - pidgin_prefs_checkbox(_("Close IMs immediately when the tab is closed"), - PIDGIN_PREFS_ROOT "/conversations/im/close_immediately", vbox); iconpref1 = pidgin_prefs_checkbox(_("Show _detailed information"), PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons", vbox); @@ -2306,6 +2304,7 @@ purple_prefs_remove(PIDGIN_PREFS_ROOT "/blist/show_group_count"); purple_prefs_remove(PIDGIN_PREFS_ROOT "/blist/show_warning_level"); purple_prefs_remove(PIDGIN_PREFS_ROOT "/conversations/button_type"); + purple_prefs_remove(PIDGIN_PREFS_ROOT "/conversations/close_immediately"); purple_prefs_remove(PIDGIN_PREFS_ROOT "/conversations/ctrl_enter_sends"); purple_prefs_remove(PIDGIN_PREFS_ROOT "/conversations/enter_sends"); purple_prefs_remove(PIDGIN_PREFS_ROOT "/conversations/escape_closes");