Fix dialogs opening off-screen or on the wrong monitor - #1053
Open
jasonleenaylor wants to merge 2 commits into
Open
Fix dialogs opening off-screen or on the wrong monitor#1053jasonleenaylor wants to merge 2 commits into
jasonleenaylor wants to merge 2 commits into
Conversation
Assign the property table passed to UploadToWebonaryDlg to a field so its existing position restore, off-screen clamp, and save actually run, and pass the main window as owner when showing the dialog. Give DictionaryConfigurationManagerDlg a CenterParent start position and clamp its bounds back onto a screen in OnShown. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Set CenterParent on ten dialogs that had no positioning code, and CenterScreen on the four FdoUi restore dialogs and the update chooser, which can be shown before any main window exists. Pass an explicit owner at the six ShowDialog call sites that had none, threading an owner parameter through DictionaryConfigurationImportController's DisplayView. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jasonleenaylor
force-pushed
the
claude/webonary-dictconfig-dialog-position
branch
from
August 10, 2026 21:49
2dcc497 to
36daa0d
Compare
jasonleenaylor
marked this pull request as ready for review
August 10, 2026 22:01
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.
Quick Summary
UploadToWebonaryDlgposition persistence: its restore/clamp/save code null-checked aPropertyTableauto-property that the constructor never assigned, so it has been dead since it was written. The property is now a constructor-assigned field, and the dialog is shown with the main window as owner.DictionaryConfigurationManagerDlgaCenterParentstart position and clamp its bounds back onto a screen inOnShown— it previously had no positioning code and could open off-screen, leaving the app looking hung (reported from the field on a multi-monitor setup).CenterParenton ten (dictionary-configuration child dialogs, Webonary log viewer, the Gecko-hosting MGA/diagnostics/import-marker dialogs, semantic-domains chooser, respeller, concordance dialog) andCenterScreenon five that can be shown before any main window exists (the four FdoUi restore dialogs and the update chooser).ShowDialog()call sites that had none, threading an owner parameter throughDictionaryConfigurationImportController.DisplayView.CI-ready checklist
.github/commit-guidelines.md(subject ≤ 72 chars, no trailing punctuation; if body present, blank line then ≤ 80-char lines).Docs/workflows/ai-pr-workflow.mdand ranpr-preflightor the equivalent branch-readiness review before requesting review.Src/**folders touched, correspondingAGENTS.mdfiles are updated or explicitly confirmed still accurate.Notes for reviewers (optional)
WinForms' default
WindowsDefaultLocationleaves placement to the OS cascade, which on multi-monitor setups can land a dialog on the wrong screen or entirely off the visible area. Centering on an owner — or on a screen, for dialogs that can appear before any window exists — takes the OS out of the placement decision. The swept dialogs are behavior-neutral one-liners exceptDisplayView, whose new owner parameter has exactly one caller (updated in the same commit).Validation:
build.ps1 -SkipNativeclean;test.ps1onxWorksTestsfiltered to UploadToWebonary + DictionaryConfiguration, 380/380 passed after rebasing onto current main.🤖 Generated with Claude Code
This change is