Mercurial > pidgin
changeset 22779:9467ae6096fd
merge of '52c0efb045580dac7b6f5e40c91002e917e0cae3'
and 'c0a4f0ab190b75af3dd06de77efc3ac462a4d6c7'
author | Etan Reisner <pidgin@unreliablesource.net> |
---|---|
date | Tue, 29 Apr 2008 03:31:51 +0000 |
parents | f1a4ad1526a2 (current diff) 122476d8821d (diff) |
children | 369d68b5b4d4 |
files | |
diffstat | 2 files changed, 29 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Apr 29 02:58:23 2008 +0000 +++ b/ChangeLog Tue Apr 29 03:31:51 2008 +0000 @@ -14,8 +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. + * 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 Tue Apr 29 02:58:23 2008 +0000 +++ b/pidgin/plugins/notify.c Tue Apr 29 03:31:51 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);