From b1768854c3ba9934ee14c7f01c27a69988289d7c Mon Sep 17 00:00:00 2001 From: deepend-tildeclub Date: Sat, 9 May 2026 12:53:35 -0600 Subject: [PATCH] Tighten userlist count/pane width behavior --- src/fe-gtk/maingui.c | 10 ++++++++-- src/fe-gtk/userlistgui.c | 28 +++------------------------- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index 2ef4e12e..ff31ef34 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -3664,8 +3664,14 @@ mg_create_userlist (session_gui *gui, GtkWidget *box) gtk_box_pack_start (GTK_BOX (box), vbox, TRUE, TRUE, 0); 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_label_set_xalign (GTK_LABEL (gui->namelistinfo), 0.5f); + 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) gtk_box_pack_start (GTK_BOX (vbox), gui->namelistinfo, 0, 0, 0); diff --git a/src/fe-gtk/userlistgui.c b/src/fe-gtk/userlistgui.c index 58473e93..825a1b08 100644 --- a/src/fe-gtk/userlistgui.c +++ b/src/fe-gtk/userlistgui.c @@ -93,36 +93,14 @@ userlist_apply_saved_column_width (GtkTreeViewColumn *column, int width) static void userlist_update_min_width (session *sess) { - GtkRequisition minimum; - GtkRequisition natural; - GtkRequisition scrollbar_minimum; - GtkRequisition scrollbar_natural; 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; - 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); if (GTK_IS_SCROLLED_WINDOW (scrolled_window)) - { - 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); + gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (scrolled_window), 1); } GdkPixbuf * @@ -927,7 +905,7 @@ userlist_create (GtkWidget *box) gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); 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_box_pack_start (GTK_BOX (box), sw, TRUE, TRUE, 0); gtk_widget_show (sw);