Make chat dialog show up as fullscreen on iOS - #3830
Conversation
The chat dialog overflowed the screen on iOS because it never set Qt::WindowMaximized, unlike the connect dialog and about dialog which were fixed for the same symptom in jamulussoftware#3343 (commit 40e5af1). This applies the identical, already-merged pattern to the third and last affected dialog. Fixes jamulussoftware#3383 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Do you have no Android devices you can test the built APK on? |
|
MY LLM WROTE: No Android handset here... or maybe... I'll look. What I do have is an x86 Mac Mini (Monterrey, Xcode 13.2.1), which can run either an iOS 15 Simulator or an Android emulator image. Both define the same preprocessor path this fix touches ( I haven't set that build up yet. If a Simulator/emulator screenshot would satisfy you as a stand-in for a real device, I'll go build one and post it here. If you'd want something a screenshot can't show (e.g. a specific device quirk, or you'd rather wait for someone with a physical Android/iOS device to confirm), let me know and I won't waste your time offering a substitute you don't want. |
|
Android would be good - iOS I'll be able to test in a few weeks (or days - not sure) |
|
I just remembered that Qt6 builds still result in a black screen so Qt6 is out of question. Might be related to OpenGL vs Metal builds - not sure. |
|
Ok. Unfortunately, the chat dialog is still oversized on iOS. Tested with Qt 5.15.19 |
ShowChatWindow() unconditionally called showNormal() to bring the dialog to front, which clears any maximized/fullscreen window state - silently undoing the Qt::WindowMaximized set in CChatDlg's constructor for Android/iOS (jamulussoftware#3383). connectdlg.cpp's equivalent maximize call has no such showNormal() and works correctly. Confirmed via ann0see's real-device test on this PR: 'the chat dialog is still oversized on iOS. Tested with Qt 5.15.19.'
|
MY LLM WROTE: this comment. I asked it to root-cause @ann0see's "still oversized on iOS" report and fix it if it found something concrete. Found it, and pushed a fix ( Fix: guard the I don't have real iOS/Android hardware to re-confirm against, so this is a code-level fix grounded in your report rather than a re-tested one — happy to have you or ann0see re-check when convenient. |
|
MY LLM WROTE: @ann0see @pljones — Android tested on real hardware, as asked. The result is not what I predicted, and it contradicts my own root-cause comment above. Reporting it straight. Hardware: Samsung Galaxy S22 Ultra (SM-S908U1), Android 16, arm64, Qt 5.15.2 (build + runtime, confirmed from the About dialog). Three APKs, same handset, same session: mainline without this PR ( All three render the chat dialog full-bleed. Identically. I measured the fraction of the main window's left control panel (Mute/Settings/Chat/Connect) that the opened dialog covers: 17.8% on all three builds, and the screenshots are structurally identical. Including on mainline — which contains none of this PR's code. Internal control, same binary. What that means, and the correction I owe you: on Android, One thing worth separating before more work goes in: you said "oversized," not "not maximized." Those are different failures with different fixes. If the iOS dialog is larger than the screen and clipped, that is a layout/ Net for Android: no regression. This PR changes nothing observable there, in either direction. Any merge decision rests entirely on iOS. The test rig is set up now, so I can run any candidate APK on this handset within the hour — just say what you want measured. |

Note
📡 STAND BY FOR AN LLM-AUTHORED MESSAGE.
Fixes #3383.
The chat dialog overflows the screen on iOS because it never sets
Qt::WindowMaximized. #3343 (commit 40e5af1, "Make connect dialog show up as fullscreen on iOS") fixed the identical symptom by addingto the connect dialog (
connectdlg.cpp) and the about dialog (util.cpp) — but the chat dialog, the third dialog with the same problem, was never given the same treatment. This applies that same, already-merged pattern toCChatDlg, verbatim.Scope: one hunk, iOS/Android only (the block preprocesses out on every other platform, so desktop builds are unaffected). No behavior change anywhere except making the chat window open maximized on mobile, exactly as the connect and about dialogs already do.
Testing note, stated plainly: I could not exercise the changed line myself — it lives inside
#if defined( ANDROID ) || defined( Q_OS_IOS ), so it compiles out on the Linux/desktop toolchain I have. Its correctness rests on being identical to the two instances already shipping (connectdlg.cpp,util.cpp), and onsetWindowState()being aQWidgetmethodCChatDlginherits just asCConnectDlgandCAboutDlgdo. A confirmation on real iOS hardware would be welcome before merge.