22type : rule
33title : " Every ewxFrame/ewxDialog is capped to its display by `fitToScreen()`; codereg dialogs scroll in `EccePanel` (#189)"
44area : wx-viewer
5- paths : ["src/wxgui/ewxClasses/ewxWindowUtils.C", "scripts/codereg/templates.py", "tests/apps/smallscreen_test.py"]
5+ paths : ["src/wxgui/ewxClasses/ewxWindowUtils.C", "src/inv/wxinv/SoWxRenderArea.C", " scripts/codereg/templates.py", "tests/apps/smallscreen_test.py"]
66issues : [187, 189]
77---
88** ` ewxFrame::Show() ` and ` ewxDialog::Show()/ShowModal() ` call
@@ -21,6 +21,13 @@ up to three items under it), or the sizer passed to `fitToScreen(row)`.
2121- A window can leave the display after it is shown (size restored, content
2222 loaded), so a ` wxEVT_SIZE ` handler re-runs the fit, at most three times
2323 per episode so a window that cannot obey is not chased.
24+ - A window holding a ` wxGLCanvas ` , or managed by a ` wxAuiManager ` (the
25+ Builder), is never wrapped, only capped. A scroller lays its content out
26+ at its virtual size, and the Builder's AUI sizer reports a minimum
27+ 17 000 104 px tall; on macOS arm64 the GL canvas inside it aborted the
28+ first paint in ` CGLSetSurface ` (SkyLight ` CGRectContainsRect ` assertion).
29+ GTK clips the child window, so Linux never shows it. ` SoWxRenderArea `
30+ also refuses to grow past its display's client area.
2431- An app that grows the window itself (` CalcEd::update*Fields() ` ) calls
2532 ` fitToScreen() ` after ` SetSizeHints(this) ` ; the hint alone sets a
2633 minimum above the display.
0 commit comments