From: <aar...@us...> - 2006-08-25 07:02:21
|
Revision: 17028 Author: aaronsheldon Date: 2006-08-25 00:02:17 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=17028&view=rev Log Message: ----------- A user can already manipulate the tabs of a GTK conversation without focus with the mouse wheel, and can scroll up and down and read a conversation without focus. With these lines removed, the user can now also change a conversation from "read" to "unread" despite not having focused the window, merely with his mouse. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-08-25 02:25:31 UTC (rev 17027) +++ trunk/gtk/gtkconv.c 2006-08-25 07:02:17 UTC (rev 17028) @@ -7352,11 +7352,7 @@ g_return_if_fail(conv != NULL); - /* - * Only set "unseen" to "none" if the window has focus - */ - if (gaim_gtk_conv_window_has_focus(win)) - gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); + gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); /* Update the menubar */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-09-18 04:40:48
|
Revision: 17308 http://svn.sourceforge.net/gaim/?rev=17308&view=rev Author: rlaager Date: 2006-09-17 21:40:45 -0700 (Sun, 17 Sep 2006) Log Message: ----------- Nathan pointed out that I made a mistake when editing that last patch. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-09-18 04:35:10 UTC (rev 17307) +++ trunk/gtk/gtkconv.c 2006-09-18 04:40:45 UTC (rev 17308) @@ -3352,7 +3352,7 @@ CHAT_USERS_NAME_COLUMN, name, CHAT_USERS_FLAGS_COLUMN, flags, CHAT_USERS_COLOR_COLUMN, &send_color, - CHAT_USERS_WEIGHT_COLUMN ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, is_buddy, + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, -1); } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-09-25 07:27:07
|
Revision: 17347 http://svn.sourceforge.net/gaim/?rev=17347&view=rev Author: deryni9 Date: 2006-09-25 00:27:02 -0700 (Mon, 25 Sep 2006) Log Message: ----------- conversation-timestamp takes a GaimConversation, somehow the two -timestamp signals got a little crossed (or miscopied and pasted). Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-09-25 06:01:12 UTC (rev 17346) +++ trunk/gtk/gtkconv.c 2006-09-25 07:27:02 UTC (rev 17347) @@ -6573,7 +6573,7 @@ #endif gaim_value_new(GAIM_TYPE_POINTER), 2, gaim_value_new(GAIM_TYPE_SUBTYPE, - GAIM_SUBTYPE_LOG), + GAIM_SUBTYPE_CONVERSATION), #if SIZEOF_TIME_T == 4 gaim_value_new(GAIM_TYPE_INT)); #elif SIZEOF_TIME_T == 8 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-10-01 15:10:54
|
Revision: 17414 http://svn.sourceforge.net/gaim/?rev=17414&view=rev Author: nosnilmot Date: 2006-10-01 08:10:48 -0700 (Sun, 01 Oct 2006) Log Message: ----------- Hide all widgets when closing a conversation window to hide the rapidly changing window title as each tab is destroyed Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-01 15:05:45 UTC (rev 17413) +++ trunk/gtk/gtkconv.c 2006-10-01 15:10:48 UTC (rev 17414) @@ -7545,6 +7545,8 @@ if (win->dialogs.search) gtk_widget_destroy(win->dialogs.search); + gtk_widget_hide_all(win->window); + if (win->gtkconvs) { while (win->gtkconvs) { GList *nextgtk = win->gtkconvs->next; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-10-10 00:45:20
|
Revision: 17453 http://svn.sourceforge.net/gaim/?rev=17453&view=rev Author: datallah Date: 2006-10-09 17:45:14 -0700 (Mon, 09 Oct 2006) Log Message: ----------- Fix chat userlist width saving (use the VBox alloc. width for both saving and loading). Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-09 03:02:32 UTC (rev 17452) +++ trunk/gtk/gtkconv.c 2006-10-10 00:45:14 UTC (rev 17453) @@ -202,6 +202,14 @@ } static gboolean +lbox_size_allocate_cb(GtkWidget *w, GtkAllocation *allocation, gpointer data) +{ + gaim_prefs_set_int("/gaim/gtk/conversations/chat/userlist_width", allocation->width == 1 ? 0 : allocation->width); + + return FALSE; +} + +static gboolean size_allocate_cb(GtkWidget *w, GtkAllocation *allocation, GaimGtkConversation *gtkconv) { GaimConversation *conv = gtkconv->active_conv; @@ -239,8 +247,6 @@ } if (w == gtkconv->lower_hbox) gaim_prefs_set_int("/gaim/gtk/conversations/chat/entry_height", allocation->height); - if (w == gtkconv->u.chat->list) - gaim_prefs_set_int("/gaim/gtk/conversations/chat/userlist_width", allocation->width == 1 ? 0 : allocation->width); } return FALSE; @@ -4005,7 +4011,7 @@ G_CALLBACK(right_click_chat_cb), gtkconv); g_signal_connect(G_OBJECT(list), "popup-menu", G_CALLBACK(gtkconv_chat_popup_menu_cb), gtkconv); - g_signal_connect(G_OBJECT(list), "size-allocate", G_CALLBACK(size_allocate_cb), gtkconv); + g_signal_connect(G_OBJECT(lbox), "size-allocate", G_CALLBACK(lbox_size_allocate_cb), gtkconv); rend = gtk_cell_renderer_text_new(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-10-13 00:37:48
|
Revision: 17475 http://svn.sourceforge.net/gaim/?rev=17475&view=rev Author: seanegan Date: 2006-10-12 17:37:44 -0700 (Thu, 12 Oct 2006) Log Message: ----------- Middle-click closes tabs. It's requested enough, and I can't think of any reason *not* to do it Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-13 00:28:18 UTC (rev 17474) +++ trunk/gtk/gtkconv.c 2006-10-13 00:37:44 UTC (rev 17475) @@ -7082,6 +7082,19 @@ GtkWidget *page; GtkWidget *tab; + if (e->button == 2) { + GaimGtkConversation *gtkconv; + tab_clicked = gaim_gtkconv_get_tab_at_xy(win, e->x_root, e->y_root, NULL); + + if (tab_clicked == -1) + return FALSE; + + gtkconv = gaim_gtk_conv_window_get_gtkconv_at_index(win, tab_clicked); + close_conv_cb(NULL, gtkconv); + return TRUE; + } + + if (e->button != 1 || e->type != GDK_BUTTON_PRESS) return FALSE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fac...@us...> - 2006-10-25 12:14:27
|
Revision: 17580 http://svn.sourceforge.net/gaim/?rev=17580&view=rev Author: faceprint Date: 2006-10-25 05:14:23 -0700 (Wed, 25 Oct 2006) Log Message: ----------- sizeof() != strlen(), and there was a cleaner way to do this anyways Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-25 07:19:20 UTC (rev 17579) +++ trunk/gtk/gtkconv.c 2006-10-25 12:14:23 UTC (rev 17580) @@ -4627,11 +4627,9 @@ static GtkTextTag *get_buddy_tag(GaimConversation *conv, const char *who) { GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); GtkTextTag *buddytag; - /* strlen("BUDDY ") == 6 */ - gchar str[strlen(who) + 7]; + gchar *str; - g_snprintf(str, sizeof(str), "BUDDY %s", who); - str[sizeof(str)] = '\0'; + str = g_strdup_printf("BUDDY %s", who); buddytag = gtk_text_tag_table_lookup( gtk_text_buffer_get_tag_table( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-10-25 12:53:50
|
Revision: 17582 http://svn.sourceforge.net/gaim/?rev=17582&view=rev Author: nosnilmot Date: 2006-10-25 05:53:41 -0700 (Wed, 25 Oct 2006) Log Message: ----------- Unleak Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-25 12:51:22 UTC (rev 17581) +++ trunk/gtk/gtkconv.c 2006-10-25 12:53:41 UTC (rev 17582) @@ -4643,6 +4643,8 @@ G_CALLBACK(buddytag_event), conv); } + g_free(str); + return buddytag; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-10-30 00:40:33
|
Revision: 17622 http://svn.sourceforge.net/gaim/?rev=17622&view=rev Author: sadrul Date: 2006-10-29 16:40:19 -0800 (Sun, 29 Oct 2006) Log Message: ----------- If you have the debug window open, and you activate some menuitem in the conversation window without focusing on 'Conversation', Gaim freezes. This is a fix for that (re: "Hang w/ Debug Window" in gaim-devel). Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-29 23:35:57 UTC (rev 17621) +++ trunk/gtk/gtkconv.c 2006-10-30 00:40:19 UTC (rev 17622) @@ -166,6 +166,7 @@ static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); static void gaim_gtkconv_update_fields(GaimConversation *conv, GaimGtkConvFields fields); +static void focus_out_from_menubar(GtkWidget *wid, GaimGtkWindow *win); static GdkColor *get_nick_color(GaimGtkConversation *gtkconv, const char *name) { static GdkColor col; @@ -2844,15 +2845,24 @@ static void menubar_activated(GtkWidget *item, gpointer data) { - regenerate_options_items(data); + GaimGtkWindow *win = data; + regenerate_options_items(win); + + /* The following are to make sure the 'More' submenu is not regenerated every time + * the focus shifts from 'Conversations' to some other menu and back. */ g_signal_handlers_block_by_func(G_OBJECT(item), G_CALLBACK(menubar_activated), data); + g_signal_connect(G_OBJECT(win->menu.menubar), "deactivate", G_CALLBACK(focus_out_from_menubar), data); } static void focus_out_from_menubar(GtkWidget *wid, GaimGtkWindow *win) { + /* The menubar has been deactivated. Make sure the 'More' submenu is regenerated next time + * the 'Conversation' menu pops up. */ GtkWidget *menuitem = gtk_item_factory_get_item(win->menu.item_factory, N_("/Conversation")); g_signal_handlers_unblock_by_func(G_OBJECT(menuitem), G_CALLBACK(menubar_activated), win); + g_signal_handlers_disconnect_by_func(G_OBJECT(win->menu.menubar), + G_CALLBACK(focus_out_from_menubar), win); } static GtkWidget * @@ -2878,14 +2888,15 @@ g_signal_connect(G_OBJECT(accel_group), "accel-changed", G_CALLBACK(gaim_gtk_save_accels_cb), NULL); + /* Make sure the 'Conversation -> More' menuitems are regenerated whenever + * the 'Conversation' menu pops up because the entries can change after the + * conversation is created. */ menuitem = gtk_item_factory_get_item(win->menu.item_factory, N_("/Conversation")); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(menubar_activated), win); win->menu.menubar = gtk_item_factory_get_widget(win->menu.item_factory, "<main>"); - g_signal_connect(G_OBJECT(win->menu.menubar), "deactivate", G_CALLBACK(focus_out_from_menubar), win); - win->menu.view_log = gtk_item_factory_get_widget(win->menu.item_factory, N_("/Conversation/View Log")); @@ -7510,6 +7521,7 @@ gaim_conversation_is_logging(conv)); generate_send_to_items(win); + regenerate_options_items(win); gaim_gtkconv_switch_active_conversation(conv); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-10-31 01:01:11
|
Revision: 17633 http://svn.sourceforge.net/gaim/?rev=17633&view=rev Author: rlaager Date: 2006-10-30 17:01:01 -0800 (Mon, 30 Oct 2006) Log Message: ----------- Make the default_formatize() function not set the font size to the default size (3). If someone thinks I should separate that magical 3 value out of gtkconv (since it comes from gtkimhtml.c), let me know. I think that's more trouble than it's worth. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-31 00:37:34 UTC (rev 17632) +++ trunk/gtk/gtkconv.c 2006-10-31 01:01:01 UTC (rev 17633) @@ -276,9 +276,16 @@ gaim_prefs_get_string("/gaim/gtk/conversations/font_face")); if (!(conv->features & GAIM_CONNECTION_NO_FONTSIZE)) - gtk_imhtml_font_set_size(GTK_IMHTML(c->entry), - gaim_prefs_get_int("/gaim/gtk/conversations/font_size")); + { + int size = gaim_prefs_get_int("/gaim/gtk/conversations/font_size"); + /* 3 is the default. */ + if (size != 3) + { + gtk_imhtml_font_set_size(GTK_IMHTML(c->entry), size); + } + } + if(strcmp(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), "") != 0) { gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-11-07 22:52:03
|
Revision: 17699 http://svn.sourceforge.net/gaim/?rev=17699&view=rev Author: rlaager Date: 2006-11-07 14:51:58 -0800 (Tue, 07 Nov 2006) Log Message: ----------- The documentation for g_utf8_collate_key() says to use strcmp(), so we should do that. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-07 20:40:22 UTC (rev 17698) +++ trunk/gtk/gtkconv.c 2006-11-07 22:51:58 UTC (rev 17699) @@ -3765,7 +3765,7 @@ } else if (buddy1 != buddy2) { ret = (buddy1 > buddy2) ? -1 : 1; } else { - ret = strcasecmp(user1, user2); + ret = strcmp(user1, user2); } g_free(user1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-11-08 04:17:08
|
Revision: 17702 http://svn.sourceforge.net/gaim/?rev=17702&view=rev Author: rlaager Date: 2006-11-07 20:16:56 -0800 (Tue, 07 Nov 2006) Log Message: ----------- Casefold the alias before generating the collation key. This should retain the previous behavior (though maybe the corner case of two nicks that differ only by case will be non-deterministic) while still using strcmp() as documented. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-08 04:15:15 UTC (rev 17701) +++ trunk/gtk/gtkconv.c 2006-11-08 04:16:56 UTC (rev 17702) @@ -3401,7 +3401,7 @@ GtkTreeIter iter; gboolean is_me = FALSE; gboolean is_buddy; - gchar *alias_key, *name, *alias; + gchar *tmp, *alias_key, *name, *alias; int flags; alias = cb->alias; @@ -3425,7 +3425,9 @@ is_buddy = (gaim_find_buddy(conv->account, name) != NULL); - alias_key = g_utf8_collate_key(alias, strlen(alias)); + tmp = g_utf8_casefold(alias, -1); + alias_key = g_utf8_collate_key(tmp, -1); + g_free(tmp); if (is_me) { @@ -3802,6 +3804,7 @@ if (!strcmp(normalized_name, gaim_normalize(conv->account, name))) { const char *alias = name; + char *tmp; char *alias_key = NULL; GaimBuddy *buddy2; @@ -3812,7 +3815,9 @@ alias = gaim_buddy_get_contact_alias(buddy2); } - alias_key = g_utf8_collate_key(alias, strlen(alias)); + tmp = g_utf8_casefold(alias, -1); + alias_key = g_utf8_collate_key(tmp, -1); + g_free(tmp); gtk_list_store_set(GTK_LIST_STORE(model), &iter, CHAT_USERS_ALIAS_COLUMN, alias, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-13 20:10:39
|
Revision: 17746 http://svn.sourceforge.net/gaim/?rev=17746&view=rev Author: sadrul Date: 2006-11-13 12:10:29 -0800 (Mon, 13 Nov 2006) Log Message: ----------- Fix bug #1595774: Tab dragging not working properly Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-13 20:09:36 UTC (rev 17745) +++ trunk/gtk/gtkconv.c 2006-11-13 20:10:29 UTC (rev 17746) @@ -7337,7 +7337,7 @@ dest_page_num = gaim_gtkconv_get_tab_at_xy(dest_win, e->x_root, e->y_root, &to_right); - gtkconv = GAIM_GTK_CONVERSATION(conv); + gtkconv = gaim_gtk_conv_window_get_gtkconv_at_index(win, win->drag_tab); if (win == dest_win) { gtk_notebook_reorder_child(GTK_NOTEBOOK(win->notebook), gtkconv->tab_cont, dest_page_num); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-30 02:01:50
|
Revision: 17850 http://svn.sourceforge.net/gaim/?rev=17850&view=rev Author: sadrul Date: 2006-11-29 18:01:49 -0800 (Wed, 29 Nov 2006) Log Message: ----------- If you have arrows in the conversation window, and want to close the first visible tab by middle clicking, then you end up closing the wrong first tab. This also fixes similar issues with tab-draggings. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-29 23:46:55 UTC (rev 17849) +++ trunk/gtk/gtkconv.c 2006-11-30 02:01:49 UTC (rev 17850) @@ -6121,6 +6121,10 @@ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), i); tab = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook), page); + /* Make sure the tab is not hidden beyond an arrow */ + if (!GTK_WIDGET_DRAWABLE(tab)) + continue; + if (horiz) { if (x_rel >= tab->allocation.x - GAIM_HIG_BOX_SPACE && x_rel <= tab->allocation.x + tab->allocation.width + GAIM_HIG_BOX_SPACE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-12-04 21:56:48
|
Revision: 17895 http://svn.sourceforge.net/gaim/?rev=17895&view=rev Author: datallah Date: 2006-12-04 13:56:32 -0800 (Mon, 04 Dec 2006) Log Message: ----------- Patch #1606353 from charkins to fix bug #1604257 (unseen convs in hidden window being incorrectly marked as seen). Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-12-04 12:52:18 UTC (rev 17894) +++ trunk/gtk/gtkconv.c 2006-12-04 21:56:32 UTC (rev 17895) @@ -7526,7 +7526,10 @@ g_return_if_fail(conv != NULL); - gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); + /* clear unseen flag if conversation is not hidden */ + if(!gaim_gtkconv_is_hidden(gtkconv)) { + gtkconv_set_unseen(gtkconv, GAIM_UNSEEN_NONE); + } /* Update the menubar */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ebl...@us...> - 2006-12-14 16:18:52
|
Revision: 17997 http://svn.sourceforge.net/gaim/?rev=17997&view=rev Author: eblanton Date: 2006-12-14 08:18:49 -0800 (Thu, 14 Dec 2006) Log Message: ----------- If a buddy icon cannot be retrieved from a conversation, or if the buddy icon write to disk fails to complete, unlink the icon file and abort. This silences a warning, and is more correct to boot. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-12-14 05:56:50 UTC (rev 17996) +++ trunk/gtk/gtkconv.c 2006-12-14 16:18:49 UTC (rev 17997) @@ -2404,13 +2404,12 @@ icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv)); data = gaim_buddy_icon_get_data(icon, &len); - if ((len <= 0) || (data == NULL)) { + if ((len <= 0) || (data == NULL) || (fwrite(data, 1, len, fp) != 1)) { gaim_notify_error(gtkconv, NULL, _("Unable to save icon file to disk."), NULL); fclose(fp); + g_unlink(filename); return; } - - fwrite(data, 1, len, fp); fclose(fp); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ebl...@us...> - 2006-12-14 16:45:43
|
Revision: 17998 http://svn.sourceforge.net/gaim/?rev=17998&view=rev Author: eblanton Date: 2006-12-14 08:45:42 -0800 (Thu, 14 Dec 2006) Log Message: ----------- Stu pointed out that we're writing len elements of size 1, not 1 of size len Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-12-14 16:18:49 UTC (rev 17997) +++ trunk/gtk/gtkconv.c 2006-12-14 16:45:42 UTC (rev 17998) @@ -2404,7 +2404,7 @@ icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv)); data = gaim_buddy_icon_get_data(icon, &len); - if ((len <= 0) || (data == NULL) || (fwrite(data, 1, len, fp) != 1)) { + if ((len <= 0) || (data == NULL) || (fwrite(data, 1, len, fp) != len)) { gaim_notify_error(gtkconv, NULL, _("Unable to save icon file to disk."), NULL); fclose(fp); g_unlink(filename); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-12-19 01:36:23
|
Revision: 18023 http://svn.sourceforge.net/gaim/?rev=18023&view=rev Author: seanegan Date: 2006-12-18 17:36:20 -0800 (Mon, 18 Dec 2006) Log Message: ----------- Adil's statusbox-imhtml-resizing behavior, now in the conversation. This shouldn't affect anything at all, except that if you're typing a real long message, you'll be able to see more of it, while keeping your default size small. Everything else should be exactly the same. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-12-19 00:09:38 UTC (rev 18022) +++ trunk/gtk/gtkconv.c 2006-12-19 01:36:20 UTC (rev 18023) @@ -3957,6 +3957,47 @@ gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 1); } + +static void resize_imhtml_cb(GaimGtkConversation *gtkconv) +{ + GtkTextBuffer *buffer; + GtkTextIter iter; + int wrapped_lines; + int lines; + GdkRectangle oneline; + GtkRequisition sr; + int height; + int pad_top, pad_inside, pad_bottom; + + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); + + wrapped_lines = 1; + gtk_text_buffer_get_start_iter(buffer, &iter); + gtk_text_view_get_iter_location(GTK_TEXT_VIEW(gtkconv->entry), &iter, &oneline); + while (gtk_text_view_forward_display_line(GTK_TEXT_VIEW(gtkconv->entry), &iter)) + wrapped_lines++; + + lines = gtk_text_buffer_get_line_count(buffer); + + /* Show a maximum of 4 lines */ + lines = MIN(lines, 4); + wrapped_lines = MIN(wrapped_lines, 4); + + pad_top = gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(gtkconv->entry)); + pad_bottom = gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(gtkconv->entry)); + pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(gtkconv->entry)); + + height = (oneline.height + pad_top + pad_bottom) * lines; + height += (oneline.height + pad_inside) * (wrapped_lines - lines); + + gtk_widget_size_request(gtkconv->lower_hbox, &sr); + if (sr.height < height + GAIM_HIG_BOX_SPACE) { + gtkconv->auto_resize = TRUE; + gtk_widget_set_size_request(gtkconv->lower_hbox, -1, height + GAIM_HIG_BOX_SPACE); + g_idle_add(reset_auto_resize_cb, gtkconv); + } +} + static GtkWidget * setup_chat_pane(GaimGtkConversation *gtkconv) { @@ -4149,7 +4190,9 @@ gtkconv->entry_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); g_object_set_data(G_OBJECT(gtkconv->entry_buffer), "user_data", gtkconv); - + g_signal_connect_swapped(G_OBJECT(gtkconv->entry_buffer), "changed", + G_CALLBACK(resize_imhtml_cb), gtkconv); + g_signal_connect(G_OBJECT(gtkconv->entry), "key_press_event", G_CALLBACK(entry_key_press_cb), gtkconv); g_signal_connect_after(G_OBJECT(gtkconv->entry), "message_send", @@ -4260,6 +4303,8 @@ G_CALLBACK(insert_text_cb), gtkconv); g_signal_connect(G_OBJECT(gtkconv->entry_buffer), "delete_range", G_CALLBACK(delete_text_cb), gtkconv); + g_signal_connect_swapped(G_OBJECT(gtkconv->entry_buffer), "changed", + G_CALLBACK(resize_imhtml_cb), gtkconv); /* had to move this after the imtoolbar is attached so that the * signals get fired to toggle the buttons on the toolbar as well. @@ -6053,7 +6098,6 @@ /* Reset the size request to allow the buddy icon to resize */ gtk_widget_set_size_request(gtkconv->lower_hbox, -1, -1); g_idle_add(reset_auto_resize_cb, gtkconv); - printf("Auto resize true\n"); gtk_widget_set_size_request(gtkconv->u.im->icon, scale_width, scale_height); gtk_container_add(GTK_CONTAINER(event), gtkconv->u.im->icon); gtk_widget_show(gtkconv->u.im->icon); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <amc...@us...> - 2006-12-20 05:50:52
|
Revision: 18027 http://svn.sourceforge.net/gaim/?rev=18027&view=rev Author: amc_grim Date: 2006-12-19 21:50:49 -0800 (Tue, 19 Dec 2006) Log Message: ----------- This fixes a bug I was hitting, that datallah mentioned was assigned to him (1618871). Datallah, feel free to close that bug.. Modified Paths: -------------- trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-12-20 05:43:51 UTC (rev 18026) +++ trunk/gtk/gtkconv.c 2006-12-20 05:50:49 UTC (rev 18027) @@ -6070,9 +6070,14 @@ start_anim(NULL, gtkconv); } - if (prpl_info && prpl_info->icon_spec.scale_rules & GAIM_ICON_SCALE_DISPLAY) + if (prpl_info && prpl_info->icon_spec.scale_rules & GAIM_ICON_SCALE_DISPLAY) { gaim_gtk_buddy_icon_get_scale_size(buf, &prpl_info->icon_spec, &scale_width, &scale_height); + } else { + scale_width = gdk_pixbuf_get_width(buf); + scale_height = gdk_pixbuf_get_height(buf); + } + scale = gdk_pixbuf_scale_simple(buf, MAX(gdk_pixbuf_get_width(buf) * scale_width / gdk_pixbuf_animation_get_width(gtkconv->u.im->anim), 1), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |