gui: pin wxSlider min height on preferences tabs - #826
Merged
Conversation
GTK3 sometimes squeezes a wxSlider below its intrinsic thumb extents during a rapid re-allocation pass (e.g. when the cursor leaves the preferences dialog), producing cosmetic Gtk-WARNING output: Gtk-WARNING: Negative content height -15 (allocation 9, extents 12x12) while allocating gadget (node scale, owner GtkScale) Reported in amule-project#815. The widgets render correctly once layout settles - this is GTK complaining about transient size math, not a functional bug. Pin each preferences slider to a 24 px minimum height so GTK has a floor above the thumb's natural extents and stops emitting the warning.
mrjimenez
pushed a commit
that referenced
this pull request
Jun 3, 2026
…ence GTK warnings Stoatwblr reported in #832 that hovering on the Preferences -> Advanced tab in amulegui floods stderr with repeating GTK warnings — three GtkScale "Negative content height -15 (allocation 9, extents 12x12)" groups (one per slider) and one GtkCheckButton "for_size smaller than min-size (0 < 14)" / "Negative content height" pair. Cosmetic but constant, and after #826 this was the only remaining warning site he could reproduce in amulegui. Cause sits at the tab's root sizer. PreferencesaMuleTweaksTab is the only prefs tab built on a wxFlexGridSizer with AddGrowableRow(1) (every other tab — Statistics, GUI Tweaks, etc. — uses a plain wxBoxSizer). Inside a wxNotebook, GTK's hover re-layout pass on the tab strip sometimes queries child sizes against a parent that hasn't been realised yet; a flex grid then redistributes those sub-minimum vertical allocations across the growable row's static box, and the GtkScale trough (needs 12 px) plus the GtkCheckButton check node (needs 14 px) refuse the under-sized allocation with a g_warning. The matching scale constructors and the IDC_PREVENT_SLEEP checkbox don't fire on tabs whose root is a wxBoxSizer because the box never compresses below intrinsic. Switch to a plain wxBoxSizer(wxVERTICAL). The two children (the red WARNING block and the static-box of controls) stack at their natural heights — same visual result, no flex-grid compression on hover, no warnings. Closes #832
1 task
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 4, 2026
…ndex Adds 55+ merged PRs to the 3.0.0 changelog since the last update (amule-project#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for amule-project#785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), amule-project#794 (.dmg amuleweb path), amule-project#789 (<OS>-<arch> artifact naming), amule-project#780 / amule-project#796 (Windows DPI + comctl32 manifest), amule-project#784 (FHS share/amule paths). - Bug Fixes & Stability: post-amule-project#744 fixes including EC notification leak (amule-project#797), big-library scaling (amule-project#736, amule-project#840 superseding amule-project#728), amulegui ghost entries (amule-project#810, amule-project#819, amule-project#841, amule-project#824, amule-project#830, amule-project#760), PartFile early hash (amule-project#762), server protocol fixes (amule-project#835, amule-project#788, amule-project#721, amule-project#787), crypto stream UB (amule-project#779), UAF prevention (amule-project#756), Kad rotation (amule-project#795, amule-project#799/amule-project#805), GTK warning silencing (amule-project#833, amule-project#826/amule-project#836), and the clang-tidy worklist (amule-project#770, amule-project#772-amule-project#774). - Translations: late-cycle wave covering French/Turkish manpages (amule-project#753/amule-project#754/amule-project#776), Galician (amule-project#763), Slovenian (amule-project#771), pt-BR (amule-project#768/amule-project#775/amule-project#812), French (amule-project#811), plus man-page tooling for date+version drift (amule-project#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (amule-project#817/amule-project#818/amule-project#821/amule-project#828/amule-project#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with amule-project#746-amule-project#845 + amule-project#841.
got3nks
added a commit
to got3nks/amule
that referenced
this pull request
Jun 4, 2026
…ndex Adds 55+ merged PRs to the 3.0.0 changelog since the last update (amule-project#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for amule-project#785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), amule-project#794 (.dmg amuleweb path), amule-project#789 (<OS>-<arch> artifact naming), amule-project#780 / amule-project#796 (Windows DPI + comctl32 manifest), amule-project#784 (FHS share/amule paths). - Bug Fixes & Stability: post-amule-project#744 fixes including EC notification leak (amule-project#797), big-library scaling (amule-project#736, amule-project#840 superseding amule-project#728), amulegui ghost entries (amule-project#810, amule-project#819, amule-project#841, amule-project#824, amule-project#830, amule-project#760), PartFile early hash (amule-project#762), server protocol fixes (amule-project#835, amule-project#788, amule-project#721, amule-project#787), crypto stream UB (amule-project#779), UAF prevention (amule-project#756), Kad rotation (amule-project#795, amule-project#799/amule-project#805), GTK warning silencing (amule-project#833, amule-project#826/amule-project#836), and the clang-tidy worklist (amule-project#770, amule-project#772-amule-project#774). - Translations: late-cycle wave covering French/Turkish manpages (amule-project#753/amule-project#754/amule-project#776), Galician (amule-project#763), Slovenian (amule-project#771), pt-BR (amule-project#768/amule-project#775/amule-project#812), French (amule-project#811), plus man-page tooling for date+version drift (amule-project#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (amule-project#817/amule-project#818/amule-project#821/amule-project#828/amule-project#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with amule-project#746-amule-project#845 + amule-project#841.
mrjimenez
pushed a commit
that referenced
this pull request
Jun 4, 2026
Adds 55+ merged PRs to the 3.0.0 changelog since the last update (#747, 2026-05-27). Narrative additions cover: - Packaging: expanded the top list to include the macOS per-arch .app bundles and the Windows NSIS installer alongside the existing AppImage / Flatpak / .dmg / .zip entries. New bullets for #785 (alc/alcc/cas/wxcas everywhere + Windows amuleweb), #794 (.dmg amuleweb path), #789 (<OS>-<arch> artifact naming), #780 / #796 (Windows DPI + comctl32 manifest), #784 (FHS share/amule paths). - Bug Fixes & Stability: post-#744 fixes including EC notification leak (#797), big-library scaling (#736, #840 superseding #728), amulegui ghost entries (#810, #819, #841, #824, #830, #760), PartFile early hash (#762), server protocol fixes (#835, #788, #721, #787), crypto stream UB (#779), UAF prevention (#756), Kad rotation (#795, #799/#805), GTK warning silencing (#833, #826/#836), and the clang-tidy worklist (#770, #772-#774). - Translations: late-cycle wave covering French/Turkish manpages (#753/#754/#776), Galician (#763), Slovenian (#771), pt-BR (#768/#775/#812), French (#811), plus man-page tooling for date+version drift (#802). - Contributors: added ngosang for UX feedback on the late-3.0 cycle (#817/#818/#821/#828/#844) and ongoing work on the user-facing manual at amule-org.github.io. - Merged PRs flat index: extended with #746-#845 + #841.
mrjimenez
pushed a commit
to mrjimenez/amule
that referenced
this pull request
Aug 8, 2026
amule-project#824 hardcoded "ms" on the grounds that an SI symbol reads the same in every language. That is wrong: ru and uk write it "мс", and it is localised in zh and ja as well, so the one hardcoded unit in the UI was also the one users of those locales could not read in their own script. Translated like every other unit the interface shows. The number stays out of the catalog entry, matching how CastSecondsToHM() keeps it out of _("secs") and _("mins") -- a translator sees "ms" on its own rather than a format string. Catalogs regenerated; "ms" is the only new string.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
8
wxSliderwidgets across the preferences tabs were constructed withwxSize(N, -1)(height = "let GTK pick"). Under GTK3, a rapid re-allocation pass — e.g. when the cursor leaves the dialog and re-layout fires — can briefly hand the slider a height smaller than the thumb's intrinsic extents, which yields:Reported in #815. The widgets render fine once layout settles — this is GTK complaining about transient sizer math, not a functional bug — but it floods stderr while debugging.
Pin each preferences slider to a 24 px floor (above the thumb's natural ~12 px extents, matches GtkScale's default natural height under stock themes). Mac/Win unaffected (GTK-only warning); cosmetic on Linux, just cleans up stderr noise.
Test plan