forked from pool/pidgin
This commit is contained in:
parent
79b598deee
commit
097119330b
86
rb1342.patch
86
rb1342.patch
@ -1,86 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Node ID 8719e6ca6ff4
|
||||
# Parent 17237faf35cb
|
||||
diff --git a/pidgin/gtkconv.c b/pidgin/gtkconv.c
|
||||
--- a/pidgin/gtkconv.c
|
||||
+++ b/pidgin/gtkconv.c
|
||||
@@ -2361,6 +2361,9 @@
|
||||
|
||||
g_return_if_fail(gtkconv != NULL);
|
||||
|
||||
+ g_object_set_data(G_OBJECT(gtkconv->imhtml), "resize-count",
|
||||
+ GINT_TO_POINTER(0));
|
||||
+
|
||||
if (!purple_prefs_get_bool("/purple/conversations/im/send_typing"))
|
||||
return;
|
||||
|
||||
@@ -2378,6 +2381,9 @@
|
||||
|
||||
g_return_if_fail(gtkconv != NULL);
|
||||
|
||||
+ g_object_set_data(G_OBJECT(gtkconv->imhtml), "resize-count",
|
||||
+ GINT_TO_POINTER(0));
|
||||
+
|
||||
conv = gtkconv->active_conv;
|
||||
|
||||
if (!purple_prefs_get_bool("/purple/conversations/im/send_typing"))
|
||||
@@ -5056,6 +5062,7 @@
|
||||
gtk_widget_set_name(gtkconv->entry, "pidgin_conv_entry");
|
||||
gtk_imhtml_set_protocol_name(GTK_IMHTML(gtkconv->entry),
|
||||
purple_account_get_protocol_name(conv->account));
|
||||
+ g_object_set_data(G_OBJECT(gtkconv->entry), "gtkconv", gtkconv);
|
||||
|
||||
g_signal_connect(G_OBJECT(gtkconv->entry), "populate-popup",
|
||||
G_CALLBACK(entry_popup_menu_cb), gtkconv);
|
||||
diff --git a/pidgin/gtkimhtml.c b/pidgin/gtkimhtml.c
|
||||
--- a/pidgin/gtkimhtml.c
|
||||
+++ b/pidgin/gtkimhtml.c
|
||||
@@ -387,6 +387,8 @@
|
||||
|
||||
static void (*parent_size_allocate)(GtkWidget *widget, GtkAllocation *alloc);
|
||||
|
||||
+#define MAX_RESIZE_COUNT 3
|
||||
+
|
||||
static void gtk_imhtml_size_allocate(GtkWidget *widget, GtkAllocation *alloc)
|
||||
{
|
||||
GtkIMHtml *imhtml = GTK_IMHTML(widget);
|
||||
@@ -395,6 +397,39 @@
|
||||
int height = 0, y = 0;
|
||||
GtkTextIter iter;
|
||||
gboolean scroll = TRUE;
|
||||
+ PidginConversation *gtkconv;
|
||||
+ GtkIMHtml *entry, *messages;
|
||||
+ int resize_count;
|
||||
+
|
||||
+ gtkconv = g_object_get_data(G_OBJECT(imhtml), "gtkconv");
|
||||
+
|
||||
+ if(gtkconv != NULL) {
|
||||
+ entry = GTK_IMHTML(gtkconv->entry);
|
||||
+ messages = GTK_IMHTML(gtkconv->imhtml);
|
||||
+
|
||||
+ resize_count = GPOINTER_TO_INT(
|
||||
+ g_object_get_data(
|
||||
+ G_OBJECT(imhtml), "resize-count"));
|
||||
+
|
||||
+ if(imhtml == entry) {
|
||||
+ if(resize_count > MAX_RESIZE_COUNT) {
|
||||
+ return;
|
||||
+ }
|
||||
+ } else if(imhtml == messages) {
|
||||
+ g_object_set_data(G_OBJECT(entry), "resize-count",
|
||||
+ GINT_TO_POINTER(0));
|
||||
+
|
||||
+ if(resize_count > MAX_RESIZE_COUNT){
|
||||
+ g_object_set_data(G_OBJECT(messages), "resize-count",
|
||||
+ GINT_TO_POINTER(0));
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ resize_count++;
|
||||
+ g_object_set_data(G_OBJECT(imhtml), "resize-count",
|
||||
+ GINT_TO_POINTER(resize_count));
|
||||
+ }
|
||||
|
||||
gtk_text_buffer_get_end_iter(imhtml->text_buffer, &iter);
|
||||
|
Loading…
Reference in New Issue
Block a user