# HG changeset patch # User Gabriel Schulhof # Date 1189624298 0 # Node ID 6a0d9fa477d47dc543e2824f38d131cbe24b6b00 # Parent 0633ecda7ed0eb98b788ec671b156d6aca0d1f11# Parent 7a118cacd4b0c48b082b9e442251db11e1105211 propagate from branch 'im.pidgin.pidgin' (head 483b6435074838149d6e95b836d4a2d9263f265d) to branch 'org.maemo.garage.pidgin.pidgin.dialog-transience' (head 656aa6cb789d7885b3a72600bf323c104d8ebfd8) diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntblist.c --- a/finch/gntblist.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntblist.c Wed Sep 12 19:11:38 2007 +0000 @@ -342,7 +342,7 @@ _("Add"), G_CALLBACK(add_buddy_cb), _("Cancel"), NULL, account, NULL, NULL, - NULL); + "blist", NULL); } static void @@ -419,7 +419,7 @@ _("You can edit more information from the context menu later."), fields, _("Add"), G_CALLBACK(add_chat_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } static void @@ -454,7 +454,7 @@ NULL, FALSE, FALSE, NULL, _("Add"), G_CALLBACK(add_group_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } static PurpleBlistUiOps blist_ui_ops = @@ -801,7 +801,7 @@ purple_request_fields(NULL, _("Edit Chat"), NULL, _("Please Update the necessary fields."), fields, _("Edit"), G_CALLBACK(chat_components_edit_ok), _("Cancel"), NULL, NULL, NULL, NULL, - chat); + "blist", chat); } static void @@ -1003,7 +1003,7 @@ name, FALSE, FALSE, NULL, text, G_CALLBACK(rename_blist_node), _("Cancel"), NULL, NULL, NULL, NULL, - node); + "blist", node); g_free(prompt); } @@ -1095,7 +1095,7 @@ primary, sec, 1, account, name, NULL, - node, 2, + "blist", node, 2, _("Remove"), finch_blist_remove_node, _("Cancel"), NULL); g_free(primary); @@ -2220,7 +2220,7 @@ _("OK"), G_CALLBACK(send_im_select_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } static void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntplugin.c --- a/finch/gntplugin.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntplugin.c Wed Sep 12 19:11:38 2007 +0000 @@ -377,6 +377,6 @@ return purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, _("Save"), G_CALLBACK(finch_request_save_in_prefs), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "plugins", NULL); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntpounce.c --- a/finch/gntpounce.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntpounce.c Wed Sep 12 19:11:38 2007 +0000 @@ -661,7 +661,7 @@ buf = g_strdup_printf(_("Are you sure you want to delete the pounce on %s for %s?"), pouncee, pouncer); purple_request_action(pounce, NULL, buf, NULL, 0, account, pouncee, NULL, - pounce, 2, + "pounces", pounce, 2, _("Delete"), pounces_manager_delete_confirm_cb, _("Cancel"), NULL); g_free(buf); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntprefs.c --- a/finch/gntprefs.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntprefs.c Wed Sep 12 19:11:38 2007 +0000 @@ -263,6 +263,6 @@ pref_request.window = purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, _("Save"), G_CALLBACK(save_cb), _("Cancel"), free_strings, NULL, NULL, NULL, - NULL); + "preferences", NULL); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntrequest.c --- a/finch/gntrequest.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntrequest.c Wed Sep 12 19:11:38 2007 +0000 @@ -145,7 +145,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { GntWidget *window, *box, *entry; @@ -202,7 +202,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, va_list choices) + const char *ui_hint, void *user_data, va_list choices) { GntWidget *window, *combo, *box; const char *text; @@ -246,7 +246,7 @@ finch_request_action(const char *title, const char *primary, const char *secondary, int default_value, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t actioncount, + const char *ui_hint, void *user_data, size_t actioncount, va_list actions) { GntWidget *window, *box, *button; @@ -390,7 +390,7 @@ const char *ok, GCallback ok_cb, const char *cancel, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *userdata) + const char *ui_hint, void *userdata) { GntWidget *window, *box; GList *grlist; @@ -642,7 +642,7 @@ gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { GntWidget *window = gnt_file_sel_new(); GntFileSel *sel = GNT_FILE_SEL(window); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 finch/gntstatus.c --- a/finch/gntstatus.c Wed Sep 12 15:59:22 2007 +0000 +++ b/finch/gntstatus.c Wed Sep 12 19:11:38 2007 +0000 @@ -139,7 +139,7 @@ purple_request_action(saved, _("Delete Status"), ask, NULL, 0, NULL, NULL, NULL, - saved, 2, + "statuses", saved, 2, _("Delete"), really_delete_status, _("Cancel"), NULL); g_free(ask); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/account.c --- a/libpurple/account.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/account.c Wed Sep 12 19:11:38 2007 +0000 @@ -1003,7 +1003,7 @@ _("OK"), ok_cb, _("Cancel"), cancel_cb, account, NULL, NULL, - user_data); + "account", user_data); g_free(primary); } @@ -1253,7 +1253,7 @@ _("OK"), G_CALLBACK(change_password_cb), _("Cancel"), NULL, account, NULL, NULL, - account); + "account", account); } static void @@ -1288,7 +1288,7 @@ _("Save"), G_CALLBACK(set_user_info_cb), _("Cancel"), NULL, account, NULL, NULL, - account); + "account", account); } void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/conversation.c --- a/libpurple/conversation.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/conversation.c Wed Sep 12 19:11:38 2007 +0000 @@ -1210,7 +1210,7 @@ purple_request_action(conv, NULL, _("Send Message"), text, 0, purple_conversation_get_account(conv), NULL, conv, - data, 2, + "conversation", data, 2, _("_Send Message"), G_CALLBACK(purple_conv_send_confirm_cb), _("Cancel"), NULL); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/ft.c --- a/libpurple/ft.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/ft.c Wed Sep 12 19:11:38 2007 +0000 @@ -312,7 +312,7 @@ G_CALLBACK(purple_xfer_choose_file_ok_cb), G_CALLBACK(purple_xfer_choose_file_cancel_cb), purple_xfer_get_account(xfer), xfer->who, NULL, - xfer); + "xfer", xfer); return 0; } @@ -360,7 +360,7 @@ purple_request_accept_cancel(xfer, NULL, buf, NULL, PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, - xfer, + "xfer", xfer, G_CALLBACK(purple_xfer_choose_file), G_CALLBACK(cancel_recv_cb)); @@ -403,7 +403,7 @@ purple_request_accept_cancel(xfer, NULL, buf, buf2, PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, - xfer, + "xfer", xfer, G_CALLBACK(ask_accept_ok), G_CALLBACK(ask_accept_cancel)); g_free(buf); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/plugins/autoaccept.c --- a/libpurple/plugins/autoaccept.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/plugins/autoaccept.c Wed Sep 12 19:11:38 2007 +0000 @@ -164,7 +164,7 @@ _("_Save"), G_CALLBACK(save_cb), _("_Cancel"), NULL, NULL, NULL, NULL, - node, + "xfer", node, _("Ask"), FT_ASK, _("Auto Accept"), FT_ACCEPT, _("Auto Reject"), FT_REJECT, diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/plugins/buddynote.c --- a/libpurple/plugins/buddynote.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/plugins/buddynote.c Wed Sep 12 19:11:38 2007 +0000 @@ -50,7 +50,7 @@ _("Save"), G_CALLBACK(do_it_cb), _("Cancel"), G_CALLBACK(dont_do_it_cb), NULL, NULL, NULL, - node); + "buddy", node); } static void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/plugins/idle.c --- a/libpurple/plugins/idle.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/plugins/idle.c Wed Sep 12 19:11:38 2007 +0000 @@ -169,7 +169,7 @@ _("_Set"), G_CALLBACK(idle_action_ok), _("_Cancel"), NULL, NULL, NULL, NULL, - NULL); + "account", NULL); } static void @@ -203,7 +203,7 @@ _("_Unset"), G_CALLBACK(unidle_action_ok), _("_Cancel"), NULL, NULL, NULL, NULL, - NULL); + "account", NULL); } static void @@ -229,7 +229,7 @@ _("_Set"), G_CALLBACK(idle_all_action_ok), _("_Cancel"), NULL, NULL, NULL, NULL, - NULL); + "account", NULL); } static void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/plugins/offlinemsg.c --- a/libpurple/plugins/offlinemsg.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/plugins/offlinemsg.c Wed Sep 12 19:11:38 2007 +0000 @@ -161,7 +161,7 @@ _("You can edit/delete the pounce from the `Buddy Pounces' dialog"), 1, offline->account, offline->who, offline->conv, - offline, 2, + "buddy", offline, 2, _("Yes"), record_pounce, _("No"), cancel_poune); g_free(ask); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/plugins/perl/common/Request.xs --- a/libpurple/plugins/perl/common/Request.xs Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/plugins/perl/common/Request.xs Wed Sep 12 19:11:38 2007 +0000 @@ -2,12 +2,13 @@ /* This breaks on faceprint's amd64 box void * -purple_request_action_varg(handle, title, primary, secondary, default_action, user_data, action_count, actions) +purple_request_action_varg(handle, title, primary, secondary, default_action, ui_hint, user_data, action_count, actions) void * handle const char *title const char *primary const char *secondary unsigned int default_action + const char * ui_hint void *user_data size_t action_count va_list actions @@ -116,7 +117,7 @@ } void * -purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, ok_cb, cancel_text, cancel_cb) +purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, ok_cb, cancel_text, cancel_cb, ui_hint) Purple::Plugin handle const char * title const char * primary @@ -129,6 +130,7 @@ SV * ok_cb const char * cancel_text SV * cancel_cb + const char * ui_hint CODE: PurplePerlRequestData *gpr; STRLEN len; @@ -141,18 +143,19 @@ gpr->cancel_cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cancel_cb, len)); g_free(basename); - RETVAL = purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, G_CALLBACK(purple_perl_request_ok_cb), cancel_text, G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, gpr); + RETVAL = purple_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, G_CALLBACK(purple_perl_request_ok_cb), cancel_text, G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, ui_hint, gpr); OUTPUT: RETVAL void * -purple_request_file(handle, title, filename, savedialog, ok_cb, cancel_cb) +purple_request_file(handle, title, filename, savedialog, ok_cb, cancel_cb, ui_hint) Purple::Plugin handle const char * title const char * filename gboolean savedialog SV * ok_cb SV * cancel_cb + const char * ui_hint CODE: PurplePerlRequestData *gpr; STRLEN len; @@ -165,12 +168,12 @@ gpr->cancel_cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cancel_cb, len)); g_free(basename); - RETVAL = purple_request_file(handle, title, filename, savedialog, G_CALLBACK(purple_perl_request_ok_cb), G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, gpr); + RETVAL = purple_request_file(handle, title, filename, savedialog, G_CALLBACK(purple_perl_request_ok_cb), G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, ui_hint, gpr); OUTPUT: RETVAL void * -purple_request_fields(handle, title, primary, secondary, fields, ok_text, ok_cb, cancel_text, cancel_cb) +purple_request_fields(handle, title, primary, secondary, fields, ok_text, ok_cb, cancel_text, cancel_cb, ui_hint) Purple::Plugin handle const char * title const char * primary @@ -180,6 +183,7 @@ SV * ok_cb const char * cancel_text SV * cancel_cb + const char *ui_hint CODE: PurplePerlRequestData *gpr; STRLEN len; @@ -192,7 +196,7 @@ gpr->cancel_cb = g_strdup_printf("Purple::Script::%s::%s", basename, SvPV(cancel_cb, len)); g_free(basename); - RETVAL = purple_request_fields(handle, title, primary, secondary, fields, ok_text, G_CALLBACK(purple_perl_request_ok_cb), cancel_text, G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, gpr); + RETVAL = purple_request_fields(handle, title, primary, secondary, fields, ok_text, G_CALLBACK(purple_perl_request_ok_cb), cancel_text, G_CALLBACK(purple_perl_request_cancel_cb), NULL, NULL, NULL, ui_hint, gpr); OUTPUT: RETVAL diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/gg/gg.c --- a/libpurple/protocols/gg/gg.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/gg/gg.c Wed Sep 12 19:11:38 2007 +0000 @@ -336,7 +336,7 @@ purple_request_file(action, _("Save buddylist..."), NULL, TRUE, G_CALLBACK(ggp_callback_buddylist_save_ok), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "blist", gc); } /* }}} */ @@ -350,7 +350,7 @@ purple_request_file(action, "Load buddylist from file...", NULL, FALSE, G_CALLBACK(ggp_callback_buddylist_load_ok), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "blist", gc); } /* }}} */ @@ -506,7 +506,7 @@ _("OK"), G_CALLBACK(ggp_callback_register_account_ok), _("Cancel"), G_CALLBACK(ggp_callback_register_account_cancel), purple_connection_get_account(gc), NULL, NULL, - gc); + "register-account", gc); } /* }}} */ @@ -665,7 +665,7 @@ _("OK"), G_CALLBACK(ggp_callback_find_buddies), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "blist", gc); } /* }}} */ @@ -802,7 +802,7 @@ fields, _("OK"), G_CALLBACK(ggp_callback_change_passwd_ok), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); g_free(msg); } @@ -883,7 +883,7 @@ _("Add"), G_CALLBACK(ggp_callback_add_to_chat_ok), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "buddy", gc); g_free(msg); } /* }}} */ diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Wed Sep 12 19:11:38 2007 +0000 @@ -319,7 +319,7 @@ purple_request_yes_no(js->gc, _("Plaintext Authentication"), _("Plaintext Authentication"), msg, - 2, js->gc->account, NULL, NULL, js->gc->account, + 2, js->gc->account, NULL, NULL, "account", js->gc->account, allow_cyrus_plaintext_auth, disallow_plaintext_auth); g_free(msg); @@ -510,8 +510,8 @@ msg, 2, purple_connection_get_account(js->gc), NULL, NULL, - purple_connection_get_account(js->gc), allow_plaintext_auth, - disallow_plaintext_auth); + "account", purple_connection_get_account(js->gc), + allow_plaintext_auth, disallow_plaintext_auth); g_free(msg); return; } @@ -595,8 +595,8 @@ _("This server requires plaintext authentication over an unencrypted connection. Allow this and continue authentication?"), 2, purple_connection_get_account(js->gc), NULL, NULL, - purple_connection_get_account(js->gc), allow_plaintext_auth, - disallow_plaintext_auth); + "account", purple_connection_get_account(js->gc), + allow_plaintext_auth, disallow_plaintext_auth); return; } finish_plaintext_authentication(js); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/buddy.c Wed Sep 12 19:11:38 2007 +0000 @@ -727,7 +727,7 @@ _("Save"), G_CALLBACK(jabber_format_info), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } /*---------------------------------------*/ @@ -2410,7 +2410,7 @@ _("Search"), G_CALLBACK(user_search_cb), _("Cancel"), G_CALLBACK(user_search_cancel_cb), purple_connection_get_account(js->gc), NULL, NULL, - usi); + "account", usi); g_free(instructions); } @@ -2446,7 +2446,7 @@ _("Search Directory"), PURPLE_CALLBACK(jabber_user_search), _("Cancel"), NULL, NULL, NULL, NULL, - js); + "account", js); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/chat.c --- a/libpurple/protocols/jabber/chat.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/chat.c Wed Sep 12 19:11:38 2007 +0000 @@ -785,7 +785,7 @@ _("Find Rooms"), PURPLE_CALLBACK(roomlist_ok_cb), _("Cancel"), PURPLE_CALLBACK(roomlist_cancel_cb), purple_connection_get_account(gc), NULL, NULL, - js); + "chat", js); return js->roomlist; } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Wed Sep 12 19:11:38 2007 +0000 @@ -1008,7 +1008,7 @@ _("Register"), G_CALLBACK(jabber_register_cb), _("Cancel"), G_CALLBACK(jabber_register_cancel_cb), purple_connection_get_account(js->gc), NULL, NULL, - cbdata); + "register-account", cbdata); else { char *title = registered?g_strdup_printf(_("Change Account Registration at %s"), from) :g_strdup_printf(_("Register New Account at %s"), from); @@ -1731,8 +1731,8 @@ _("Change XMPP Password"), _("Please enter your new password"), fields, _("OK"), G_CALLBACK(jabber_password_change_cb), _("Cancel"), NULL, - purple_connection_get_account(gc), NULL, NULL, - js); + purple_connection_get_account(gc), NULL, NULL, + "account", js); } GList *jabber_actions(PurplePlugin *plugin, gpointer context) diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/presence.c Wed Sep 12 19:11:38 2007 +0000 @@ -512,7 +512,7 @@ " accept the default settings?"), /* Default Action */ 1, purple_connection_get_account(js->gc), NULL, chat->conv, - chat, 2, + "chat", chat, 2, _("_Configure Room"), G_CALLBACK(jabber_chat_request_room_configure), _("_Accept Defaults"), G_CALLBACK(jabber_chat_create_instant_room)); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/si.c Wed Sep 12 19:11:38 2007 +0000 @@ -872,7 +872,7 @@ purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, fields, _("Send File"), G_CALLBACK(resource_select_ok_cb), _("Cancel"), G_CALLBACK(resource_select_cancel_cb), - jsx->js->gc->account, xfer->who, NULL, xfer); + jsx->js->gc->account, xfer->who, NULL, "xfer", xfer); g_free(msg); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/jabber/xdata.c --- a/libpurple/protocols/jabber/xdata.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/jabber/xdata.c Wed Sep 12 19:11:38 2007 +0000 @@ -399,7 +399,7 @@ _("OK"), G_CALLBACK(jabber_x_data_ok_cb), _("Cancel"), G_CALLBACK(jabber_x_data_cancel_cb), purple_connection_get_account(js->gc), /* XXX Do we have a who here? */ NULL, NULL, - data); + "account", data); g_free(title); g_free(instructions); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/msn/dialog.c --- a/libpurple/protocols/msn/dialog.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/msn/dialog.c Wed Sep 12 19:11:38 2007 +0000 @@ -129,7 +129,7 @@ purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE, purple_connection_get_account(gc), data->who, NULL, - data, 2, + "blist", data, 2, _("Yes"), G_CALLBACK(msn_add_cb), _("No"), G_CALLBACK(msn_rem_cb)); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/msn/msn.c Wed Sep 12 19:11:38 2007 +0000 @@ -286,7 +286,7 @@ _("OK"), G_CALLBACK(msn_act_id), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void @@ -303,7 +303,7 @@ _("OK"), G_CALLBACK(msn_set_home_phone_cb), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void @@ -320,7 +320,7 @@ _("OK"), G_CALLBACK(msn_set_work_phone_cb), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void @@ -337,7 +337,7 @@ _("OK"), G_CALLBACK(msn_set_mobile_phone_cb), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void @@ -353,7 +353,7 @@ "to your cell phone or other mobile device?"), -1, purple_connection_get_account(gc), NULL, NULL, - gc, 3, + "account", gc, 3, _("Allow"), G_CALLBACK(enable_msn_pages_cb), _("Disallow"), G_CALLBACK(disable_msn_pages_cb), _("Cancel"), NULL); @@ -402,7 +402,7 @@ _("Page"), G_CALLBACK(send_to_mobile_cb), _("Close"), G_CALLBACK(close_mobile_page_cb), purple_connection_get_account(gc), purple_buddy_get_name(buddy), NULL, - data); + "account", data); } static gboolean diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/novell/novell.c --- a/libpurple/protocols/novell/novell.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/novell/novell.c Wed Sep 12 19:11:38 2007 +0000 @@ -1913,7 +1913,7 @@ purple_request_action(gc, title, primary, secondary, PURPLE_DEFAULT_ACTION_NONE, purple_connection_get_account(gc), name, NULL, - parms, 2, + "chat", parms, 2, _("Yes"), G_CALLBACK(_join_conference_cb), _("No"), G_CALLBACK(_reject_conference_cb)); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Wed Sep 12 19:11:38 2007 +0000 @@ -1450,7 +1450,7 @@ _("_OK"), G_CALLBACK(purple_parse_auth_securid_request_yes_cb), _("_Cancel"), G_CALLBACK(purple_parse_auth_securid_request_no_cb), account, NULL, NULL, - gc); + "account", gc); g_free(primary); return 1; @@ -2225,7 +2225,7 @@ _("_OK"), G_CALLBACK(purple_auth_request), _("_Cancel"), G_CALLBACK(purple_auth_dontrequest), purple_connection_get_account(gc), name, NULL, - data); + "blist", data); } @@ -2274,7 +2274,7 @@ _("_OK"), G_CALLBACK(purple_auth_dontgrant), _("_Cancel"), G_CALLBACK(oscar_free_name_data), purple_connection_get_account(data->gc), data->name, NULL, - data); + "blist", data); } /* When someone sends you buddies */ @@ -2460,7 +2460,7 @@ "to your buddy list?"), PURPLE_DEFAULT_ACTION_NONE, purple_connection_get_account(gc), data->name, NULL, - data, 2, + "blist", data, 2, _("_Add"), G_CALLBACK(purple_icq_buddyadd), _("_Decline"), G_CALLBACK(oscar_free_name_data)); g_free(message); @@ -5170,7 +5170,7 @@ purple_request_yes_no(gc, NULL, _("Authorization Given"), dialog_msg, PURPLE_DEFAULT_ACTION_NONE, purple_connection_get_account(gc), sn, NULL, - data, + "blist", data, G_CALLBACK(purple_icq_buddyadd), G_CALLBACK(oscar_free_name_data)); g_free(dialog_msg); @@ -5869,7 +5869,7 @@ _("_OK"), G_CALLBACK(oscar_ssi_editcomment), _("_Cancel"), G_CALLBACK(oscar_free_name_data), purple_connection_get_account(gc), data->name, NULL, - data); + "buddy", data); g_free(title); g_free(comment); @@ -5920,7 +5920,7 @@ "wish to continue?"), 0, purple_connection_get_account(gc), data->who, NULL, - data, 2, + "buddy", data, 2, _("C_onnect"), G_CALLBACK(oscar_ask_directim_yes_cb), _("_Cancel"), G_CALLBACK(oscar_ask_directim_no_cb)); g_free(buf); @@ -6077,7 +6077,7 @@ _("OK"), G_CALLBACK(oscar_icq_privacy_opts), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void oscar_format_screenname(PurpleConnection *gc, const char *nick) { @@ -6150,7 +6150,7 @@ _("_OK"), G_CALLBACK(oscar_change_email), _("_Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void oscar_show_awaitingauth(PurplePluginAction *action) @@ -6220,7 +6220,7 @@ _("_Search"), G_CALLBACK(search_by_email_cb), _("_Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "buddy", gc); } static void oscar_show_set_info(PurplePluginAction *action) diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/oscar/peer.c --- a/libpurple/protocols/oscar/peer.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/oscar/peer.c Wed Sep 12 19:11:38 2007 +0000 @@ -1041,7 +1041,7 @@ "risk."), PURPLE_DEFAULT_ACTION_NONE, account, sn, NULL, - conn, 2, + "buddy", conn, 2, _("C_onnect"), G_CALLBACK(peer_connection_got_proposition_yes_cb), _("Cancel"), G_CALLBACK(peer_connection_got_proposition_no_cb)); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/buddy_info.c --- a/libpurple/protocols/qq/buddy_info.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/buddy_info.c Wed Sep 12 19:11:38 2007 +0000 @@ -483,7 +483,7 @@ _("Update my information"), G_CALLBACK(modify_info_ok_cb), _("Cancel"), G_CALLBACK(modify_info_cancel_cb), purple_connection_get_account(gc), NULL, NULL, - mid); + "account", mid); } } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/buddy_opt.c --- a/libpurple/protocols/qq/buddy_opt.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/buddy_opt.c Wed Sep 12 19:11:38 2007 +0000 @@ -213,7 +213,7 @@ _("Sorry, you are not my type..."), TRUE, FALSE, NULL, _("Reject"), G_CALLBACK(_qq_reject_add_request_real), _("Cancel"), NULL, purple_connection_get_account(gc), nombre, NULL, - g2); + "buddy", g2); g_free(nombre); } @@ -410,7 +410,7 @@ (_qq_send_packet_add_buddy_auth_with_gc_and_uid), _("Cancel"), G_CALLBACK(qq_do_nothing_with_gc_and_uid), purple_connection_get_account(gc), nombre, NULL, - g); + "buddy", g); g_free(msg); g_free(nombre); } else { /* add OK */ diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/group.c --- a/libpurple/protocols/qq/group.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/group.c Wed Sep 12 19:11:38 2007 +0000 @@ -123,7 +123,7 @@ _("Search"), G_CALLBACK(_qq_group_search_callback), _("Cancel"), G_CALLBACK(_qq_group_search_cancel_callback), purple_connection_get_account(gc), NULL, NULL, - gc); + "chat", gc); return qd->roomlist; } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/group_im.c --- a/libpurple/protocols/qq/group_im.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/group_im.c Wed Sep 12 19:11:38 2007 +0000 @@ -137,7 +137,7 @@ msg, reason, 2, purple_connection_get_account(gc), nombre, NULL, - g, 3, + "chat", g, 3, _("Approve"), G_CALLBACK (qq_group_approve_application_with_struct), diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/group_join.c --- a/libpurple/protocols/qq/group_join.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/group_join.c Wed Sep 12 19:11:38 2007 +0000 @@ -139,7 +139,7 @@ G_CALLBACK(_qq_group_join_auth_with_gc_and_id), _("Cancel"), G_CALLBACK(qq_do_nothing_with_gc_and_uid), purple_connection_get_account(gc), group->group_name_utf8, NULL, - g); + "chat", g); g_free(msg); } @@ -362,7 +362,7 @@ ("Note, if you are the creator, \nthis operation will eventually remove this Qun."), 1, purple_connection_get_account(gc), NULL, NULL, - g, 2, _("Cancel"), + "chat", g, 2, _("Cancel"), G_CALLBACK(qq_do_nothing_with_gc_and_uid), _("Continue"), G_CALLBACK(_qq_group_exit_with_gc_and_id)); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/group_opt.c --- a/libpurple/protocols/qq/group_opt.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/group_opt.c Wed Sep 12 19:11:38 2007 +0000 @@ -123,7 +123,7 @@ qq_send_packet_get_info(g->gc, g->member, TRUE); /* we want to see window */ purple_request_action(g->gc, NULL, _("Do you want to approve the request?"), "", 2, purple_connection_get_account(g->gc), NULL, NULL, - g, 2, + "chat", g, 2, _("Reject"), G_CALLBACK(qq_group_reject_application_with_struct), _("Approve"), G_CALLBACK(qq_group_approve_application_with_struct)); } @@ -143,7 +143,7 @@ _("Send"), G_CALLBACK(_qq_group_reject_application_real), _("Cancel"), G_CALLBACK(_qq_group_do_nothing_with_struct), purple_connection_get_account(g->gc), nombre, NULL, - g); + "chat", g); g_free(msg1); g_free(msg2); @@ -394,7 +394,7 @@ ("Would you like to set up the Qun details now?"), 1, purple_connection_get_account(gc), NULL, NULL, - g, 2, + "chat", g, 2, _("Setup"), G_CALLBACK(qq_group_setup_with_gc_and_uid), _("Cancel"), G_CALLBACK(qq_do_nothing_with_gc_and_uid)); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/qq/sys_msg.c --- a/libpurple/protocols/qq/sys_msg.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/qq/sys_msg.c Wed Sep 12 19:11:38 2007 +0000 @@ -86,7 +86,7 @@ purple_request_action (gc, NULL, _("Do you want to approve the request?"), "", 2, purple_connection_get_account(gc), nombre, NULL, - g, 2, + "chat", g, 2, _("Reject"), G_CALLBACK(qq_reject_add_request_with_gc_and_uid), _("Approve"), G_CALLBACK(qq_approve_add_request_with_gc_and_uid)); g_free(nombre); @@ -109,7 +109,7 @@ purple_request_action (gc, NULL, _("Do you want to add this buddy?"), "", 2, purple_connection_get_account(gc), nombre, NULL, - g, 2, + "buddy", g, 2, _("Cancel"), NULL, _("Add"), G_CALLBACK(qq_add_buddy_with_gc_and_uid)); g_free(nombre); @@ -168,7 +168,7 @@ purple_request_action(gc, NULL, message, _("Would you like to add him?"), 2, purple_connection_get_account(gc), name, NULL, - g, 3, + "buddy", g, 3, _("Cancel"), NULL, _("Add"), G_CALLBACK(qq_add_buddy_with_gc_and_uid), _("Search"), G_CALLBACK(_qq_search_before_add_with_gc_and_uid)); @@ -242,7 +242,7 @@ purple_request_action (gc, NULL, message, reason, 2, purple_connection_get_account(gc), name, NULL, - g, 3, + "buddy", g, 3, _("Reject"), G_CALLBACK(qq_reject_add_request_with_gc_and_uid), _("Approve"), @@ -262,7 +262,7 @@ purple_request_action(gc, NULL, message, _("Would you like to add him?"), 2, purple_connection_get_account(gc), name, NULL, - g2, 3, + "blist", g2, 3, _("Cancel"), NULL, _("Add"), G_CALLBACK(qq_add_buddy_with_gc_and_uid), _("Search"), G_CALLBACK(_qq_search_before_add_with_gc_and_uid)); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/sametime/sametime.c --- a/libpurple/protocols/sametime/sametime.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/sametime/sametime.c Wed Sep 12 19:11:38 2007 +0000 @@ -3387,7 +3387,7 @@ _("Create"), G_CALLBACK(conf_create_prompt_join), _("Cancel"), G_CALLBACK(conf_create_prompt_cancel), acct, purple_buddy_get_name(buddy), NULL, - buddy); + "chat", buddy); g_free(msg1); } @@ -3473,7 +3473,7 @@ _("Invite"), G_CALLBACK(conf_select_prompt_invite), _("Cancel"), G_CALLBACK(conf_select_prompt_cancel), acct, purple_buddy_get_name(buddy), NULL, - buddy); + "chat", buddy); g_free(msg); } @@ -3644,7 +3644,7 @@ _("Connect"), G_CALLBACK(prompt_host_ok_cb), _("Cancel"), G_CALLBACK(prompt_host_cancel_cb), acct, NULL, NULL, - gc); + "account", gc); g_free(msg); } @@ -5218,7 +5218,7 @@ purple_request_file(gc, title, NULL, FALSE, G_CALLBACK(st_import_action_cb), NULL, account, NULL, NULL, - gc); + "blist", gc); g_free(title); } @@ -5258,7 +5258,7 @@ purple_request_file(gc, title, NULL, TRUE, G_CALLBACK(st_export_action_cb), NULL, account, NULL, NULL, - gc); + "blist", gc); g_free(title); } @@ -5396,7 +5396,7 @@ _("Add Group"), G_CALLBACK(remote_group_multi_cb), _("Cancel"), G_CALLBACK(remote_group_multi_cleanup), purple_connection_get_account(gc), result->name, NULL, - pd); + "blist", pd); g_free(msg); } @@ -5486,7 +5486,7 @@ _("Add"), G_CALLBACK(remote_group_action_cb), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "blist", gc); } @@ -5611,7 +5611,7 @@ _("Search"), G_CALLBACK(search_action_cb), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "blist", gc); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Wed Sep 12 19:11:38 2007 +0000 @@ -1028,7 +1028,7 @@ _("OK"), G_CALLBACK(yahoo_buddy_add_deny_cb), _("Cancel"), G_CALLBACK(yahoo_buddy_add_deny_noreason_cb), purple_connection_get_account(add_req->gc), add_req->who, NULL, - add_req); + "blist", add_req); } static void yahoo_buddy_denied_our_add(PurpleConnection *gc, const char *who, const char *reason) @@ -2062,7 +2062,7 @@ "will remove and ignore the buddy."), who); purple_request_yes_no(gc, NULL, _("Ignore buddy?"), buf, 0, gc->account, who, NULL, - b, + "blist", b, G_CALLBACK(ignore_buddy), G_CALLBACK(keep_buddy)); break; @@ -3494,18 +3494,18 @@ _("OK"), G_CALLBACK(yahoo_act_id), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "account", gc); } static void yahoo_show_chat_goto(PurplePluginAction *action) { PurpleConnection *gc = (PurpleConnection *) action->context; - purple_request_input(gc, NULL, _("Join whom in chat?"), NULL, + purple_request_input(gc, NULL, _("Join who in chat?"), NULL, "", FALSE, FALSE, NULL, _("OK"), G_CALLBACK(yahoo_chat_goto), _("Cancel"), NULL, purple_connection_get_account(gc), NULL, NULL, - gc); + "chat", gc); } static GList *yahoo_actions(PurplePlugin *plugin, gpointer context) { diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/request.c --- a/libpurple/request.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/request.c Wed Sep 12 19:11:38 2007 +0000 @@ -1139,7 +1139,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PurpleRequestUiOps *ops; @@ -1160,7 +1160,7 @@ ok_text, ok_cb, cancel_text, cancel_cb, account, who, conv, - user_data); + ui_hint, user_data); handles = g_list_append(handles, info); @@ -1176,7 +1176,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, ...) + const char *ui_hint, void *user_data, ...) { void *ui_handle; va_list args; @@ -1188,7 +1188,7 @@ ui_handle = purple_request_choice_varg(handle, title, primary, secondary, default_value, ok_text, ok_cb, cancel_text, cancel_cb, - account, who, conv, user_data, args); + account, who, conv, ui_hint, user_data, args); va_end(args); return ui_handle; @@ -1201,7 +1201,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, va_list choices) + const char *ui_hint, void *user_data, va_list choices) { PurpleRequestUiOps *ops; @@ -1221,7 +1221,7 @@ ok_text, ok_cb, cancel_text, cancel_cb, account, who, conv, - user_data, choices); + ui_hint, user_data, choices); handles = g_list_append(handles, info); @@ -1235,7 +1235,7 @@ purple_request_action(void *handle, const char *title, const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, ...) + const char *ui_hint, void *user_data, size_t action_count, ...) { void *ui_handle; va_list args; @@ -1245,7 +1245,7 @@ va_start(args, action_count); ui_handle = purple_request_action_varg(handle, title, primary, secondary, default_action, account, who, conv, - user_data, action_count, args); + ui_hint, user_data, action_count, args); va_end(args); return ui_handle; @@ -1256,7 +1256,7 @@ const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, va_list actions) + const char *ui_hint, void *user_data, size_t action_count, va_list actions) { PurpleRequestUiOps *ops; @@ -1272,7 +1272,7 @@ info->handle = handle; info->ui_handle = ops->request_action(title, primary, secondary, default_action, account, who, conv, - user_data, action_count, actions); + ui_hint, user_data, action_count, actions); handles = g_list_append(handles, info); @@ -1288,7 +1288,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PurpleRequestUiOps *ops; @@ -1308,7 +1308,7 @@ fields, ok_text, ok_cb, cancel_text, cancel_cb, account, who, conv, - user_data); + ui_hint, user_data); handles = g_list_append(handles, info); @@ -1323,7 +1323,7 @@ gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PurpleRequestUiOps *ops; @@ -1337,7 +1337,7 @@ info->handle = handle; info->ui_handle = ops->request_file(title, filename, savedialog, ok_cb, cancel_cb, - account, who, conv, user_data); + account, who, conv, ui_hint, user_data); handles = g_list_append(handles, info); return info->ui_handle; } @@ -1349,7 +1349,7 @@ purple_request_folder(void *handle, const char *title, const char *dirname, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PurpleRequestUiOps *ops; @@ -1364,7 +1364,7 @@ info->ui_handle = ops->request_folder(title, dirname, ok_cb, cancel_cb, account, who, conv, - user_data); + ui_hint, user_data); handles = g_list_append(handles, info); return info->ui_handle; } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/request.h --- a/libpurple/request.h Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/request.h Wed Sep 12 19:11:38 2007 +0000 @@ -188,33 +188,33 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); void *(*request_choice)(const char *title, const char *primary, const char *secondary, int default_value, const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, va_list choices); + const char *ui_hint, void *user_data, va_list choices); void *(*request_action)(const char *title, const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, + const char *ui_hint, void *user_data, size_t action_count, va_list actions); void *(*request_fields)(const char *title, const char *primary, const char *secondary, PurpleRequestFields *fields, const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); void *(*request_file)(const char *title, const char *filename, gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); void (*close_request)(PurpleRequestType type, void *ui_handle); void *(*request_folder)(const char *title, const char *dirname, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); void (*_purple_reserved1)(void); void (*_purple_reserved2)(void); @@ -1215,7 +1215,8 @@ * @param cancel_cb The callback for the @c Cancel button. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * @param ... The choices. This argument list should be * terminated with a NULL parameter. @@ -1228,7 +1229,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, ...) G_GNUC_NULL_TERMINATED; + const char *ui_hint, void *user_data, ...) G_GNUC_NULL_TERMINATED; /** * Prompts the user for multiple-choice input. @@ -1246,7 +1247,8 @@ * @param cancel_cb The callback for the @c Cancel button. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * @param choices The choices. This argument list should be * terminated with a @c NULL parameter. @@ -1259,7 +1261,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, va_list choices); + const char *ui_hint, void *user_data, va_list choices); /** * Prompts the user for an action. @@ -1275,7 +1277,8 @@ * @param default_action The default value. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * @param action_count The number of actions. * @param ... A list of actions. These are pairs of @@ -1292,7 +1295,7 @@ const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, ...); + const char *ui_hint, void *user_data, size_t action_count, ...); /** * Prompts the user for an action. @@ -1308,7 +1311,8 @@ * @param default_action The default value. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * @param action_count The number of actions. * @param actions A list of actions and callbacks. @@ -1319,7 +1323,7 @@ const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, + const char *ui_hint, void *user_data, size_t action_count, va_list actions); /** @@ -1338,7 +1342,8 @@ * @param cancel_cb The callback for the @c Cancel button. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy associated with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * * @return A UI-specific handle. @@ -1349,7 +1354,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); /** * Closes a request. @@ -1371,9 +1376,9 @@ */ #define purple_request_yes_no(handle, title, primary, secondary, \ default_action, account, who, conv, \ - user_data, yes_cb, no_cb) \ + ui_hint, user_data, yes_cb, no_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ - (default_action), account, who, conv, (user_data), 2, \ + (default_action), account, who, conv, (ui_hint), (user_data), 2, \ _("_Yes"), (yes_cb), _("_No"), (no_cb)) /** @@ -1381,9 +1386,9 @@ */ #define purple_request_ok_cancel(handle, title, primary, secondary, \ default_action, account, who, conv, \ - user_data, ok_cb, cancel_cb) \ + ui_hint, user_data, ok_cb, cancel_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ - (default_action), account, who, conv, (user_data), 2, \ + (default_action), account, who, conv, (ui_hint), (user_data), 2, \ _("_OK"), (ok_cb), _("_Cancel"), (cancel_cb)) /** @@ -1391,9 +1396,9 @@ */ #define purple_request_accept_cancel(handle, title, primary, secondary, \ default_action, account, who, conv, \ - user_data, accept_cb, cancel_cb) \ + ui_hint, user_data, accept_cb, cancel_cb) \ purple_request_action((handle), (title), (primary), (secondary), \ - (default_action), account, who, conv, (user_data), 2, \ + (default_action), account, who, conv, (ui_hint), (user_data), 2, \ _("_Accept"), (accept_cb), _("_Cancel"), (cancel_cb)) /** @@ -1411,7 +1416,8 @@ * @param cancel_cb The callback for the @c Cancel button. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * * @return A UI-specific handle. @@ -1420,7 +1426,7 @@ gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data); + const char *ui_hint, void *user_data); /** * Displays a folder select dialog. Returns the selected filename to @@ -1435,7 +1441,8 @@ * @param cancel_cb The callback for the @c Cancel button. * @param account The PurpleAccount associated with this request, or NULL if none is * @param who The username of the buddy assocaited with this request, or NULL if none is - * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param conv The PurpleConversation associated with this request, or NULL if none is + * @param ui_hint UI hint * @param user_data The data to pass to the callback. * * @return A UI-specific handle. diff -r 0633ecda7ed0 -r 6a0d9fa477d4 libpurple/server.c --- a/libpurple/server.c Wed Sep 12 15:59:22 2007 +0000 +++ b/libpurple/server.c Wed Sep 12 19:11:38 2007 +0000 @@ -803,7 +803,7 @@ purple_request_accept_cancel(gc, NULL, _("Accept chat invitation?"), buf2, PURPLE_DEFAULT_ACTION_NONE, account, who, NULL, - cid, G_CALLBACK(chat_invite_accept), + "chat", cid, G_CALLBACK(chat_invite_accept), G_CALLBACK(chat_invite_reject)); } else if (plugin_return > 0) diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkaccount.c --- a/pidgin/gtkaccount.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkaccount.c Wed Sep 12 19:11:38 2007 +0000 @@ -1903,7 +1903,7 @@ purple_request_close_with_handle(account); purple_request_action(account, NULL, buf, NULL, 0, account, NULL, NULL, - account, 2, + "accounts", account, 2, _("Delete"), delete_account_cb, _("Cancel"), NULL); g_free(buf); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkblist.c Wed Sep 12 19:11:38 2007 +0000 @@ -478,7 +478,7 @@ static void gtk_blist_menu_bp_cb(GtkWidget *w, PurpleBuddy *b) { - pidgin_pounce_editor_show(b->account, b->name, NULL); + pidgin_pounce_editor_show(GTK_WINDOW(gtkblist->window), b->account, b->name, NULL); } static void gtk_blist_menu_showlog_cb(GtkWidget *w, PurpleBlistNode *node) @@ -504,7 +504,7 @@ name = prpl_info->get_chat_name(c->components); } } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { - pidgin_log_show_contact((PurpleContact *)node); + pidgin_log_show_contact(GTK_WINDOW(gtkblist->window), (PurpleContact *)node); pidgin_clear_cursor(gtkblist->window); return; } else { @@ -516,18 +516,13 @@ } if (name && account) { - pidgin_log_show(type, name, account); + pidgin_log_show(GTK_WINDOW(gtkblist->window), type, name, account); g_free(name); pidgin_clear_cursor(gtkblist->window); } } -static void gtk_blist_show_systemlog_cb() -{ - pidgin_syslog_show(); -} - static void gtk_blist_show_onlinehelp_cb() { purple_notify_uri(NULL, PURPLE_WEBSITE "documentation"); @@ -2856,6 +2851,11 @@ !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled")); } +static void +pidgin_blist_show_with_parent(gpointer data1, void (*callback)(GtkWindow *parent), gpointer data3) +{ + callback(GTK_WINDOW(gtkblist->window)); +} /*************************************************** * Crap * @@ -2891,13 +2891,13 @@ { N_("/_Tools"), NULL, NULL, 0, "", NULL }, { N_("/Tools/Buddy _Pounces"), NULL, pidgin_pounces_manager_show, 0, "", NULL }, { N_("/Tools/_Certificates"), NULL, pidgin_certmgr_show, 0, "", NULL }, - { N_("/Tools/Plu_gins"), "U", pidgin_plugin_dialog_show, 0, "", PIDGIN_STOCK_TOOLBAR_PLUGINS }, + { N_("/Tools/Plu_gins"), "U", pidgin_blist_show_with_parent, (int)pidgin_plugin_dialog_show, "", PIDGIN_STOCK_TOOLBAR_PLUGINS }, { N_("/Tools/Pr_eferences"), "P", pidgin_prefs_show, 0, "", GTK_STOCK_PREFERENCES }, { N_("/Tools/Pr_ivacy"), NULL, pidgin_privacy_dialog_show, 0, "", NULL }, { "/Tools/sep2", NULL, NULL, 0, "", NULL }, { N_("/Tools/_File Transfers"), "T", pidgin_xfer_dialog_show, 0, "", NULL }, { N_("/Tools/R_oom List"), NULL, pidgin_roomlist_dialog_show, 0, "", NULL }, - { N_("/Tools/System _Log"), NULL, gtk_blist_show_systemlog_cb, 0, "", NULL }, + { N_("/Tools/System _Log"), NULL, pidgin_blist_show_with_parent, (int)pidgin_syslog_show, "", NULL }, { "/Tools/sep3", NULL, NULL, 0, "", NULL }, { N_("/Tools/Mute _Sounds"), "S", pidgin_blist_mute_sounds_cb, 0, "", NULL }, /* Help */ @@ -2905,7 +2905,7 @@ { N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "", GTK_STOCK_HELP }, { N_("/Help/_Debug Window"), NULL, toggle_debug, 0, "", NULL }, #if GTK_CHECK_VERSION(2,6,0) - { N_("/Help/_About"), NULL, pidgin_dialogs_about, 0, "", GTK_STOCK_ABOUT }, + { N_("/Help/_About"), NULL, pidgin_blist_show_with_parent, (int)pidgin_dialogs_about, "", GTK_STOCK_ABOUT }, #else { N_("/Help/_About"), NULL, pidgin_dialogs_about, 0, "", NULL }, #endif @@ -4032,7 +4032,7 @@ enabled = purple_account_get_enabled(account, purple_core_get_ui()); purple_request_action(account, _("Connection Error"), primary, text, 2, account, NULL, NULL, - account, 3, + "account", account, 3, _("OK"), NULL, _("Modify Account"), PURPLE_CALLBACK(ce_modify_account_cb), enabled ? _("Connect") : _("Re-enable Account"), @@ -5970,7 +5970,7 @@ _("Add"), G_CALLBACK(add_group_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkconv.c Wed Sep 12 19:11:38 2007 +0000 @@ -981,7 +981,7 @@ buf, TRUE, G_CALLBACK(savelog_writefile_cb), NULL, NULL, NULL, conv, - conv); + "conversation", conv); g_free(buf); } @@ -1029,7 +1029,7 @@ PurpleBlistNode *node = cur->data; if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) { - pidgin_log_show_contact((PurpleContact *)node->parent); + pidgin_log_show_contact(GTK_WINDOW(win->window), (PurpleContact *)node->parent); g_slist_free(buddies); gdk_window_set_cursor(gtkblist->window->window, NULL); gdk_window_set_cursor(win->window->window, NULL); @@ -1038,7 +1038,7 @@ } g_slist_free(buddies); - pidgin_log_show(type, name, account); + pidgin_log_show(GTK_WINDOW(win->window), type, name, account); gdk_window_set_cursor(gtkblist->window->window, NULL); gdk_window_set_cursor(win->window->window, NULL); @@ -1187,7 +1187,7 @@ conv = pidgin_conv_window_get_active_gtkconv(win)->active_conv; - pidgin_pounce_editor_show(purple_conversation_get_account(conv), + pidgin_pounce_editor_show(GTK_WINDOW(win->window), purple_conversation_get_account(conv), purple_conversation_get_name(conv), NULL); } @@ -2640,7 +2640,7 @@ purple_request_file(gtkconv, _("Save Icon"), buf, TRUE, G_CALLBACK(saveicon_writefile_cb), NULL, conv->account, NULL, conv, - gtkconv); + "conversation", gtkconv); g_free(buf); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkdebug.c --- a/pidgin/gtkdebug.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkdebug.c Wed Sep 12 19:11:38 2007 +0000 @@ -233,7 +233,7 @@ purple_request_file(win, _("Save Debug Log"), "purple-debug.log", TRUE, G_CALLBACK(save_writefile_cb), NULL, NULL, NULL, NULL, - win); + "blist", win); } static void diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkdialogs.c --- a/pidgin/gtkdialogs.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkdialogs.c Wed Sep 12 19:11:38 2007 +0000 @@ -323,7 +323,7 @@ g_object_unref(G_OBJECT(pixmap)); } -void pidgin_dialogs_about() +void pidgin_dialogs_about(GtkWindow *parent) { GtkWidget *hbox; GtkWidget *vbox; @@ -340,11 +340,15 @@ GdkPixbuf *pixbuf; if (about != NULL) { + if (parent) + gtk_window_set_transient_for(GTK_WINDOW(about), parent); gtk_window_present(GTK_WINDOW(about)); return; } PIDGIN_DIALOG(about); + if (parent) + gtk_window_set_transient_for(GTK_WINDOW(about), parent); tmp = g_strdup_printf(_("About %s"), PIDGIN_NAME); gtk_window_set_title(GTK_WINDOW(about), tmp); g_free(tmp); @@ -758,7 +762,7 @@ _("OK"), G_CALLBACK(pidgin_dialogs_im_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } void @@ -897,7 +901,7 @@ _("OK"), G_CALLBACK(pidgin_dialogs_info_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } static void @@ -925,7 +929,7 @@ PurpleBlistNode *node = cur->data; if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) { - pidgin_log_show_contact((PurpleContact *)node->parent); + pidgin_log_show_contact(GTK_WINDOW(gtkblist->window), (PurpleContact *)node->parent); g_slist_free(buddies); pidgin_clear_cursor(gtkblist->window); g_free(username); @@ -934,7 +938,7 @@ } g_slist_free(buddies); - pidgin_log_show(PURPLE_LOG_IM, username, account); + pidgin_log_show(GTK_WINDOW(gtkblist->window), PURPLE_LOG_IM, username, account); pidgin_clear_cursor(gtkblist->window); } @@ -989,7 +993,7 @@ _("OK"), G_CALLBACK(pidgin_dialogs_log_cb), _("Cancel"), NULL, NULL, NULL, NULL, - NULL); + "blist", NULL); } static void @@ -1009,7 +1013,7 @@ _("Alias"), G_CALLBACK(pidgin_dialogs_alias_contact_cb), _("Cancel"), NULL, NULL, purple_contact_get_alias(contact), NULL, - contact); + "blist", contact); } static void @@ -1033,7 +1037,7 @@ _("Alias"), G_CALLBACK(pidgin_dialogs_alias_buddy_cb), _("Cancel"), NULL, purple_buddy_get_account(buddy), purple_buddy_get_name(buddy), NULL, - buddy); + "blist", buddy); g_free(secondary); } @@ -1055,7 +1059,7 @@ _("Alias"), G_CALLBACK(pidgin_dialogs_alias_chat_cb), _("Cancel"), NULL, chat->account, NULL, NULL, - chat); + "blist", chat); } static void @@ -1099,7 +1103,7 @@ purple_request_action(contact, NULL, _("Remove Contact"), text, 0, NULL, purple_contact_get_alias(contact), NULL, - contact, 2, + "blist", contact, 2, _("_Remove Contact"), G_CALLBACK(pidgin_dialogs_remove_contact_cb), _("Cancel"), NULL); @@ -1140,7 +1144,7 @@ purple_request_action(source, NULL, _("Merge Groups"), text, 0, NULL, NULL, NULL, - ggp, 2, + "blist", ggp, 2, _("_Merge Groups"), G_CALLBACK(pidgin_dialogs_merge_groups_cb), _("Cancel"), G_CALLBACK(free_ggmo)); @@ -1196,7 +1200,7 @@ purple_request_action(group, NULL, _("Remove Group"), text, 0, NULL, NULL, NULL, - group, 2, + "blist", group, 2, _("_Remove Group"), G_CALLBACK(pidgin_dialogs_remove_group_cb), _("Cancel"), NULL); @@ -1235,7 +1239,7 @@ purple_request_action(buddy, NULL, _("Remove Buddy"), text, 0, purple_buddy_get_account(buddy), purple_buddy_get_name(buddy), NULL, - buddy, 2, + "blist", buddy, 2, _("_Remove Buddy"), G_CALLBACK(pidgin_dialogs_remove_buddy_cb), _("Cancel"), NULL); @@ -1262,7 +1266,7 @@ purple_request_action(chat, NULL, _("Remove Chat"), text, 0, chat->account, NULL, NULL, - chat, 2, + "blist", chat, 2, _("_Remove Chat"), G_CALLBACK(pidgin_dialogs_remove_chat_cb), _("Cancel"), NULL); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkdialogs.h --- a/pidgin/gtkdialogs.h Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkdialogs.h Wed Sep 12 19:11:38 2007 +0000 @@ -31,7 +31,7 @@ /* Functions in gtkdialogs.c (these should actually stay in this file) */ void pidgin_dialogs_destroy_all(void); -void pidgin_dialogs_about(void); +void pidgin_dialogs_about(GtkWindow *parent); void pidgin_dialogs_im(void); void pidgin_dialogs_im_with_user(PurpleAccount *, const char *); void pidgin_dialogs_info(void); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkimhtmltoolbar.c --- a/pidgin/gtkimhtmltoolbar.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkimhtmltoolbar.c Wed Sep 12 19:11:38 2007 +0000 @@ -183,6 +183,8 @@ g_signal_connect_after(G_OBJECT(toolbar->font_dialog), "realize", G_CALLBACK(realize_toolbar_font), toolbar); } + gtk_window_set_transient_for(GTK_WINDOW(toolbar->font_dialog), + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(toolbar)))); gtk_window_present(GTK_WINDOW(toolbar->font_dialog)); } else { cancel_toolbar_font(font, toolbar); @@ -433,7 +435,7 @@ _("_Insert"), G_CALLBACK(do_insert_link_cb), _("Cancel"), G_CALLBACK(cancel_link_cb), NULL, NULL, NULL, - toolbar); + "conversation", toolbar); g_free(msg); g_free(desc); } else { @@ -708,6 +710,8 @@ gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); + gtk_window_set_transient_for(GTK_WINDOW(dialog), + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(toolbar)))); if (unique_smileys != NULL) { struct smiley_button_list *ls, *it, *it_tmp; diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtklog.c --- a/pidgin/gtklog.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtklog.c Wed Sep 12 19:11:38 2007 +0000 @@ -322,7 +322,7 @@ data2[2] = log; purple_request_action(lv, NULL, "Delete Log?", tmp, 0, NULL, NULL, NULL, - data2, 2, + "log_viewer", data2, 2, _("Delete"), delete_log_cb, _("Cancel"), delete_log_cleanup_cb); g_free(tmp); @@ -522,7 +522,7 @@ } } -static PidginLogViewer *display_log_viewer(struct log_viewer_hash_t *ht, GList *logs, +static PidginLogViewer *display_log_viewer(GtkWindow *parent, struct log_viewer_hash_t *ht, GList *logs, const char *title, GtkWidget *icon, int log_size) { PidginLogViewer *lv; @@ -568,7 +568,7 @@ g_hash_table_insert(log_viewers, ht, lv); /* Window ***********/ - lv->window = gtk_dialog_new_with_buttons(title, NULL, 0, + lv->window = gtk_dialog_new_with_buttons(title, parent, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); #ifdef _WIN32 /* Steal the "HELP" response and use it to trigger browsing to the logs folder */ @@ -674,7 +674,7 @@ return lv; } -void pidgin_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account) { +void pidgin_log_show(GtkWindow *parent, PurpleLogType type, const char *screenname, PurpleAccount *account) { struct log_viewer_hash_t *ht; PidginLogViewer *lv = NULL; const char *name = screenname; @@ -716,13 +716,13 @@ title = g_strdup_printf(_("Conversations with %s"), name); } - display_log_viewer(ht, purple_log_get_logs(type, screenname, account), + display_log_viewer(parent, ht, purple_log_get_logs(type, screenname, account), title, gtk_image_new_from_pixbuf(pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM)), purple_log_get_total_size(type, screenname, account)); g_free(title); } -void pidgin_log_show_contact(PurpleContact *contact) { +void pidgin_log_show_contact(GtkWindow *parent, PurpleContact *contact) { struct log_viewer_hash_t *ht = g_new0(struct log_viewer_hash_t, 1); PurpleBlistNode *child; PidginLogViewer *lv = NULL; @@ -776,11 +776,11 @@ } title = g_strdup_printf(_("Conversations with %s"), name); - display_log_viewer(ht, logs, title, image, total_log_size); + display_log_viewer(parent, ht, logs, title, image, total_log_size); g_free(title); } -void pidgin_syslog_show() +void pidgin_syslog_show(GtkWindow *parent) { GList *accounts = NULL; GList *logs = NULL; @@ -800,7 +800,7 @@ } logs = g_list_sort(logs, purple_log_compare); - syslog_viewer = display_log_viewer(NULL, logs, _("System Log"), NULL, 0); + syslog_viewer = display_log_viewer(parent, NULL, logs, _("System Log"), NULL, 0); } /**************************************************************************** diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtklog.h --- a/pidgin/gtklog.h Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtklog.h Wed Sep 12 19:11:38 2007 +0000 @@ -51,10 +51,10 @@ -void pidgin_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account); -void pidgin_log_show_contact(PurpleContact *contact); +void pidgin_log_show(GtkWindow *parent, PurpleLogType type, const char *screenname, PurpleAccount *account); +void pidgin_log_show_contact(GtkWindow *parent, PurpleContact *contact); -void pidgin_syslog_show(void); +void pidgin_syslog_show(GtkWindow *parent); /**************************************************************************/ /** @name GTK+ Log Subsystem */ diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkplugin.c --- a/pidgin/gtkplugin.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkplugin.c Wed Sep 12 19:11:38 2007 +0000 @@ -283,7 +283,7 @@ _("Multiple plugins will be unloaded."), tmp->str, 0, NULL, NULL, NULL, - cb_data, 2, + "plugins", cb_data, 2, _("Unload Plugins"), G_CALLBACK(plugin_unload_confirm_cb), _("Cancel"), g_free); g_string_free(tmp, TRUE); @@ -513,7 +513,7 @@ plugin_dialog_response_cb(dialog, PIDGIN_RESPONSE_CONFIGURE, sel); } -void pidgin_plugin_dialog_show() +void pidgin_plugin_dialog_show(GtkWindow *parent) { GtkWidget *sw; GtkWidget *event_view; @@ -523,6 +523,8 @@ GtkTreeSelection *sel; if (plugin_dialog != NULL) { + if (parent) + gtk_window_set_transient_for(GTK_WINDOW(plugin_dialog), parent); gtk_window_present(GTK_WINDOW(plugin_dialog)); return; } @@ -531,6 +533,8 @@ NULL, GTK_DIALOG_NO_SEPARATOR, NULL); + if (parent) + gtk_window_set_transient_for(GTK_WINDOW(plugin_dialog), parent); pref_button = gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), _("Configure Pl_ugin"), PIDGIN_RESPONSE_CONFIGURE); gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkplugin.h --- a/pidgin/gtkplugin.h Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkplugin.h Wed Sep 12 19:11:38 2007 +0000 @@ -74,6 +74,6 @@ /** * Shows the Plugins dialog */ -void pidgin_plugin_dialog_show(void); +void pidgin_plugin_dialog_show(GtkWindow *parent); #endif /* _PIDGINPLUGIN_H_ */ diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkpounce.c --- a/pidgin/gtkpounce.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkpounce.c Wed Sep 12 19:11:38 2007 +0000 @@ -156,7 +156,7 @@ purple_request_file(entry, _("Select a file"), name, FALSE, G_CALLBACK(pounce_update_entry_fields), NULL, NULL, NULL, NULL, - entry); + "buddy_pounce", entry); g_signal_connect_swapped(G_OBJECT(entry), "destroy", G_CALLBACK(purple_request_close_with_handle), entry); } @@ -461,7 +461,7 @@ } void -pidgin_pounce_editor_show(PurpleAccount *account, const char *name, +pidgin_pounce_editor_show(GtkWindow *parent, PurpleAccount *account, const char *name, PurplePounce *cur_pounce) { PidginPounceDialog *dialog; @@ -1042,7 +1042,7 @@ static void pounces_manager_add_cb(GtkButton *button, gpointer user_data) { - pidgin_pounce_editor_show(NULL, NULL, NULL); + pidgin_pounce_editor_show(GTK_WINDOW(pounces_manager->window), NULL, NULL, NULL); } static void @@ -1052,7 +1052,7 @@ PurplePounce *pounce; gtk_tree_model_get(model, iter, POUNCES_MANAGER_COLUMN_POUNCE, &pounce, -1); - pidgin_pounce_editor_show(NULL, NULL, pounce); + pidgin_pounce_editor_show(GTK_WINDOW(pounces_manager->window), NULL, NULL, pounce); } static void @@ -1095,7 +1095,7 @@ buf = g_strdup_printf(_("Are you sure you want to delete the pounce on %s for %s?"), pouncee, pouncer); purple_request_action(pounce, NULL, buf, NULL, 0, account, pouncee, NULL, - pounce, 2, + "pounces", pounce, 2, _("Delete"), pounces_manager_delete_confirm_cb, _("Cancel"), NULL); g_free(buf); @@ -1152,7 +1152,7 @@ if ((pounce != NULL) && (event->button == 1) && (event->type == GDK_2BUTTON_PRESS)) { - pidgin_pounce_editor_show(NULL, NULL, pounce); + pidgin_pounce_editor_show(GTK_WINDOW(pounces_manager->window), NULL, NULL, pounce); return TRUE; } @@ -1301,7 +1301,7 @@ } void -pidgin_pounces_manager_show(void) +pidgin_pounces_manager_show(GtkWindow *parent) { PouncesManager *dialog; GtkWidget *bbox; @@ -1313,6 +1313,7 @@ if (pounces_manager != NULL) { gtk_window_present(GTK_WINDOW(pounces_manager->window)); + gtk_window_set_transient_for(GTK_WINDOW(pounces_manager->window), parent); return; } @@ -1323,6 +1324,7 @@ dialog->window = win = pidgin_create_window(_("Buddy Pounces"), PIDGIN_HIG_BORDER, "pounces", TRUE); gtk_window_set_default_size(GTK_WINDOW(win), width, height); + gtk_window_set_transient_for(GTK_WINDOW(win), parent); g_signal_connect(G_OBJECT(win), "delete_event", G_CALLBACK(pounces_manager_destroy_cb), dialog); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkpounce.h --- a/pidgin/gtkpounce.h Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkpounce.h Wed Sep 12 19:11:38 2007 +0000 @@ -34,13 +34,13 @@ * @param name The optional name to pounce on. * @param cur_pounce The current buddy pounce, if editing an existing one. */ -void pidgin_pounce_editor_show(PurpleAccount *account, const char *name, +void pidgin_pounce_editor_show(GtkWindow *parent, PurpleAccount *account, const char *name, PurplePounce *cur_pounce); /** * Shows the pounces manager window. */ -void pidgin_pounces_manager_show(void); +void pidgin_pounces_manager_show(GtkWindow *parent); /** * Hides the pounces manager window. diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkprefs.c Wed Sep 12 19:11:38 2007 +0000 @@ -640,7 +640,8 @@ static void add_theme_button_clicked_cb(GtkWidget *widget, gpointer null) { - purple_request_file(NULL, _("Install Theme"), NULL, FALSE, (GCallback)request_theme_file_name_cb, NULL, NULL, NULL, NULL, NULL) ; + purple_request_file(NULL, _("Install Theme"), NULL, FALSE, + (GCallback)request_theme_file_name_cb, NULL, NULL, NULL, NULL, "preferences", NULL) ; } static void @@ -1623,7 +1624,7 @@ purple_request_file(prefs, _("Sound Selection"), filename, FALSE, G_CALLBACK(sound_chosen_cb), NULL, - NULL, NULL, NULL, + NULL, NULL, NULL, "preferences", GINT_TO_POINTER(sound_row_sel)); } diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkprivacy.c --- a/pidgin/gtkprivacy.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkprivacy.c Wed Sep 12 19:11:38 2007 +0000 @@ -561,7 +561,7 @@ _("_Permit"), G_CALLBACK(add_permit_block_cb), _("Cancel"), G_CALLBACK(destroy_request_data), account, name, NULL, - data); + "privacy", data); } else { char *primary = g_strdup_printf(_("Allow %s to contact you?"), name); @@ -573,7 +573,7 @@ purple_request_action(account, _("Permit User"), primary, secondary, 0, account, name, NULL, - data, 2, + "privacy", data, 2, _("_Permit"), G_CALLBACK(confirm_permit_block_cb), _("Cancel"), G_CALLBACK(destroy_request_data)); @@ -602,7 +602,7 @@ _("_Block"), G_CALLBACK(add_permit_block_cb), _("Cancel"), G_CALLBACK(destroy_request_data), account, name, NULL, - data); + "privacy", data); } else { char *primary = g_strdup_printf(_("Block %s?"), name); @@ -612,7 +612,7 @@ purple_request_action(account, _("Block User"), primary, secondary, 0, account, name, NULL, - data, 2, + "privacy", data, 2, _("_Block"), G_CALLBACK(confirm_permit_block_cb), _("Cancel"), G_CALLBACK(destroy_request_data)); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkrequest.c --- a/pidgin/gtkrequest.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkrequest.c Wed Sep 12 19:11:38 2007 +0000 @@ -33,6 +33,7 @@ #include "gtkrequest.h" #include "gtkutils.h" #include "pidginstock.h" +#include "gtkblist.h" #include @@ -78,6 +79,55 @@ } PidginRequestData; +static GtkWindow * +find_toplevel(GList *ll_toplevels, const char *role) +{ + const char *window_role = NULL; + GList *ll_itr = NULL; + + for (ll_itr = ll_toplevels ; ll_itr ; ll_itr = ll_itr->next) { + if ((window_role = gtk_window_get_role(GTK_WINDOW(ll_itr->data))) != NULL) { + if (!strcmp(window_role, role)) + return GTK_WINDOW(ll_itr->data); + } + } + + return NULL; +} + +static GtkWindow * +get_request_parent(const char *ui_hint, PidginConversation *convo) +{ + GtkWindow *toplevel = NULL; + PidginBuddyList *blist = NULL; + + if (convo) + return GTK_WINDOW(convo->win->window); + + if (strcmp(ui_hint, "blist")) { + GList *ll_toplevels = NULL; + + ll_toplevels = gtk_window_list_toplevels(); + + if (!(toplevel = find_toplevel(ll_toplevels, ui_hint))) { + if (!strcmp(ui_hint, "register-account")) + toplevel = find_toplevel(ll_toplevels, "account"); + else + if (!strcmp(ui_hint, "xfer")) + toplevel = find_toplevel(ll_toplevels, "file transfer"); + } + + g_list_free(ll_toplevels); + } + + /* Takes care of "pidgin-statusbox" as well */ + if (!toplevel) + if ((blist = pidgin_blist_get_default_gtk_blist()) != NULL) + return GTK_WINDOW(blist->window); + + return toplevel; +} + static void generic_response_start(PidginRequestData *data) { @@ -286,7 +336,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PidginRequestData *data; GtkWidget *dialog; @@ -311,7 +361,7 @@ /* Create the dialog. */ dialog = gtk_dialog_new_with_buttons(title ? title : PIDGIN_ALERT_TITLE, - NULL, 0, + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL), 0, text_to_stock(cancel_text), 1, text_to_stock(ok_text), 0, NULL); @@ -449,7 +499,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, va_list args) + const char *ui_hint, void *user_data, va_list args) { PidginRequestData *data; GtkWidget *dialog; @@ -473,6 +523,8 @@ /* Create the dialog. */ data->dialog = dialog = gtk_dialog_new(); + gtk_window_set_transient_for(GTK_WINDOW(dialog), + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL)); if (title != NULL) gtk_window_set_title(GTK_WINDOW(dialog), title); @@ -553,7 +605,7 @@ pidgin_request_action(const char *title, const char *primary, const char *secondary, int default_action, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data, size_t action_count, va_list actions) + const char *ui_hint, void *user_data, size_t action_count, va_list actions) { PidginRequestData *data; GtkWidget *dialog; @@ -583,6 +635,8 @@ /* Create the dialog. */ data->dialog = dialog = gtk_dialog_new(); + gtk_window_set_transient_for(GTK_WINDOW(dialog), + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL)); #if GTK_CHECK_VERSION(2,10,0) gtk_window_set_deletable(GTK_WINDOW(data->dialog), FALSE); @@ -1051,7 +1105,7 @@ const char *ok_text, GCallback ok_cb, const char *cancel_text, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PidginRequestData *data; GtkWidget *win; @@ -1092,6 +1146,8 @@ #else /* !_WIN32 */ data->dialog = win = pidgin_create_window(title, PIDGIN_HIG_BORDER, "multifield", TRUE) ; #endif /* _WIN32 */ + gtk_window_set_transient_for(GTK_WINDOW(win), + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL)); g_signal_connect(G_OBJECT(win), "delete_event", G_CALLBACK(destroy_multifield_cb), data); @@ -1507,7 +1563,7 @@ purple_request_action(data, NULL, _("That file already exists"), _("Would you like to overwrite it?"), 0, NULL, NULL, NULL, - data, 2, + "pidgin-request-file", data, 2, _("Overwrite"), G_CALLBACK(file_yes_no_cb), _("Choose New Name"), G_CALLBACK(file_yes_no_cb)); } else @@ -1532,7 +1588,7 @@ gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PidginRequestData *data; GtkWidget *filesel; @@ -1620,6 +1676,9 @@ g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), "clicked", G_CALLBACK(file_ok_check_if_exists_cb), data); #endif /* FILECHOOSER */ + gtk_window_set_role(GTK_WINDOW(filesel), "pidgin-request-file"); + gtk_window_set_transient_for(GTK_WINDOW(filesel), + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL)); data->dialog = filesel; gtk_widget_show(filesel); @@ -1631,7 +1690,7 @@ pidgin_request_folder(const char *title, const char *dirname, GCallback ok_cb, GCallback cancel_cb, PurpleAccount *account, const char *who, PurpleConversation *conv, - void *user_data) + const char *ui_hint, void *user_data) { PidginRequestData *data; GtkWidget *dirsel; @@ -1670,6 +1729,9 @@ g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(dirsel)->ok_button), "clicked", G_CALLBACK(file_ok_check_if_exists_cb), data); #endif + gtk_window_set_role(GTK_WINDOW(dirsel), "pidgin-request-dir"); + gtk_window_set_transient_for(GTK_WINDOW(dirsel), + get_request_parent(ui_hint, conv ? PIDGIN_CONVERSATION(conv) : NULL)); data->dialog = dirsel; gtk_widget_show(dirsel); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtksavedstatuses.c --- a/pidgin/gtksavedstatuses.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtksavedstatuses.c Wed Sep 12 19:11:38 2007 +0000 @@ -339,7 +339,7 @@ purple_request_action(handle, NULL, title, NULL, 0, NULL, NULL, NULL, - sel_titles, 2, + "statuses", sel_titles, 2, _("Delete"), status_window_delete_confirm_cb, _("Cancel"), status_window_delete_cancel_cb); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkstatusbox.c --- a/pidgin/gtkstatusbox.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkstatusbox.c Wed Sep 12 19:11:38 2007 +0000 @@ -1568,7 +1568,7 @@ purple_request_action(saved, NULL, msg, NULL, 0, NULL, NULL, NULL, - data, 2, + "pidgin-statusbox", data, 2, _("Delete"), tree_view_delete_current_selection_cb, _("Cancel"), NULL); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/gtkutils.c Wed Sep 12 19:11:38 2007 +0000 @@ -1533,7 +1533,7 @@ DND_FILE_TRANSFER, "OK", (GCallback)dnd_image_ok_callback, "Cancel", (GCallback)dnd_image_cancel_callback, account, who, NULL, - data, + "conversation", data, _("Set as buddy icon"), DND_BUDDY_ICON, _("Send image file"), DND_FILE_TRANSFER, _("Insert in message"), DND_IM_IMAGE, @@ -1543,7 +1543,7 @@ _("Would you like to set it as the buddy icon for this user?"), 0, account, who, NULL, - data, (GCallback)dnd_set_icon_ok_cb, (GCallback)dnd_set_icon_cancel_cb); + "conversation", data, (GCallback)dnd_set_icon_ok_cb, (GCallback)dnd_set_icon_cancel_cb); else purple_request_choice(NULL, NULL, _("You have dragged an image"), @@ -1553,7 +1553,7 @@ "OK", (GCallback)dnd_image_ok_callback, "Cancel", (GCallback)dnd_image_cancel_callback, account, who, NULL, - data, + "conversation", data, _("Set as buddy icon"), DND_BUDDY_ICON, (ft ? _("Send image file") : _("Insert in message")), (ft ? DND_FILE_TRANSFER : DND_IM_IMAGE), NULL); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/plugins/perl/common/GtkDialogs.xs --- a/pidgin/plugins/perl/common/GtkDialogs.xs Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/plugins/perl/common/GtkDialogs.xs Wed Sep 12 19:11:38 2007 +0000 @@ -8,6 +8,8 @@ void pidgin_dialogs_about() +CODE: + pidgin_dialogs_about(NULL); void pidgin_dialogs_im() diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/plugins/perl/common/GtkLog.xs --- a/pidgin/plugins/perl/common/GtkLog.xs Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/plugins/perl/common/GtkLog.xs Wed Sep 12 19:11:38 2007 +0000 @@ -11,13 +11,19 @@ Purple::LogType type const char * screenname Purple::Account account +CODE: + pidgin_log_show(NULL, type, screenname, account); void pidgin_log_show_contact(contact) Purple::BuddyList::Contact contact +CODE: + pidgin_log_show_contact(NULL, contact); MODULE = Pidgin::Log PACKAGE = Pidgin::SysLog PREFIX = pidgin_syslog_ PROTOTYPES: ENABLE void pidgin_syslog_show() +CODE: + pidgin_syslog_show(NULL); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/plugins/perl/common/GtkPlugin.xs --- a/pidgin/plugins/perl/common/GtkPlugin.xs Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/plugins/perl/common/GtkPlugin.xs Wed Sep 12 19:11:38 2007 +0000 @@ -11,3 +11,5 @@ void pidgin_plugin_dialog_show() +CODE: + pidgin_plugin_dialog_show(NULL); diff -r 0633ecda7ed0 -r 6a0d9fa477d4 pidgin/plugins/perl/common/GtkPounce.xs --- a/pidgin/plugins/perl/common/GtkPounce.xs Wed Sep 12 15:59:22 2007 +0000 +++ b/pidgin/plugins/perl/common/GtkPounce.xs Wed Sep 12 19:11:38 2007 +0000 @@ -8,6 +8,8 @@ Purple::Account account const char * name Purple::Pounce cur_pounce +CODE: + pidgin_pounce_editor_show(NULL, account, name, cur_pounce); MODULE = Pidgin::Pounce PACKAGE = Pidgin::Pounces PREFIX = pidgin_pounces_ PROTOTYPES: ENABLE @@ -20,6 +22,8 @@ void pidgin_pounces_manager_show() +CODE: + pidgin_pounces_manager_show(NULL); void pidgin_pounces_manager_hide()