Mercurial > pidgin.yaz
changeset 19263:428562735971
merge of '1c3f25359208d70ea8d20a62c1dd4d7232b7a11a'
and 'db0cbf6c46526ae0feb61c3e7c2fd59a1ada9910'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Tue, 14 Aug 2007 02:23:30 +0000 |
parents | 450090c68351 (current diff) 771423734d6a (diff) |
children | d5e76ad4b365 bda9483fbeb1 |
files | pidgin/gtkimhtml.c |
diffstat | 28 files changed, 310 insertions(+), 123 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Aug 11 19:40:59 2007 +0000 +++ b/ChangeLog Tue Aug 14 02:23:30 2007 +0000 @@ -1,11 +1,14 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul version 2.1.1 (??/??/????): - libpurple: + Yahoo: * Added an account action to open your inbox in the yahoo prpl. * Added support for Unicode status messages in Yahoo. * Server-stored aliases for Yahoo. (John Moody) * Fixed support for Yahoo! doodling. + * Support for MSN Messenger contacts + + Bonjour: * Bonjour plugin uses native Avahi instead of Howl * Bonjour plugin supports Buddy Icons @@ -14,6 +17,11 @@ the toolbar * Slim new redesign of conversation tabs to maximize number of conversations that can fit in a window + * Tab bar is not visible when only one conversation is open. You can + drag and drop conversations from the infopane. + * Moved "Reset Formatting" toolbar button to Font menu. + * Double click on the infopane to alias buddies and set topics + on chats Finch: * Sound support (Eric Polino)
--- a/ChangeLog.win32 Sat Aug 11 19:40:59 2007 +0000 +++ b/ChangeLog.win32 Tue Aug 14 02:23:30 2007 +0000 @@ -9,6 +9,9 @@ Apple Bonjour for Windows from: http://www.apple.com/support/downloads/bonjourforwindows.html +version 2.0.1 (5/24/2007): + * No changes + version 2.0.0 (5/3/2007): * URI Handler support added via `pidgin.exe --protocolhandler=` * Running a second instance will popup the Buddy List, if possible.
--- a/Makefile.mingw Sat Aug 11 19:40:59 2007 +0000 +++ b/Makefile.mingw Tue Aug 14 02:23:30 2007 +0000 @@ -67,6 +67,7 @@ $(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) install + $(MAKE) -C share -f $(MINGW_MAKEFILE) install create_release_install_dir: install rm -rf $(PIDGIN_INSTALL_DIR).release
--- a/libpurple/account.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/account.c Tue Aug 14 02:23:30 2007 +0000 @@ -1130,8 +1130,8 @@ void * purple_account_request_authorization(PurpleAccount *account, const char *remote_user, - const char *id, const char *alias, const char *message, gboolean on_list, - GCallback auth_cb, GCallback deny_cb, void *user_data) + const char *id, const char *alias, const char *message, gboolean on_list, + PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data) { PurpleAccountUiOps *ui_ops; PurpleAccountRequestInfo *info; @@ -1146,8 +1146,8 @@ info->type = PURPLE_ACCOUNT_REQUEST_AUTHORIZATION; info->account = account; info->ui_handle = ui_ops->request_authorize(account, remote_user, id, alias, message, - on_list, auth_cb, deny_cb, user_data); - + on_list, auth_cb, deny_cb, user_data); + handles = g_list_append(handles, info); return info->ui_handle; }
--- a/libpurple/account.h Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/account.h Tue Aug 14 02:23:30 2007 +0000 @@ -242,7 +242,7 @@ */ void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user, const char *id, const char *alias, const char *message, gboolean on_list, - GCallback auth_cb, GCallback deny_cb, void *user_data); + PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data); /** * Close account requests registered for the given PurpleAccount
--- a/libpurple/dbus-analyze-functions.py Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/dbus-analyze-functions.py Tue Aug 14 02:23:30 2007 +0000 @@ -39,6 +39,7 @@ "purple_prefs_get_string_list", "purple_uri_list_extract_filenames", "purple_uri_list_extract_uris", + "purple_prefs_get_children_names", ] # This is a list of functions that return a GList* or GSList* that should
--- a/libpurple/plugins/perl/perl-handlers.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/plugins/perl/perl-handlers.c Tue Aug 14 02:23:30 2007 +0000 @@ -22,6 +22,7 @@ gchar *hvname; PurplePlugin *plugin; PurplePerlScript *gps; + STRLEN na; dSP; plugin = action->plugin; @@ -45,9 +46,16 @@ XPUSHs(purple_perl_bless_object(gps->plugin, "Purple::Plugin")); PUTBACK; - call_sv(*callback, G_VOID | G_DISCARD); + call_sv(*callback, G_EVAL | G_VOID | G_DISCARD); + SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin action function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + PUTBACK; FREETMPS; LEAVE; @@ -59,6 +67,7 @@ GList *l = NULL; PurplePerlScript *gps; int i = 0, count = 0; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -77,10 +86,16 @@ XPUSHs(&PL_sv_undef); PUTBACK; - count = call_pv(gps->plugin_action_sub, G_ARRAY); + count = call_pv(gps->plugin_action_sub, G_EVAL | G_ARRAY); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin actions lookup exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + if (count == 0) croak("The plugin_actions sub didn't return anything.\n"); @@ -113,6 +128,7 @@ MAGIC *mg; GtkWidget *ret; PurplePerlScript *gps; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -120,13 +136,19 @@ ENTER; SAVETMPS; - count = call_pv(gps->gtk_prefs_sub, G_SCALAR | G_NOARGS); + count = call_pv(gps->gtk_prefs_sub, G_EVAL | G_SCALAR | G_NOARGS); if (count != 1) croak("call_pv: Did not return the correct number of values.\n"); /* the frame was created in a perl sub and is returned */ SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl gtk plugin frame init exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + /* We have a Gtk2::Frame on top of the stack */ sv = POPs; @@ -150,6 +172,7 @@ int count; PurplePerlScript *gps; PurplePluginPrefFrame *ret_frame; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -161,10 +184,16 @@ PUSHMARK(SP); PUTBACK; - count = call_pv(gps->prefs_sub, G_SCALAR | G_NOARGS); + count = call_pv(gps->prefs_sub, G_EVAL | G_SCALAR | G_NOARGS); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin prefs frame init exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + if (count != 1) croak("call_pv: Did not return the correct number of values.\n"); /* the frame was created in a perl sub and is returned */ @@ -215,6 +244,7 @@ { PurplePerlTimeoutHandler *handler = (PurplePerlTimeoutHandler *)data; gboolean ret = FALSE; + STRLEN na; dSP; ENTER; @@ -225,6 +255,12 @@ call_sv(handler->callback, G_EVAL | G_SCALAR); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl timeout function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + ret = POPi; PUTBACK; @@ -285,7 +321,7 @@ else ret_val = purple_perl_data_from_sv(ret_value, POPs); } else { - call_sv(handler->callback, G_SCALAR); + call_sv(handler->callback, G_EVAL | G_SCALAR); SPAGAIN; } @@ -501,6 +537,7 @@ gchar **args, gchar **error, void *data) { int i = 0, count, ret_value = PURPLE_CMD_RET_OK; + STRLEN na; SV *cmdSV, *tmpSV, *convSV; PurplePerlCmdHandler *handler = (PurplePerlCmdHandler *)data; @@ -532,11 +569,17 @@ } PUTBACK; - count = call_sv(handler->callback, G_EVAL|G_SCALAR); + count = call_sv(handler->callback, G_EVAL | G_SCALAR); if (count != 1) croak("call_sv: Did not return the correct number of values.\n"); + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin command function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + SPAGAIN; ret_value = POPi;
--- a/libpurple/protocols/bonjour/jabber.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Tue Aug 14 02:23:30 2007 +0000 @@ -371,6 +371,8 @@ purple_debug_info("bonjour", "Recieved conversation close notification from %s.\n", pb->name); + g_return_if_fail(bb != NULL); + /* Close the socket, clear the watcher and free memory */ bonjour_jabber_close_conversation(bb->conversation); bb->conversation = NULL;
--- a/libpurple/protocols/bonjour/parser.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/bonjour/parser.c Tue Aug 14 02:23:30 2007 +0000 @@ -82,6 +82,11 @@ } } +static gboolean _async_bonjour_jabber_stream_ended_cb(gpointer data) { + bonjour_jabber_stream_ended((PurpleBuddy *) data); + return FALSE; +} + static void bonjour_parser_element_end_libxml(void *user_data, const xmlChar *element_name, const xmlChar *prefix, const xmlChar *namespace) @@ -94,7 +99,9 @@ /* We don't keep a reference to the start stream xmlnode, * so we have to check for it here to close the conversation */ if(!xmlStrcmp(element_name, (xmlChar*) "stream")) { - bonjour_jabber_stream_ended(pb); + /* Asynchronously close the conversation to prevent bonjour_parser_setup() + * being called from within this context */ + g_idle_add(_async_bonjour_jabber_stream_ended_cb, pb); } return; }
--- a/libpurple/protocols/jabber/auth.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Tue Aug 14 02:23:30 2007 +0000 @@ -682,11 +682,11 @@ gchar *a1, *convnode=NULL, *convpasswd = NULL, *ha1, *ha2, *kd, *x, *z; - if((convnode = g_convert(jid->node, strlen(jid->node), "iso-8859-1", "utf-8", + if((convnode = g_convert(jid->node, -1, "iso-8859-1", "utf-8", NULL, NULL, NULL)) == NULL) { convnode = g_strdup(jid->node); } - if(passwd && ((convpasswd = g_convert(passwd, strlen(passwd), "iso-8859-1", + if(passwd && ((convpasswd = g_convert(passwd, -1, "iso-8859-1", "utf-8", NULL, NULL, NULL)) == NULL)) { convpasswd = g_strdup(passwd); }
--- a/libpurple/protocols/jabber/presence.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/jabber/presence.c Tue Aug 14 02:23:30 2007 +0000 @@ -193,16 +193,18 @@ char *who; }; -static void authorize_add_cb(struct _jabber_add_permit *jap) +static void authorize_add_cb(gpointer data) { + struct _jabber_add_permit *jap = data; jabber_presence_subscription_set(jap->gc->proto_data, jap->who, "subscribed"); g_free(jap->who); g_free(jap); } -static void deny_add_cb(struct _jabber_add_permit *jap) +static void deny_add_cb(gpointer data) { + struct _jabber_add_permit *jap = data; jabber_presence_subscription_set(jap->gc->proto_data, jap->who, "unsubscribed"); @@ -305,7 +307,7 @@ jap->js = js; purple_account_request_authorization(purple_connection_get_account(js->gc), from, NULL, NULL, NULL, onlist, - G_CALLBACK(authorize_add_cb), G_CALLBACK(deny_add_cb), jap); + authorize_add_cb, deny_add_cb, jap); jabber_id_free(jid); return; } else if(type && !strcmp(type, "subscribed")) {
--- a/libpurple/protocols/msn/userlist.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/msn/userlist.c Tue Aug 14 02:23:30 2007 +0000 @@ -38,8 +38,9 @@ * Callbacks **************************************************************************/ static void -msn_accept_add_cb(MsnPermitAdd *pa) +msn_accept_add_cb(gpointer data) { + MsnPermitAdd *pa = data; MsnSession *session = pa->gc->proto_data; MsnUserList *userlist = session->userlist; @@ -51,8 +52,9 @@ } static void -msn_cancel_add_cb(MsnPermitAdd *pa) +msn_cancel_add_cb(gpointer data) { + MsnPermitAdd *pa = data; MsnSession *session = pa->gc->proto_data; MsnUserList *userlist = session->userlist; @@ -75,7 +77,7 @@ purple_account_request_authorization(purple_connection_get_account(gc), passport, NULL, friendly, NULL, purple_find_buddy(purple_connection_get_account(gc), passport) != NULL, - G_CALLBACK(msn_accept_add_cb), G_CALLBACK(msn_cancel_add_cb), pa); + msn_accept_add_cb, msn_cancel_add_cb, pa); } /**************************************************************************
--- a/libpurple/protocols/oscar/oscar.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Tue Aug 14 02:23:30 2007 +0000 @@ -482,7 +482,7 @@ /* Attempt to send as ASCII */ if (oscar_charset_check(from) == AIM_CHARSET_ASCII) { - *msg = g_convert(from, strlen(from), "ASCII", "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, "ASCII", "UTF-8", NULL, &msglen, NULL); *charset = AIM_CHARSET_ASCII; *charsubset = 0x0000; *msglen_int = msglen; @@ -504,7 +504,7 @@ b = purple_find_buddy(account, destsn); if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b))) { - *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, NULL); if (*msg != NULL) { *charset = AIM_CHARSET_UNICODE; @@ -527,7 +527,7 @@ * XXX - We need a way to only attempt to convert if we KNOW "from" * can be converted to "charsetstr" */ - *msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, charsetstr, "UTF-8", NULL, &msglen, NULL); if (*msg != NULL) { *charset = AIM_CHARSET_CUSTOM; *charsubset = 0x0000; @@ -538,7 +538,7 @@ /* * Nothing else worked, so send as UCS-2BE. */ - *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, &err); + *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, &err); if (*msg != NULL) { *charset = AIM_CHARSET_UNICODE; *charsubset = 0x0000; @@ -2261,8 +2261,9 @@ /* When other people ask you for authorization */ static void -purple_auth_grant(struct name_data *data) +purple_auth_grant(gpointer cbdata) { + struct name_data *data = cbdata; PurpleConnection *gc = data->gc; OscarData *od = gc->proto_data; @@ -2282,8 +2283,9 @@ } static void -purple_auth_dontgrant_msgprompt(struct name_data *data) +purple_auth_dontgrant_msgprompt(gpointer cbdata) { + struct name_data *data = cbdata; purple_request_input(data->gc, NULL, _("Authorization Denied Message:"), NULL, _("No reason given."), TRUE, FALSE, NULL, _("_OK"), G_CALLBACK(purple_auth_dontgrant), @@ -2404,8 +2406,8 @@ purple_account_request_authorization(account, sn, NULL, NULL, reason, purple_find_buddy(account, sn) != NULL, - G_CALLBACK(purple_auth_grant), - G_CALLBACK(purple_auth_dontgrant_msgprompt), data); + purple_auth_grant, + purple_auth_dontgrant_msgprompt, data); g_free(reason); } } break; @@ -4346,10 +4348,10 @@ charset = oscar_charset_check(str); if (charset == AIM_CHARSET_UNICODE) { - encoded = g_convert(str, strlen(str), "UCS-2BE", "UTF-8", NULL, ret_len, NULL); + encoded = g_convert(str, -1, "UCS-2BE", "UTF-8", NULL, ret_len, NULL); *encoding = "unicode-2-0"; } else if (charset == AIM_CHARSET_CUSTOM) { - encoded = g_convert(str, strlen(str), "ISO-8859-1", "UTF-8", NULL, ret_len, NULL); + encoded = g_convert(str, -1, "ISO-8859-1", "UTF-8", NULL, ret_len, NULL); *encoding = "iso-8859-1"; } else { encoded = g_strdup(str); @@ -5170,8 +5172,8 @@ purple_account_request_authorization(account, sn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), - reason, buddy != NULL, G_CALLBACK(purple_auth_grant), - G_CALLBACK(purple_auth_dontgrant_msgprompt), data); + reason, buddy != NULL, purple_auth_grant, + purple_auth_dontgrant_msgprompt, data); g_free(reason); return 1;
--- a/libpurple/protocols/yahoo/util.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/yahoo/util.c Tue Aug 14 02:23:30 2007 +0000 @@ -61,7 +61,7 @@ else to_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); - ret = g_convert_with_fallback(str, strlen(str), to_codeset, "UTF-8", "?", NULL, NULL, NULL); + ret = g_convert_with_fallback(str, -1, to_codeset, "UTF-8", "?", NULL, NULL, NULL); if (ret) return ret; else @@ -92,7 +92,7 @@ else from_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); - ret = g_convert_with_fallback(str, strlen(str), "UTF-8", from_codeset, NULL, NULL, NULL, NULL); + ret = g_convert_with_fallback(str, -1, "UTF-8", from_codeset, NULL, NULL, NULL, NULL); if (ret) return ret;
--- a/libpurple/protocols/yahoo/yahoo.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Tue Aug 14 02:23:30 2007 +0000 @@ -953,7 +953,8 @@ }; static void -yahoo_buddy_add_authorize_cb(struct yahoo_add_request *add_req) { +yahoo_buddy_add_authorize_cb(gpointer data) { + struct yahoo_add_request *add_req = data; g_free(add_req->id); g_free(add_req->who); g_free(add_req->msg); @@ -997,7 +998,8 @@ } static void -yahoo_buddy_add_deny_reason_cb(struct yahoo_add_request *add_req) { +yahoo_buddy_add_deny_reason_cb(gpointer data) { + struct yahoo_add_request *add_req = data; purple_request_input(add_req->gc, NULL, _("Authorization denied message:"), NULL, _("No reason given."), TRUE, FALSE, NULL, _("OK"), G_CALLBACK(yahoo_buddy_add_deny_cb), @@ -1042,8 +1044,8 @@ */ purple_account_request_authorization(purple_connection_get_account(gc), add_req->who, add_req->id, NULL, add_req->msg, purple_find_buddy(purple_connection_get_account(gc),add_req->who) != NULL, - G_CALLBACK(yahoo_buddy_add_authorize_cb), - G_CALLBACK(yahoo_buddy_add_deny_reason_cb), + yahoo_buddy_add_authorize_cb, + yahoo_buddy_add_deny_reason_cb, add_req); } else { g_free(add_req->id); @@ -3681,8 +3683,18 @@ group2 = yahoo_string_encode(gc, group, NULL); pkt = yahoo_packet_new(YAHOO_SERVICE_ADDBUDDY, YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, "ssss", 1, purple_connection_get_display_name(gc), - 7, buddy->name, 65, group2, 14, ""); + yahoo_packet_hash(pkt, "ssssssssss", + 14, "", + 65, group2, + 97, "1", + 1, purple_connection_get_display_name(gc), + 302, "319", + 300, "319", + 7, buddy->name, + 334, "0", + 301, "319", + 303, "319" + ); yahoo_packet_send_and_free(pkt, yd); g_free(group2); } @@ -3819,16 +3831,12 @@ return; } - /* Step 1: Add buddy to new group. */ - pkt = yahoo_packet_new(YAHOO_SERVICE_ADDBUDDY, YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, "ssss", 1, purple_connection_get_display_name(gc), - 7, who, 65, gpn, 14, ""); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHGRP_15, YAHOO_STATUS_AVAILABLE, 0); + yahoo_packet_hash(pkt, "ssssssss", 1, purple_connection_get_display_name(gc), + 302, "240", 300, "240", 7, who, 224, gpo, 264, gpn, 301, + "240", 303, "240"); yahoo_packet_send_and_free(pkt, yd); - /* Step 2: Remove buddy from old group */ - pkt = yahoo_packet_new(YAHOO_SERVICE_REMBUDDY, YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 65, gpo); - yahoo_packet_send_and_free(pkt, yd); g_free(gpn); g_free(gpo); }
--- a/libpurple/protocols/yahoo/yahoo_packet.c Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo_packet.c Tue Aug 14 02:23:30 2007 +0000 @@ -223,6 +223,11 @@ GSList *l = pkt->hash; int pos = 0; + /* This is only called from one place, and the list is + * always backwards */ + + l = g_slist_reverse(l); + while (l) { struct yahoo_pair *pair = l->data; gchar buf[100];
--- a/libpurple/protocols/yahoo/yahoo_packet.h Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo_packet.h Tue Aug 14 02:23:30 2007 +0000 @@ -98,6 +98,7 @@ YAHOO_SERVICE_AVATAR_UPDATE = 0xc7, YAHOO_SERVICE_VERIFY_ID_EXISTS = 0xc8, YAHOO_SERVICE_AUDIBLE = 0xd0, + YAHOO_SERVICE_CHGRP_15 = 0xe7, YAHOO_SERVICE_STATUS_15 = 0xf0, YAHOO_SERVICE_LIST_15 = 0Xf1, YAHOO_SERVICE_WEBLOGIN = 0x0226,
--- a/libpurple/win32/global.mak Sat Aug 11 19:40:59 2007 +0000 +++ b/libpurple/win32/global.mak Tue Aug 14 02:23:30 2007 +0000 @@ -40,7 +40,6 @@ PIDGIN_IDLETRACK_TOP := $(PIDGIN_TOP)/win32/IdleTracker PIDGIN_PIXMAPS_TOP := $(PIDGIN_TOP)/pixmaps PIDGIN_PLUGINS_TOP := $(PIDGIN_TOP)/plugins -PIDGIN_SOUNDS_TOP := $(PIDGIN_TOP)/sounds PURPLE_PO_TOP := $(PIDGIN_TREE_TOP)/po PURPLE_PROTOS_TOP := $(PURPLE_TOP)/protocols
--- a/pidgin/Makefile.mingw Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/Makefile.mingw Tue Aug 14 02:23:30 2007 +0000 @@ -146,7 +146,6 @@ install: install_shallow all $(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_PIXMAPS_TOP) -f $(MINGW_MAKEFILE) install - $(MAKE) -C $(PIDGIN_SOUNDS_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_IDLETRACK_TOP) -f $(MINGW_MAKEFILE) install win32/pidgin_dll_rc.rc: win32/pidgin_dll_rc.rc.in $(PIDGIN_TREE_TOP)/VERSION
--- a/pidgin/gtkblist.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/gtkblist.c Tue Aug 14 02:23:30 2007 +0000 @@ -2608,6 +2608,7 @@ gboolean tooltip_top = FALSE; struct _pidgin_blist_node *gtknode; GdkRectangle mon_size; + int sig; if (node == NULL) return; @@ -2618,7 +2619,6 @@ */ pidgin_blist_tooltip_destroy(); - gtkblist->tipwindow = gtk_window_new(GTK_WINDOW_POPUP); if(PURPLE_BLIST_NODE_IS_CHAT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) { @@ -2673,7 +2673,6 @@ G_CALLBACK(pidgin_blist_paint_tip), NULL); gtk_widget_ensure_style (gtkblist->tipwindow); - #if GTK_CHECK_VERSION(2,2,0) gdk_display_get_pointer(gdk_display_get_default(), &screen, &x, &y, NULL); mon_num = gdk_screen_get_monitor_at_point(screen, x, y); @@ -2722,6 +2721,10 @@ gtk_window_move(GTK_WINDOW(gtkblist->tipwindow), x, y); gtk_widget_show(gtkblist->tipwindow); + /* Hide the tooltip when the widget is destroyed */ + sig = g_signal_connect(G_OBJECT(widget), "destroy", G_CALLBACK(pidgin_blist_tooltip_destroy), NULL); + g_signal_connect_swapped(G_OBJECT(gtkblist->tipwindow), "destroy", G_CALLBACK(g_source_remove), GINT_TO_POINTER(sig)); + return; } @@ -3321,18 +3324,14 @@ } /* XXX Good luck cleaning up this crap */ - if (aliased) { - contact = (PurpleContact*)((PurpleBlistNode*)b)->parent; - if(contact) - gtkcontactnode = ((PurpleBlistNode*)contact)->ui_data; - - if(gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) - name = contact->alias; - else - name = purple_buddy_get_alias(b); - } else { - name = b->name; - } + contact = (PurpleContact*)((PurpleBlistNode*)b)->parent; + if(contact) + gtkcontactnode = ((PurpleBlistNode*)contact)->ui_data; + + if(gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) + name = contact->alias; + else + name = purple_buddy_get_alias(b); esc = g_markup_escape_text(name, strlen(name));
--- a/pidgin/gtkconv.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/gtkconv.c Tue Aug 14 02:23:30 2007 +0000 @@ -186,6 +186,7 @@ static void focus_out_from_menubar(GtkWidget *wid, PidginWindow *win); static void pidgin_conv_tab_pack(PidginWindow *win, PidginConversation *gtkconv); static gboolean infopane_press_cb(GtkWidget *widget, GdkEventButton *e, PidginConversation *conv); +static gboolean alias_double_click_cb(GtkWidget *widget, GdkEventButton *event, PidginConversation *gtkconv); static void pidgin_conv_set_position_size(PidginWindow *win, int x, int y, int width, int height); @@ -3340,8 +3341,10 @@ } else { stock_id = PIDGIN_STOCK_ANIMATION_TYPING5; tooltip = _("User has typed something and stopped"); - g_source_remove(gtkconv->u.im->typing_timer); - gtkconv->u.im->typing_timer = 0; + if (gtkconv->u.im->typing_timer != 0) { + g_source_remove(gtkconv->u.im->typing_timer); + gtkconv->u.im->typing_timer = 0; + } } if (gtkwin->menu.typing_icon == NULL) @@ -4015,7 +4018,6 @@ } gtk_entry_set_text(GTK_ENTRY(gtkchat->topic_text), current_topic); - prpl_info->set_chat_topic(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), new_topic); @@ -4383,6 +4385,8 @@ "foreground-set", TRUE, "weight-set", TRUE, NULL); + g_object_set(G_OBJECT(rend), "editable", TRUE, NULL); + col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", CHAT_USERS_ALIAS_COLUMN, "foreground-gdk", CHAT_USERS_COLOR_COLUMN, @@ -4411,17 +4415,36 @@ gtk_container_add(GTK_CONTAINER(sw), list); } -static int tooltip_timeout = 0; +/* Stuff used to display tooltips on the infopane */ +static struct { + int timeout; + PidginConversation *gtkconv; /* This is the Pidgin conversation that + triggered the tooltip */ +} tooltip; + +static void +reset_tooltip() +{ + if (tooltip.timeout != 0) { + g_source_remove(tooltip.timeout); + tooltip.timeout = 0; + } + tooltip.gtkconv = NULL; +} static gboolean pidgin_conv_tooltip_timeout(PidginConversation *gtkconv) { PurpleBlistNode *node = NULL; - PurpleConversation *conv = gtkconv->active_conv; - if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { - node = (PurpleBlistNode*)(purple_blist_find_chat(conv->account, conv->name)); + PurpleConversation *conv; + + g_return_val_if_fail (tooltip.gtkconv == gtkconv, FALSE); + + conv = gtkconv->active_conv; + if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { + node = (PurpleBlistNode*)(purple_blist_find_chat(conv->account, conv->name)); } else { - node = (PurpleBlistNode*)(purple_find_buddy(conv->account, conv->name)); + node = (PurpleBlistNode*)(purple_find_buddy(conv->account, conv->name)); } if (node) @@ -4433,10 +4456,7 @@ pidgin_conv_leave_cb (GtkWidget *w, GdkEventCrossing *e, PidginConversation *gtkconv) { pidgin_blist_tooltip_destroy(); - if (tooltip_timeout) { - g_source_remove(tooltip_timeout); - tooltip_timeout = 0; - } + reset_tooltip(); } static gboolean @@ -4448,10 +4468,11 @@ if (delay == 0) return FALSE; - if (tooltip_timeout != 0) - g_source_remove(tooltip_timeout); - - tooltip_timeout = g_timeout_add(delay, (GSourceFunc)pidgin_conv_tooltip_timeout, gtkconv); + if (tooltip.timeout != 0) + g_source_remove(tooltip.timeout); + + tooltip.timeout = g_timeout_add(delay, (GSourceFunc)pidgin_conv_tooltip_timeout, gtkconv); + tooltip.gtkconv = gtkconv; return FALSE; } @@ -4488,11 +4509,10 @@ g_signal_connect(G_OBJECT(event_box), "button_press_event", G_CALLBACK(infopane_press_cb), gtkconv); - g_signal_connect(G_OBJECT(event_box), "motion-notify-event", - G_CALLBACK(pidgin_conv_motion_cb), gtkconv); - g_signal_connect(G_OBJECT(event_box), "leave-notify-event", - G_CALLBACK(pidgin_conv_leave_cb), gtkconv); - + g_signal_connect(G_OBJECT(event_box), "motion-notify-event", + G_CALLBACK(pidgin_conv_motion_cb), gtkconv); + g_signal_connect(G_OBJECT(event_box), "leave-notify-event", + G_CALLBACK(pidgin_conv_leave_cb), gtkconv); gtkconv->infopane = gtk_cell_view_new(); gtkconv->infopane_model = gtk_list_store_new(CONV_NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDK_TYPE_PIXBUF); @@ -4986,6 +5006,9 @@ g_list_foreach(gtkconv->send_history, (GFunc)g_free, NULL); g_list_free(gtkconv->send_history); + if (tooltip.gtkconv == gtkconv) + reset_tooltip(); + g_free(gtkconv); } @@ -6277,7 +6300,7 @@ else title = g_strdup(purple_conversation_get_title(conv)); - if ((truncate = strchr(title, ' ')) || + if (((truncate = strchr(title, ' ')) && strcmp(title, conv->name)) || (truncate = strchr(title, '@'))) { truncchar = *truncate; *truncate = '\0'; @@ -6292,16 +6315,19 @@ markup = title; } } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { - PurpleConvChat *chat = PURPLE_CONV_CHAT(conv); - const char *topic = purple_conv_chat_get_topic(chat); + const char *topic = gtk_entry_get_text(GTK_ENTRY(gtkconv->u.chat->topic_text)); + char *esc = topic ? g_markup_escape_text(topic, -1) : NULL; markup = g_strdup_printf("%s%s<span color='%s' size='smaller'>%s</span>", purple_conversation_get_title(conv), - topic ? "\n" : "", + esc && *esc ? "\n" : "", pidgin_get_dim_grey_string(gtkconv->infopane), - topic ? topic : ""); + esc ? esc : ""); + g_free(esc); } gtk_list_store_set(gtkconv->infopane_model, &(gtkconv->infopane_iter), CONV_TEXT_COLUMN, markup, -1); + /* XXX seanegan Why do I have to do this? */ + gtk_widget_queue_draw(gtkconv->infopane); if (title != markup) g_free(markup); @@ -6604,10 +6630,10 @@ GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); g_signal_connect(G_OBJECT(event), "button-press-event", G_CALLBACK(icon_menu), gtkconv); - g_signal_connect(G_OBJECT(event), "motion-notify-event", - G_CALLBACK(pidgin_conv_motion_cb), gtkconv); - g_signal_connect(G_OBJECT(event), "leave-notify-event", - G_CALLBACK(pidgin_conv_leave_cb), gtkconv); + g_signal_connect(G_OBJECT(event), "motion-notify-event", + G_CALLBACK(pidgin_conv_motion_cb), gtkconv); + g_signal_connect(G_OBJECT(event), "leave-notify-event", + G_CALLBACK(pidgin_conv_leave_cb), gtkconv); gtk_widget_show(event); gtkconv->u.im->icon = gtk_image_new_from_pixbuf(scale); @@ -7179,23 +7205,23 @@ /* Conversations -> Chat */ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/conversations/chat"); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height", 50); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height", 54); purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/userlist_width", 80); purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/x", 0); purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/y", 0); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/width", 0); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/height", 0); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/width", 340); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/height", 390); /* Conversations -> IM */ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/conversations/im"); purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/x", 0); purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/y", 0); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/width", 0); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/height", 0); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/width", 340); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/height", 390); purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/im/animate_buddy_icons", TRUE); - purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height", 50); + purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height", 54); 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"); @@ -7690,8 +7716,10 @@ gtkconv = pidgin_conv_window_get_gtkconv_at_index(dest_win, page_num); tab = gtkconv->tabby; - - if (horiz_tabs) { + if (gtk_notebook_get_show_tabs(dest_notebook) == FALSE) { + dnd_hints_show_relative(HINT_ARROW_DOWN, gtkconv->infopane, HINT_POSITION_CENTER, HINT_POSITION_TOP); + dnd_hints_show_relative(HINT_ARROW_UP, gtkconv->infopane, HINT_POSITION_CENTER, HINT_POSITION_BOTTOM); + } else if (horiz_tabs) { if (((gpointer)win == (gpointer)dest_win && win->drag_tab < page_num) || to_right) { dnd_hints_show_relative(HINT_ARROW_DOWN, tab, HINT_POSITION_RIGHT, HINT_POSITION_TOP); dnd_hints_show_relative(HINT_ARROW_UP, tab, HINT_POSITION_RIGHT, HINT_POSITION_BOTTOM); @@ -7738,9 +7766,37 @@ static gboolean infopane_press_cb(GtkWidget *widget, GdkEventButton *e, PidginConversation *gtkconv) { + if (e->type == GDK_2BUTTON_PRESS && e->button == 1) { + if (alias_double_click_cb(widget, e, gtkconv)) + return TRUE; + } + if (e->type != GDK_BUTTON_PRESS) return FALSE; + if (e->button == 1) { + int nb_x, nb_y; + + if (gtkconv->win->in_drag) + return TRUE; + + gtkconv->win->in_predrag = TRUE; + gtkconv->win->drag_tab = gtk_notebook_page_num(GTK_NOTEBOOK(gtkconv->win->notebook), gtkconv->tab_cont); + + gdk_window_get_origin(gtkconv->infopane_hbox->window, &nb_x, &nb_y); + + gtkconv->win->drag_min_x = gtkconv->infopane_hbox->allocation.x + nb_x; + gtkconv->win->drag_min_y = gtkconv->infopane_hbox->allocation.y + nb_y; + gtkconv->win->drag_max_x = gtkconv->infopane_hbox->allocation.width + gtkconv->win->drag_min_x; + gtkconv->win->drag_max_y = gtkconv->infopane_hbox->allocation.height + gtkconv->win->drag_min_y; + + gtkconv->win->drag_motion_signal = g_signal_connect(G_OBJECT(gtkconv->win->notebook), "motion_notify_event", + G_CALLBACK(notebook_motion_cb), gtkconv->win); + gtkconv->win->drag_leave_signal = g_signal_connect(G_OBJECT(gtkconv->win->notebook), "leave_notify_event", + G_CALLBACK(notebook_leave_cb), gtkconv->win); + return FALSE; + } + if (e->button == 3) { /* Right click was pressed. Popup the Send To menu. */ GtkWidget *menu = gtk_menu_new(), *sub; @@ -8119,7 +8175,7 @@ { g_signal_handlers_disconnect_matched(G_OBJECT(entry), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, gtkconv); - gtk_widget_show(gtkconv->tab_label); + gtk_widget_show(gtkconv->infopane); gtk_widget_grab_focus(gtkconv->entry); gtk_widget_destroy(entry); } @@ -8166,21 +8222,18 @@ } serv_alias_buddy(buddy); } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { - PurpleChat *chat; - - chat = purple_blist_find_chat(account, name); - if (chat != NULL) { - purple_blist_alias_chat(chat, - gtk_entry_get_text(entry)); - } + gtk_entry_set_text(GTK_ENTRY(gtkconv->u.chat->topic_text), gtk_entry_get_text(entry)); + topic_callback(NULL, gtkconv); } remove_edit_entry(user_data, GTK_WIDGET(entry)); } static gboolean -alias_double_click_cb(GtkNotebook *notebook, GdkEventButton *event, PidginConversation *gtkconv) +alias_double_click_cb(GtkWidget *widget, GdkEventButton *event, PidginConversation *gtkconv) { GtkWidget *entry = NULL; + PurpleConversation *conv = gtkconv->active_conv; + const char *text = NULL; if (event->button != 1 || event->type != GDK_2BUTTON_PRESS) { return FALSE; @@ -8196,6 +8249,15 @@ return FALSE; } + if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { + PurpleBuddy *buddy = purple_find_buddy(gtkconv->active_conv->account, gtkconv->active_conv->name); + if (!buddy) + return FALSE; + text = purple_buddy_get_contact_alias(buddy); + } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { + text = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); + } + /* alias label */ entry = gtk_entry_new(); gtk_entry_set_has_frame(GTK_ENTRY(entry), FALSE); @@ -8204,17 +8266,19 @@ gtk_entry_set_alignment(GTK_ENTRY(entry), 0.5); #endif - gtk_box_pack_start(GTK_BOX(gtkconv->tabby), entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(gtkconv->infopane_hbox), entry, TRUE, TRUE, 0); /* after the tab label */ - gtk_box_reorder_child(GTK_BOX(gtkconv->tabby), entry, 2); + gtk_box_reorder_child(GTK_BOX(gtkconv->infopane_hbox), entry, 0); g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(alias_cb), gtkconv); g_signal_connect(G_OBJECT(entry), "focus-out-event", G_CALLBACK(alias_focus_cb), gtkconv); g_signal_connect(G_OBJECT(entry), "key-press-event", G_CALLBACK(alias_key_press_cb), gtkconv); - gtk_entry_set_text(GTK_ENTRY(entry), - gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); + + + + gtk_entry_set_text(GTK_ENTRY(entry), text); gtk_widget_show(entry); - gtk_widget_hide(gtkconv->tab_label); + gtk_widget_hide(gtkconv->infopane); gtk_widget_grab_focus(entry); return FALSE;
--- a/pidgin/gtkimhtml.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/gtkimhtml.c Tue Aug 14 02:23:30 2007 +0000 @@ -1038,7 +1038,7 @@ { char *tmp; - if (text == NULL) + if (text == NULL || !(*text)) return; tmp = g_markup_escape_text(text, -1); @@ -1054,7 +1054,7 @@ if (!gtk_text_view_get_editable(GTK_TEXT_VIEW(imhtml))) return; - if (imhtml->wbfo || selection_data->length < 0) { + if (imhtml->wbfo || selection_data->length <= 0) { gtk_clipboard_request_text(clipboard, paste_plaintext_received_cb, imhtml); return; } else {
--- a/pidgin/gtkprefs.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/gtkprefs.c Tue Aug 14 02:23:30 2007 +0000 @@ -1039,9 +1039,11 @@ #endif vbox = pidgin_make_frame(ret, _("Default Formatting")); + gtk_box_set_child_packing(GTK_BOX(vbox->parent), vbox, TRUE, TRUE, 0, GTK_PACK_START); frame = pidgin_create_imhtml(TRUE, &imhtml, &toolbar, NULL); gtk_widget_set_name(imhtml, "pidgin_prefs_font_imhtml"); + gtk_widget_set_size_request(frame, 300, -1); gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE); gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_BOLD |
--- a/pidgin/gtkrequest.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/gtkrequest.c Tue Aug 14 02:23:30 2007 +0000 @@ -1107,7 +1107,7 @@ /* Setup the vbox */ vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); - gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); gtk_widget_show(vbox); sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); @@ -1132,6 +1132,8 @@ total_fields += g_list_length(purple_request_field_group_get_fields(gl->data)); if(total_fields > 9) { + GtkWidget *hbox_for_spacing, *vbox_for_spacing; + sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); @@ -1141,8 +1143,19 @@ gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); gtk_widget_show(sw); + hbox_for_spacing = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), + hbox_for_spacing); + gtk_widget_show(hbox_for_spacing); + + vbox_for_spacing = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_box_pack_start(GTK_BOX(hbox_for_spacing), + vbox_for_spacing, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE); + gtk_widget_show(vbox_for_spacing); + vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), vbox2); + gtk_box_pack_start(GTK_BOX(vbox_for_spacing), + vbox2, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE); gtk_widget_show(vbox2); } else { vbox2 = vbox;
--- a/pidgin/plugins/win32/transparency/win2ktrans.c Sat Aug 11 19:40:59 2007 +0000 +++ b/pidgin/plugins/win32/transparency/win2ktrans.c Tue Aug 14 02:23:30 2007 +0000 @@ -274,9 +274,11 @@ gtk_window_get_size(GTK_WINDOW(win), &width, &height); gtk_box_pack_start(GTK_BOX(vbox), slider_box, FALSE, FALSE, 0); +#if 0 /*Now that we save window sizes, don't resize it or else it causes windows to grow*/ /* Make window taller so we don't slowly collapse its message area */ gtk_window_resize(GTK_WINDOW(win), width, (height + slidereq.height)); +#endif /* Add window to list, to track that it has a slider */ slidwin = g_new0(slider_win, 1); slidwin->win = win; @@ -292,6 +294,7 @@ slider_win *slidwin = (slider_win*) tmp->data; if (slidwin != NULL && GTK_IS_WINDOW(slidwin->win)) { +#if 0 GtkRequisition slidereq; gint width, height; /* Figure out how tall the slider was */ @@ -300,12 +303,13 @@ gtk_window_get_size( GTK_WINDOW(slidwin->win), &width, &height); - +#endif gtk_widget_destroy(slidwin->slider); - +#if 0 gtk_window_resize( GTK_WINDOW(slidwin->win), width, (height - slidereq.height)); +#endif } g_free(slidwin); tmp = tmp->next;
--- a/po/POTFILES.in Sat Aug 11 19:40:59 2007 +0000 +++ b/po/POTFILES.in Tue Aug 14 02:23:30 2007 +0000 @@ -11,6 +11,7 @@ finch/gntpounce.c finch/gntprefs.c finch/gntrequest.c +finch/gntsound.c finch/gntstatus.c finch/gntui.c finch/libgnt/gntbox.c
--- a/share/Makefile.am Sat Aug 11 19:40:59 2007 +0000 +++ b/share/Makefile.am Tue Aug 14 02:23:30 2007 +0000 @@ -1,2 +1,4 @@ SUBDIRS = sounds + +EXTRA_DIST = Makefile.mingw
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/Makefile.mingw Tue Aug 14 02:23:30 2007 +0000 @@ -0,0 +1,19 @@ +# +# Makefile.mingw +# +# Description: Makefile for win32 (mingw) version +# + +PIDGIN_TREE_TOP := .. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak + +include ./Makefile.am + +.PHONY: install clean + +install: + if test '$(SUBDIRS)'; then \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + $(MAKE) -C $$subdir -f $(MINGW_MAKEFILE) install || exit 1 ;\ + done; \ + fi;