im.pidgin.pidgin: 541a0e3980189093a325ec6d71224176b7f2ab5d
seanegan at pidgin.im
seanegan at pidgin.im
Tue Nov 27 03:45:50 EST 2007
-----------------------------------------------------------------
Revision: 541a0e3980189093a325ec6d71224176b7f2ab5d
Ancestor: ad7dbaccddc7a9957ced464474495c9d1765bbff
Author: seanegan at pidgin.im
Date: 2007-11-27T08:40:29
Branch: im.pidgin.pidgin
Modified files:
pidgin/gtkconv.c
ChangeLog:
Earlier, resiak and khc agreed that we're better off without the resizable paned widget in the gtkconv.
-------------- next part --------------
============================================================
--- pidgin/gtkconv.c ed7285a4bac0ba9c4d5a57e6f2238c7bac261d47
+++ pidgin/gtkconv.c afccec729e99c6b81e71b707376b69e9c4550caf
@@ -266,43 +266,6 @@ lbox_size_allocate_cb(GtkWidget *w, GtkA
return FALSE;
}
-static gboolean
-size_allocate_cb(GtkWidget *w, GtkAllocation *allocation, PidginConversation *gtkconv)
-{
- PurpleConversation *conv = gtkconv->active_conv;
-
- if (!GTK_WIDGET_VISIBLE(w))
- return FALSE;
-
- if (!PIDGIN_IS_PIDGIN_CONVERSATION(conv))
- return FALSE;
- if (gtkconv->auto_resize) {
- return FALSE;
- }
-
- if (gdk_window_get_state(gtkconv->win->window->window) & GDK_WINDOW_STATE_MAXIMIZED) {
- return FALSE;
- }
-
- /* I find that I resize the window when it has a bunch of conversations in it, mostly so that the
- * tab bar will fit, but then I don't want new windows taking up the entire screen. I check to see
- * if there is only one conversation in the window. This way we'll be setting new windows to the
- * size of the last resized new window. */
- /* I think that the above justification is not the majority, and that the new tab resizing should
- * negate it anyway. --luke */
- if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
- {
- if (w == gtkconv->lower_hbox)
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height", allocation->height);
- }
- else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
- {
- if (w == gtkconv->lower_hbox)
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height", allocation->height);
- }
- return FALSE;
-}
-
static void
default_formatize(PidginConversation *c)
{
@@ -452,18 +415,6 @@ send_history_add(PidginConversation *gtk
gtkconv->send_history = g_list_prepend(first, NULL);
}
-static void
-reset_default_size(PidginConversation *gtkconv)
-{
- PurpleConversation *conv = gtkconv->active_conv;
- if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
- gtk_widget_set_size_request(gtkconv->lower_hbox, -1,
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height"));
- else
- gtk_widget_set_size_request(gtkconv->lower_hbox, -1,
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height"));
-}
-
static gboolean
check_for_and_do_command(PurpleConversation *conv)
{
@@ -573,7 +524,6 @@ send_cb(GtkWidget *widget, PidginConvers
if (check_for_and_do_command(conv)) {
if (gtkconv->entry_growing) {
- reset_default_size(gtkconv);
gtkconv->entry_growing = FALSE;
}
gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry));
@@ -633,7 +583,6 @@ send_cb(GtkWidget *widget, PidginConvers
gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry));
if (gtkconv->entry_growing) {
- reset_default_size(gtkconv);
gtkconv->entry_growing = FALSE;
}
gtkconv_set_unseen(gtkconv, PIDGIN_UNSEEN_NONE);
@@ -4369,7 +4318,7 @@ entry_popup_menu_cb(GtkIMHtml *imhtml, G
gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 1);
}
-static void resize_imhtml_cb(PidginConversation *gtkconv)
+static gboolean resize_imhtml_cb(PidginConversation *gtkconv)
{
GtkTextBuffer *buffer;
GtkTextIter iter;
@@ -4406,18 +4355,12 @@ static void resize_imhtml_cb(PidginConve
diff = height - gtkconv->entry->allocation.height;
- if (diff > 0) {
- gtk_widget_size_request(gtkconv->lower_hbox, &sr);
- gtkconv->entry_growing = TRUE;
+ gtk_widget_size_request(gtkconv->lower_hbox, &sr);
+ gtkconv->entry_growing = TRUE;
- /* 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);
- }
+ gtk_widget_set_size_request(gtkconv->lower_hbox, -1,
+ diff + gtkconv->lower_hbox->allocation.height);
+ return FALSE;
}
static void
@@ -4687,19 +4630,15 @@ setup_common_pane(PidginConversation *gt
static GtkWidget *
setup_common_pane(PidginConversation *gtkconv)
{
- GtkWidget *paned, *vbox, *frame, *imhtml_sw, *event_box;
+ GtkWidget *vbox, *frame, *imhtml_sw, *event_box;
GtkCellRenderer *rend;
GtkTreePath *path;
PurpleConversation *conv = gtkconv->active_conv;
gboolean chat = (conv->type == PURPLE_CONV_TYPE_CHAT);
GtkPolicyType imhtml_sw_hscroll;
- paned = gtk_vpaned_new();
- gtk_widget_show(paned);
-
/* Setup the top part of the pane */
vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_paned_pack1(GTK_PANED(paned), vbox, TRUE, TRUE);
gtk_widget_show(vbox);
/* Setup the info pane */
@@ -4794,30 +4733,18 @@ setup_common_pane(PidginConversation *gt
g_signal_connect(G_OBJECT(gtkconv->imhtml), "key_release_event",
G_CALLBACK(refocus_entry_cb), gtkconv);
- /* Setup the bottom half of the conversation window */
- vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_paned_pack2(GTK_PANED(paned), vbox, FALSE, TRUE);
- gtk_widget_show(vbox);
-
gtkconv->lower_hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_start(GTK_BOX(vbox), gtkconv->lower_hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), gtkconv->lower_hbox, FALSE, FALSE, 0);
gtk_widget_show(gtkconv->lower_hbox);
- vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_box_pack_end(GTK_BOX(gtkconv->lower_hbox), vbox, TRUE, TRUE, 0);
- gtk_widget_show(vbox);
-
/* Setup the toolbar, entry widget and all signals */
frame = pidgin_create_imhtml(TRUE, >kconv->entry, >kconv->toolbar, NULL);
- gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(gtkconv->lower_hbox), frame, TRUE, TRUE, 0);
gtk_widget_show(frame);
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));
- gtk_widget_set_size_request(gtkconv->lower_hbox, -1,
- chat ? purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/entry_height") :
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height"));
g_signal_connect(G_OBJECT(gtkconv->entry), "populate-popup",
G_CALLBACK(entry_popup_menu_cb), gtkconv);
@@ -4827,8 +4754,6 @@ setup_common_pane(PidginConversation *gt
G_CALLBACK(send_cb), gtkconv);
g_signal_connect_after(G_OBJECT(gtkconv->entry), "button_press_event",
G_CALLBACK(entry_stop_rclick_cb), NULL);
- g_signal_connect(G_OBJECT(gtkconv->lower_hbox), "size-allocate",
- G_CALLBACK(size_allocate_cb), gtkconv);
gtkconv->entry_buffer =
gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry));
@@ -4851,7 +4776,7 @@ setup_common_pane(PidginConversation *gt
default_formatize(gtkconv);
g_signal_connect_after(G_OBJECT(gtkconv->entry), "format_function_clear",
G_CALLBACK(clear_formatting_cb), gtkconv);
- return paned;
+ return vbox;
}
static void
@@ -5111,6 +5036,7 @@ private_gtkconv_new(PurpleConversation *
gtk_widget_show(gtkconv->toolbar);
else
gtk_widget_hide(gtkconv->toolbar);
+ g_idle_add(resize_imhtml_cb, gtkconv);
if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons"))
gtk_widget_show(gtkconv->infopane_hbox);
@@ -7121,6 +7047,8 @@ show_formatting_toolbar_pref_cb(const ch
gtk_widget_show(gtkconv->toolbar);
else
gtk_widget_hide(gtkconv->toolbar);
+
+ g_idle_add(resize_imhtml_cb,gtkconv);
}
}
More information about the Commits
mailing list