pidgin/gtkconv.c

changeset 18931
9b7587baafa9
parent 18888
685b93b5fdf0
child 18932
e3dbfcb220c4
equal deleted inserted replaced
18929:946ac80fc144 18931:9b7587baafa9
237 if (!GTK_WIDGET_VISIBLE(w)) 237 if (!GTK_WIDGET_VISIBLE(w))
238 return FALSE; 238 return FALSE;
239 239
240 if (!PIDGIN_IS_PIDGIN_CONVERSATION(conv)) 240 if (!PIDGIN_IS_PIDGIN_CONVERSATION(conv))
241 return FALSE; 241 return FALSE;
242
243 if (gtkconv->auto_resize) { 242 if (gtkconv->auto_resize) {
244 return FALSE; 243 return FALSE;
245 } 244 }
246 245
247 if (gdk_window_get_state(gtkconv->win->window->window) & GDK_WINDOW_STATE_MAXIMIZED) { 246 if (gdk_window_get_state(gtkconv->win->window->window) & GDK_WINDOW_STATE_MAXIMIZED) {
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

mercurial