| 262 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
261 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
| 263 { |
262 { |
| 264 if (w == gtkconv->lower_hbox) |
263 if (w == gtkconv->lower_hbox) |
| 265 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height", allocation->height); |
264 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height", allocation->height); |
| 266 } |
265 } |
| 267 |
|
| 268 return FALSE; |
266 return FALSE; |
| 269 } |
267 } |
| 270 |
268 |
| 271 static void |
269 static void |
| 272 default_formatize(PidginConversation *c) |
270 default_formatize(PidginConversation *c) |
| 4258 pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(gtkconv->entry)); |
4256 pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(gtkconv->entry)); |
| 4259 |
4257 |
| 4260 height = (oneline.height + pad_top + pad_bottom) * lines; |
4258 height = (oneline.height + pad_top + pad_bottom) * lines; |
| 4261 height += (oneline.height + pad_inside) * (wrapped_lines - lines); |
4259 height += (oneline.height + pad_inside) * (wrapped_lines - lines); |
| 4262 |
4260 |
| |
4261 gtkconv->auto_resize = TRUE; |
| |
4262 g_idle_add(reset_auto_resize_cb, gtkconv); |
| 4263 gtk_widget_size_request(gtkconv->lower_hbox, &sr); |
4263 gtk_widget_size_request(gtkconv->lower_hbox, &sr); |
| 4264 if (sr.height < height + PIDGIN_HIG_BOX_SPACE) { |
4264 if (sr.height < height + PIDGIN_HIG_BOX_SPACE) { |
| 4265 gtkconv->auto_resize = TRUE; |
|
| 4266 gtkconv->entry_growing = TRUE; |
4265 gtkconv->entry_growing = TRUE; |
| 4267 gtk_widget_set_size_request(gtkconv->entry, -1, height); |
4266 gtk_widget_set_size_request(gtkconv->lower_hbox, -1, height + PIDGIN_HIG_BOX_SPACE); |
| 4268 g_idle_add(reset_auto_resize_cb, gtkconv); |
|
| 4269 } |
4267 } |
| 4270 } |
4268 } |
| 4271 |
4269 |
| 4272 static void |
4270 static void |
| 4273 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox) |
4271 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox) |
| 4545 G_CALLBACK(resize_imhtml_cb), gtkconv); |
4543 G_CALLBACK(resize_imhtml_cb), gtkconv); |
| 4546 |
4544 |
| 4547 default_formatize(gtkconv); |
4545 default_formatize(gtkconv); |
| 4548 g_signal_connect_after(G_OBJECT(gtkconv->entry), "format_function_clear", |
4546 g_signal_connect_after(G_OBJECT(gtkconv->entry), "format_function_clear", |
| 4549 G_CALLBACK(clear_formatting_cb), gtkconv); |
4547 G_CALLBACK(clear_formatting_cb), gtkconv); |
| 4550 |
|
| 4551 return paned; |
4548 return paned; |
| 4552 } |
4549 } |
| 4553 |
4550 |
| 4554 static void |
4551 static void |
| 4555 conv_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, |
4552 conv_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, |
| 6520 g_signal_connect(G_OBJECT(event), "button-press-event", |
6517 g_signal_connect(G_OBJECT(event), "button-press-event", |
| 6521 G_CALLBACK(icon_menu), gtkconv); |
6518 G_CALLBACK(icon_menu), gtkconv); |
| 6522 gtk_widget_show(event); |
6519 gtk_widget_show(event); |
| 6523 |
6520 |
| 6524 gtkconv->u.im->icon = gtk_image_new_from_pixbuf(scale); |
6521 gtkconv->u.im->icon = gtk_image_new_from_pixbuf(scale); |
| 6525 gtkconv->auto_resize = TRUE; |
|
| 6526 gtk_container_add(GTK_CONTAINER(event), gtkconv->u.im->icon); |
6522 gtk_container_add(GTK_CONTAINER(event), gtkconv->u.im->icon); |
| 6527 gtk_widget_show(gtkconv->u.im->icon); |
6523 gtk_widget_show(gtkconv->u.im->icon); |
| 6528 |
6524 |
| 6529 g_object_unref(G_OBJECT(scale)); |
6525 g_object_unref(G_OBJECT(scale)); |
| 6530 |
6526 |