diff --git a/src/fe-gtk/chanview-tree.c b/src/fe-gtk/chanview-tree.c index cc6ad08e..b628c7ae 100644 --- a/src/fe-gtk/chanview-tree.c +++ b/src/fe-gtk/chanview-tree.c @@ -131,6 +131,7 @@ cv_tree_init (chanview *cv) GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (win), 1); gtk_container_add (GTK_CONTAINER (cv->box), win); gtk_widget_show (win); @@ -180,6 +181,7 @@ cv_tree_init (chanview *cv) renderer = gtk_cell_renderer_text_new (); if (prefs.hex_gui_compact) g_object_set (G_OBJECT (renderer), "ypad", 0, NULL); + g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_attributes (col, renderer, @@ -188,6 +190,9 @@ cv_tree_init (chanview *cv) "underline", COL_UNDERLINE, NULL); gtk_tree_view_column_set_expand (col, TRUE); + gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_fixed_width (col, 1); + gtk_tree_view_column_set_min_width (col, 1); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (view))), diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index 7bee31a0..97e26c26 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -1063,9 +1063,14 @@ mg_userlist_showhide (session *sess, int show) session_gui *gui = sess->gui; int handle_size; int right_size; + int min_right_size; GtkAllocation allocation; - right_size = MAX (prefs.hex_gui_pane_right_size, prefs.hex_gui_pane_right_size_min); + gtk_widget_get_size_request (gui->user_box, &min_right_size, NULL); + if (min_right_size < 1) + min_right_size = 1; + + right_size = MAX (prefs.hex_gui_pane_right_size, min_right_size); if (show) { @@ -3115,6 +3120,8 @@ mg_create_userlist (session_gui *gui, GtkWidget *box) gtk_box_pack_start (GTK_BOX (vbox), frame, 0, 0, GUI_SPACING); gui->namelistinfo = gtk_label_new (NULL); + gtk_label_set_xalign (GTK_LABEL (gui->namelistinfo), 0.0f); + gtk_widget_set_halign (gui->namelistinfo, GTK_ALIGN_START); gtk_container_add (GTK_CONTAINER (frame), gui->namelistinfo); gui->user_tree = ulist = userlist_create (vbox); @@ -3197,7 +3204,7 @@ mg_create_center (session *sess, session_gui *gui, GtkWidget *box) gtk_paned_pack1 (GTK_PANED (gui->hpane_left), gui->vpane_left, FALSE, FALSE); gtk_paned_pack2 (GTK_PANED (gui->hpane_left), gui->hpane_right, TRUE, TRUE); } - gtk_paned_pack2 (GTK_PANED (gui->hpane_right), gui->vpane_right, FALSE, FALSE); + gtk_paned_pack2 (GTK_PANED (gui->hpane_right), gui->vpane_right, FALSE, TRUE); gtk_box_pack_start (GTK_BOX (box), gui->hpane_left, TRUE, TRUE, 0); diff --git a/src/fe-gtk/userlistgui.c b/src/fe-gtk/userlistgui.c index 9945d086..efd5787c 100644 --- a/src/fe-gtk/userlistgui.c +++ b/src/fe-gtk/userlistgui.c @@ -57,16 +57,21 @@ userlist_update_min_width (session *sess) { GtkRequisition minimum; GtkRequisition natural; + GtkWidget *scrolled_window; int width; - if (!sess || !sess->gui || !sess->gui->user_box || !sess->gui->namelistinfo) + if (!sess || !sess->gui || !sess->gui->user_box || !sess->gui->namelistinfo || !sess->gui->user_tree) return; gtk_widget_get_preferred_size (sess->gui->namelistinfo, &minimum, &natural); - width = MAX (minimum.width, natural.width) + 16; + width = MAX (minimum.width, natural.width); if (width < 1) width = 1; + scrolled_window = gtk_widget_get_parent (sess->gui->user_tree); + if (GTK_IS_SCROLLED_WINDOW (scrolled_window)) + gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (scrolled_window), width); + gtk_widget_set_size_request (sess->gui->user_tree, width, -1); gtk_widget_set_size_request (sess->gui->user_box, width, -1); } @@ -682,6 +687,7 @@ static void userlist_add_columns (GtkTreeView * treeview) { GtkCellRenderer *renderer; + GtkTreeViewColumn *column; /* icon column */ renderer = gtk_cell_renderer_pixbuf_new (); @@ -690,15 +696,22 @@ userlist_add_columns (GtkTreeView * treeview) gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, NULL, renderer, "pixbuf", 0, NULL); + column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 0); + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); /* nick column */ renderer = gtk_cell_renderer_text_new (); if (prefs.hex_gui_compact) g_object_set (G_OBJECT (renderer), "ypad", 0, NULL); + g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, NULL, renderer, "text", 1, THEME_GTK_FOREGROUND_PROPERTY, 4, NULL); + column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 1); + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_expand (column, TRUE); + gtk_tree_view_column_set_min_width (column, 1); if (prefs.hex_gui_ulist_show_hosts) { @@ -706,10 +719,15 @@ userlist_add_columns (GtkTreeView * treeview) renderer = gtk_cell_renderer_text_new (); if (prefs.hex_gui_compact) g_object_set (G_OBJECT (renderer), "ypad", 0, NULL); + g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, NULL, renderer, "text", 2, NULL); + column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 2); + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_expand (column, TRUE); + gtk_tree_view_column_set_min_width (column, 1); } }