Tighten userlist count/pane width behavior

This commit is contained in:
2026-05-09 12:53:35 -06:00
parent 18eff80a30
commit b1768854c3
2 changed files with 11 additions and 27 deletions

View File

@@ -3664,8 +3664,14 @@ mg_create_userlist (session_gui *gui, GtkWidget *box)
gtk_box_pack_start (GTK_BOX (box), vbox, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (box), vbox, TRUE, TRUE, 0);
gui->namelistinfo = gtk_label_new (NULL); gui->namelistinfo = gtk_label_new (NULL);
gtk_label_set_xalign (GTK_LABEL (gui->namelistinfo), 0.0f); gtk_label_set_xalign (GTK_LABEL (gui->namelistinfo), 0.5f);
gtk_widget_set_halign (gui->namelistinfo, GTK_ALIGN_START); gtk_label_set_justify (GTK_LABEL (gui->namelistinfo), GTK_JUSTIFY_CENTER);
gtk_label_set_ellipsize (GTK_LABEL (gui->namelistinfo), PANGO_ELLIPSIZE_END);
gtk_label_set_width_chars (GTK_LABEL (gui->namelistinfo), 1);
gtk_widget_set_margin_start (gui->namelistinfo, 0);
gtk_widget_set_margin_end (gui->namelistinfo, 0);
gtk_widget_set_hexpand (gui->namelistinfo, TRUE);
gtk_widget_set_halign (gui->namelistinfo, GTK_ALIGN_FILL);
if (prefs.hex_gui_ulist_count) if (prefs.hex_gui_ulist_count)
gtk_box_pack_start (GTK_BOX (vbox), gui->namelistinfo, 0, 0, 0); gtk_box_pack_start (GTK_BOX (vbox), gui->namelistinfo, 0, 0, 0);

View File

@@ -93,36 +93,14 @@ userlist_apply_saved_column_width (GtkTreeViewColumn *column, int width)
static void static void
userlist_update_min_width (session *sess) userlist_update_min_width (session *sess)
{ {
GtkRequisition minimum;
GtkRequisition natural;
GtkRequisition scrollbar_minimum;
GtkRequisition scrollbar_natural;
GtkWidget *scrolled_window; GtkWidget *scrolled_window;
GtkWidget *scrollbar;
int scrollbar_width;
int width;
if (!sess || !sess->gui || !sess->gui->user_box || !sess->gui->namelistinfo || !sess->gui->user_tree) if (!sess || !sess->gui || !sess->gui->user_tree)
return; return;
gtk_widget_get_preferred_size (sess->gui->namelistinfo, &minimum, &natural);
width = MAX (minimum.width, natural.width);
if (width < 1)
width = 1;
scrollbar_width = 0;
scrolled_window = gtk_widget_get_parent (sess->gui->user_tree); scrolled_window = gtk_widget_get_parent (sess->gui->user_tree);
if (GTK_IS_SCROLLED_WINDOW (scrolled_window)) if (GTK_IS_SCROLLED_WINDOW (scrolled_window))
{ gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (scrolled_window), 1);
gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (scrolled_window), width);
scrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scrolled_window));
if (scrollbar)
{
gtk_widget_get_preferred_size (scrollbar, &scrollbar_minimum, &scrollbar_natural);
scrollbar_width = MAX (scrollbar_minimum.width, scrollbar_natural.width);
}
}
gtk_widget_set_size_request (sess->gui->user_box, width + scrollbar_width, -1);
} }
GdkPixbuf * GdkPixbuf *
@@ -927,7 +905,7 @@ userlist_create (GtkWidget *box)
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
GTK_SHADOW_IN); GTK_SHADOW_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (sw), 1); gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (sw), 1);
gtk_box_pack_start (GTK_BOX (box), sw, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (box), sw, TRUE, TRUE, 0);
gtk_widget_show (sw); gtk_widget_show (sw);