im.pidgin.pidgin.2.2.2: d00e8eecf3b9bb711a6557347853d72428cde777
lschiere at pidgin.im
lschiere at pidgin.im
Fri Oct 19 17:14:06 EDT 2007
-----------------------------------------------------------------
Revision: d00e8eecf3b9bb711a6557347853d72428cde777
Ancestor: 2126d3989cbd1af16969cb467343817a7ec9c3d2
Author: lschiere at pidgin.im
Date: 2007-10-19T18:23:28
Branch: im.pidgin.pidgin.2.2.2
Modified files:
pidgin/gtkconv.c
ChangeLog:
applied changes from 4a3126ce09aff7f83c70b32f2048f5b7f302b79e
through c62d29ba9f12404999d6ff94564dd951ea8f9c44
applied changes from c62d29ba9f12404999d6ff94564dd951ea8f9c44
through 83245b7ca93e546927c19472b74cf4dff6d1a96b
applied changes from 83245b7ca93e546927c19472b74cf4dff6d1a96b
through e7a18c70a00a0534e1e6f7956970e10d6d0b69ec
-------------- next part --------------
============================================================
--- pidgin/gtkconv.c 0beab509d425c4fb93f3ce96826bcb0038de54db
+++ pidgin/gtkconv.c cd198899e45dba97f7b52bb4b3f69981eaba2a54
@@ -4300,45 +4300,54 @@ entry_popup_menu_cb(GtkIMHtml *imhtml, G
gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 1);
}
-
static void resize_imhtml_cb(PidginConversation *gtkconv)
{
GtkTextBuffer *buffer;
GtkTextIter iter;
- int wrapped_lines;
- int lines;
- GdkRectangle oneline;
+ int wrapped_lines;
+ int lines;
+ GdkRectangle oneline;
GtkRequisition sr;
- int height;
- int pad_top, pad_inside, pad_bottom;
+ int height, diff;
+ 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++;
+ 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);
+ lines = gtk_text_buffer_get_line_count(buffer);
- /* Show a maximum of 4 lines */
- lines = MIN(lines, 4);
- wrapped_lines = MIN(wrapped_lines, 4);
+ /* 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));
+ 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);
+ height = (oneline.height + pad_top + pad_bottom) * lines;
+ height += (oneline.height + pad_inside) * (wrapped_lines - lines);
gtkconv->auto_resize = TRUE;
- g_idle_add(reset_auto_resize_cb, gtkconv);
- gtk_widget_size_request(gtkconv->lower_hbox, &sr);
- if (sr.height < height + PIDGIN_HIG_BOX_SPACE) {
+ g_idle_add(reset_auto_resize_cb, gtkconv);
+
+ diff = height - gtkconv->entry->allocation.height;
+
+ if (diff > 0) {
+ gtk_widget_size_request(gtkconv->lower_hbox, &sr);
gtkconv->entry_growing = TRUE;
- gtk_widget_set_size_request(gtkconv->lower_hbox, -1, height + PIDGIN_HIG_BOX_SPACE);
+
+ /* uncomment this to auto resize even after the user manually
+ resizes
+ gtk_paned_set_position(GTK_PANED(gtkconv->lower_hbox->parent->parent),
+ -1);
+ */
+ gtk_widget_set_size_request(gtkconv->lower_hbox, -1,
+ diff + gtkconv->lower_hbox->allocation.height);
}
}
More information about the Commits
mailing list