Known Issues
MT5 platform limitations and workarounds
UI Framework Limitations
CAppDialog Scaling
Native MT5 UI uses fixed pixel positions with no layout manager. Dialogs look correct on desktop monitors but distort on laptop screens. Font rendering varies by resolution - text overflows at lower resolutions. There's no text measurement or responsive layout system.
Click Event Interception
MT5 processes CHARTEVENT_OBJECT_CLICK before dialog clicks. Selectable chart objects underneath dialogs "steal" mouse events.
Mitigation: Position dialogs away from crowded areas.
Multiple Dialog Chaos
CAppDialog is built on chart objects, not real OS windows. No window manager, z-order, focus management, or event routing between dialogs.
Symptoms:
- Clicks go to wrong dialog
- Background dialog receives foreground events
- Buttons unresponsive when dialogs overlap
Mitigations:
- Never overlap dialogs (mutual exclusivity)
- Use native MessageBox for simple alerts
- External UI via Python addon (ThinkPad approach)
EasyAndFastGUI - Migration Attempted
Library by Anatoli Kazharski: EasyAndFastGUI
| Feature | CAppDialog | EasyAndFastGUI |
|---|---|---|
| Auto-resize | No | Yes |
| Anchoring | No | Yes (edges) |
| Z-order management | None | Per element |
| Active window tracking | None | Yes |
| Minimum size | No | Yes |
| Rendering | Chart objects | CRectCanvas |
| Event routing | Basic | Centralized with timer |
Migration Attempt
Attempted transition to address CAppDialog limitations. The library does solve scaling and event handling issues - tested dialogs render correctly across resolutions and click events route properly.
Blocker: Single Window Architecture
EasyAndFastGUI is designed around a single CWindow instance per indicator. The library's event system, element management, and rendering pipeline assume one active window context. PrismChart requires multiple simultaneous dialogs (Tools, Properties, Alerts, Layers, etc.).
Attempted: Hybrid approach - some dialogs in EasyAndFastGUI, others in CAppDialog. Result: event routing conflicts between the two systems.
Verdict: Library solves the problems but architectural mismatch. Would require fundamental redesign of PrismChart's multi-dialog workflow, or forking/extending the library to support multiple independent windows.
Platform Fundamentals
These are MT5 limitations, not bugs:
- No true windowing system
- All UI competes in flat chart object space
- Resolution independence not built-in
- Event routing is primitive
Design for smallest expected resolution. Test across displays.
Spot something off? Open an issue