Mercurial > pidgin
changeset 22797:369d68b5b4d4
merge of '7f78e4be502956bb580a87289cf2acfe6254ea62'
and 'adc2c416311e49c2c9279f1452fea30a94be7bfb'
author | Etan Reisner <pidgin@unreliablesource.net> |
---|---|
date | Thu, 01 May 2008 03:06:17 +0000 |
parents | 7e28f2b64982 (current diff) 9467ae6096fd (diff) |
children | 4fa58a0bd220 |
files | ChangeLog pidgin/plugins/notify.c |
diffstat | 2 files changed, 29 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Apr 30 22:52:16 2008 +0000 +++ b/ChangeLog Thu May 01 03:06:17 2008 +0000 @@ -14,10 +14,12 @@ * Added a plugin (not built by default) which adds a Send button back to the conversation window. People without physical keyboards have a hard time with the lack of the button. - * Clicking on the buddyicon in the conversation window toggles the size of - the icon between small and large. - * The settings of a chat (e.g. Handle in an XMPP chat, or Exchange in an - AIM chat) can be edited from its context menu in the buddy list. + * Clicking on the buddyicon in the conversation window toggles the + size of the icon between small and large. + * Add a "Present conversation window" preference to the Message + Notification plugin, the "Raise conversation window" option does not + unminimize windows or draw attention to them when they are on other + workspaces the "Present" option should. General: * The configure script now dies on more absent dependencies. The
--- a/pidgin/plugins/notify.c Wed Apr 30 22:52:16 2008 +0000 +++ b/pidgin/plugins/notify.c Thu May 01 03:06:17 2008 +0000 @@ -112,7 +112,7 @@ /* notification set/unset */ static int notify(PurpleConversation *conv, gboolean increment); -static void notify_win(PidginWindow *purplewin); +static void notify_win(PidginWindow *purplewin, PurpleConversation *conv); static void unnotify(PurpleConversation *conv, gboolean reset); static int unnotify_cb(GtkWidget *widget, gpointer data, PurpleConversation *conv); @@ -141,6 +141,9 @@ /* raise function */ static void handle_raise(PidginWindow *purplewin); +/* present function */ +static void handle_present(PurpleConversation *conv); + /****************************************/ /* Begin doing stuff below this line... */ /****************************************/ @@ -193,14 +196,14 @@ purple_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(count)); } - notify_win(purplewin); + notify_win(purplewin, conv); } return 0; } static void -notify_win(PidginWindow *purplewin) +notify_win(PidginWindow *purplewin, PurpleConversation *conv) { if (count_messages(purplewin) <= 0) return; @@ -215,6 +218,8 @@ handle_urgent(purplewin, TRUE); if (purple_prefs_get_bool("/plugins/gtk/X11/notify/method_raise")) handle_raise(purplewin); + if (purple_prefs_get_bool("/plugins/gtk/X11/notify/method_present")) + handle_present(conv); } static void @@ -564,6 +569,12 @@ } static void +handle_present(PurpleConversation *conv) +{ + purple_conversation_present(conv); +} + +static void type_toggle_cb(GtkWidget *widget, gpointer data) { gboolean on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); @@ -771,6 +782,14 @@ g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(method_toggle_cb), "method_raise"); + /* Present conversation method button */ + toggle = gtk_check_button_new_with_mnemonic(_("_Present conversation window")); + gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), + purple_prefs_get_bool("/plugins/gtk/X11/notify/method_present")); + g_signal_connect(G_OBJECT(toggle), "toggled", + G_CALLBACK(method_toggle_cb), "method_present"); + /*---------- "Notification Removals" ----------*/ frame = pidgin_make_frame(ret, _("Notification Removal")); vbox = gtk_vbox_new(FALSE, 5); @@ -945,6 +964,7 @@ purple_prefs_add_bool("/plugins/gtk/X11/notify/method_count", FALSE); purple_prefs_add_bool("/plugins/gtk/X11/notify/method_count_xprop", FALSE); purple_prefs_add_bool("/plugins/gtk/X11/notify/method_raise", FALSE); + purple_prefs_add_bool("/plugins/gtk/X11/notify/method_present", FALSE); purple_prefs_add_bool("/plugins/gtk/X11/notify/notify_focus", TRUE); purple_prefs_add_bool("/plugins/gtk/X11/notify/notify_click", FALSE); purple_prefs_add_bool("/plugins/gtk/X11/notify/notify_type", TRUE);