Add XQuartz refresh workaround for macOS Tahoe#23
Open
zarzycki wants to merge 2 commits intoSEATStandards:mainfrom
Open
Add XQuartz refresh workaround for macOS Tahoe#23zarzycki wants to merge 2 commits intoSEATStandards:mainfrom
zarzycki wants to merge 2 commits intoSEATStandards:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an optional XQuartz redraw workaround intended to mitigate black/blank regions in X11-forwarded wxWidgets windows on macOS “Tahoe”, and slightly increases default UI sizing to reduce control/panel constriction.
Changes:
- Increase default main window size and the variable-controls minimum size to provide more layout headroom.
- Add an opt-in env-var-controlled “expose/refresh” workaround in
wxImagePanel(refresh on resize + background clear) for XQuartz rendering issues.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
| src/wxNcVisFrame.cpp | Increases minimum size of the right-side controls sizer to reduce cramped layouts. |
| src/wxImagePanel.cpp | Adds env-var-controlled XQuartz refresh workaround logic (env check, forced refresh on resize, optional DC clear). |
| src/ncvis.cpp | Increases default main frame size at startup. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7ea352b to
413d39d
Compare
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
On macOS Tahoe, there is an issue with certain panels going black in X11 windows: github.com/XQuartz/XQuartz/issues/438 ... This has been an issue for me with ssh -Y from a Mac onto Derecho since upgrading to Tahoe.
The "hack" proposed by folks in the XQuartz issue is to essentially force redraws quasi-frequently. The main time this is a problem is when a window is resized, or pop-ups overlap with each other. This isn't as much of an issue with ncvis given that the window is self-contained, but I ran into some issues where the controls were constricted by the panel size.
So this PR has two related, but distinct fixes.
1.) The default frame sizes have been nudged slightly bigger. This seems relatively imperceptible on a modern resolution system, but it seems to help issues where 4D+ variables were triggering black screens on Tahoe by having constricted space for the buttons/widgets/etc.
2.) The user has the option to define an env var (
export NCVIS_FORCE_EXPOSE_FIX=1) that activates a frequent redraw that mimics what has been posted on github.com/XQuartz/XQuartz/issues/438 -- this fix is critically needed for some tools (e.g.,ncview) but seems hit-or-miss with ncvis. That said, I don't see any reason not put this in the code as a potential workaround if users see this crop up on their system. I.e., if a user reports this issue, they should be encouraged to try the above setting and see if things improve.