Chatterino window state issues on secondary monitor with lower resolution after using Alt+Tab
Checklist
- [X] I'm reporting a problem with Chatterino
- [X] I've verified that I'm running the most recent nightly build or stable release
- [X] I've looked for my problem on the wiki
- [X] I've searched the issues and pull requests for similar looking reports
Describe your issue
Description
When Chatterino is open on a secondary monitor with a lower resolution (1440p) and maximized, the following issue occurs:
- Clicking the minimize button works as expected initially.
- Using the Windows app switcher (Alt+Tab)—even without switching apps (just pressing Alt+Tab and then Esc)—causes the issue to start.
- After this, reopening Chatterino (via taskbar or Alt+Tab) results in:
- The window being in a "pseudo-maximized" state: almost fullscreen but slightly smaller, with visible gaps at the top and left edges.
- The minimize button no longer works until manually clicking the "Restore Down" button (middle button), then maximizing again.
This issue does not occur on the primary monitor or when using a single monitor setup.
Steps to Reproduce
- Set up a multi-monitor configuration:
- Primary monitor: [Resolution, e.g., 4K].
- Secondary monitor: [Resolution, e.g., 1440p].
- Open Chatterino and drag it to the secondary monitor.
- Maximize Chatterino on the secondary monitor.
- Minimize Chatterino using the minimize button.
- Press Alt+Tab to open the Windows app switcher. No need to switch apps; press Esc to exit the switcher.
- Reopen Chatterino:
- Via the taskbar, or
- By Alt+Tabbing back to it.
You can see the issue in the video, please note that after I clicked the minimize button, I opened the windows app switcher without switching, which is not visible in the video but already described above.
Expected Behavior
Chatterino should reopen in a maximized state, and the minimize button should work as expected.
Actual Behavior
After interacting with the Windows app switcher:
- Chatterino opens in a "pseudo-maximized" state (slightly smaller than fullscreen).
- The minimize button stops working until manually restoring the window state using the "Restore Down" (middle) button and then re-maximizing.
Additional Observations
- The issue only occurs on the secondary monitor (1440p resolution in my setup).
- The issue does not occur:
- When using a single monitor.
- On the primary monitor.
- Restarting the PC prevents the issue temporarily, as long as Alt+Tab is not used.
Attachments
-
Screen recording showing the issue, including:
- Interaction with the minimize button.
- Use of the Windows app switcher (Alt+Tab).
- Reopening Chatterino via taskbar or switcher.
- Screenshot of Display Settings showing monitor arrangement and resolutions.
Environment
- Chatterino Version: Chatterino7 v2.5.2-beta.1 (HAPPENS WITH THE OFFICIAL CHATTERINO AS WELL. I CHECKED BOTH VERSIONS USING FULL UNINSTALLS!!!!!!!! (v2.5.2-beta.1)
- Windows Version: Windows 11 Pro, 23H2
-
Monitor Setup:
- Primary monitor: [3840x2160, 125% scale, 144hz].
- Secondary monitor: [2560x1440, 100% scale, 144hz].
Screenshots
https://github.com/user-attachments/assets/1908f55c-7c5d-4c97-bf5f-6477d31e433c
OS and Chatterino Version
Chatterino v2.5.2-beta.1 Windows 11 Pro, 23H2
I suppose this is only an issue on Windows 11, since I can't reproduce it on Windows 10.
It would be great to see a bit more of what's going on.
There are two things that could be helpful.
- Qt's messages
- Windows messages (I'll mention this here, but you don't need to do this if that's too complex right now)
1 is a bit simpler on your end. You can either set the QT_LOGGING_RULES environment variable (wiki) or you can use my c2-logs tool (this does the same without having you go through environment variables and relaunching the app).
Ideally, your Chatterino window only contains a single tab without a split (not even an empty one - the tab should say "Click to add a split"). This reduces the messages (actually, I'd call that a silly bug on our end, since we blindly set the visibility of the tooltip on every mouse move which causes a lot of messages).
Set the following rules (so the output isn't too spammy):
# either
$Env:QT_LOGGING_RULES="*.debug=true;qt.core.qobject.*=false;qt.pointer.*=false;qt.widgets.painting*=false;qt.qpa.uiautomation*=false;qt.text.drawing*=false;qt.widgets.gestures*=false;chatterino.seventv*=false;qt.gui.shortcutmap*=false"
$Env:QT_WIN_DEBUG_CONSOLE="attach" # or "new"
# run chatterino from this command line
# or (while chatterino is running)
./c2-logs.exe *.debug=true qt.core.qobject.*=false qt.pointer.*=false qt.widgets.painting*=false qt.qpa.uiautomation*=false qt.text.drawing*=false qt.widgets.gestures*=false chatterino.seventv*=false qt.gui.shortcutmap*=false
In c2-logs, you can also specify -o <file> to output to a file.
You can upload text files here.
For 2, it would be great to see the window messages right when hovering in the taskbar (i.e. when the state changes). You can use Spy++ to log the window messages. (included in a Visual Studio installation in Common7\Tools\spyxx_amd64.exe - https://github.com/westoncampbell/SpyPlusPlus/tree/master/spy17.0.34511.75 seems to contain the files as well, but I haven't checked them).
Usage
-
Search for
CHATTERINO.EXEin the processes -
Find the GUI thread (the first one)
-
Find the main window (the one in blue)
-
Select the main window (single click)
-
Either press CTRL+M or, in the menu at the top of Spy++, run
Spy>Log Messages... -
The correct window should be selected
-
In the
Messagestab of the window that opened, disable Keyboard and Mouse messages:
Once you captured the behavior, you can right-click in the messages window and stop the logging and save it to a file with CTRL+S.
This might also be a Qt issue, since we use QWidget to test whether the window is maximized or not. If you can compile Chatterino, try to test Qt 6.8.1.
Alright, thanks, I am unavailable the next hour, but I will try to get you the logs within a few hours. I only decided to open the issue as it started to annoy me quite a bit since I often only use the mouse to minimize windows (clicking the minimize button of the application) and essentially "reveal" say a chrome window that is behind chatterino. Thank you for the quick response btw.
Alright, thanks, I am unavailable the next hour, but I will try to get you the logs within a few hours.
That's totally fine. You don't need to respond fast.
Ok here are the logs:
C:\Users\TJ\Downloads\c2-logs-v0.2.2-x86_64-pc-windows-msvc>.\c2-logs.exe *.debug=true qt.core.qobject.*=false qt.pointer.*=false qt.widgets.painting*=false qt.qpa.uiautomation*=false qt.text.drawing*=false qt.widgets.gestures*=false chatterino.seventv*=false qt.gui.shortcutmap*=false
←[1;32minfo←[0m: ←[2mFound chatterino PID: 4344←[0m
←[1;32minfo←[0m: ←[2mChatterino using Qt6 QtCore loaded from "C:\\Program Files\\Chatterino7\\Qt6Core.dll"←[0m
←[1;32minfo←[0m: ←[2mApplied logging rules!←[0m
←[1;32minfo←[0m: ←[2mAttached to 4344←[0m
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
chatterino.windowmanager: Saving
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
chatterino.cache: Deleted 0 files in "C:/Users/TJ/AppData/Roaming/Chatterino2/ProfileAvatars/twitch"
chatterino.cache: Deleted 0 files in "C:/Users/TJ/AppData/Roaming/Chatterino2/Cache"
chatterino.app: Deleted 0 crashdumps
chatterino.notification: fetching fake channels
chatterino.notification: fetching fake channels
qt.qpa.mime: Clipboard changed owned false
qt.qpa.mime: Clipboard changed owned false
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
chatterino.notification: fetching fake channels
chatterino.notification: fetching fake channels
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
chatterino.notification: fetching fake channels
qt.qpa.events: QWindowsKeyMapper::updatePossibleKeyCodes for virtual key= 0x9 KeyboardLayoutItem([0 NoModifier 0x1000001 Key_Tab] [1 ShiftModifier 0x1000001 Key_Tab] [2 ControlModifier 0x1000001 Key_Tab] [3 ShiftModifier|ControlModifier 0x1000001 Key_Tab] [4 AltModifier 0x1000001 Key_Tab] [5 ShiftModifier|AltModifier 0x1000001 Key_Tab] [6 ControlModifier|AltModifier 0x1000001 Key_Tab] [7 ShiftModifier|ControlModifier|AltModifier 0x1000001 Key_Tab] [8 NoModifier 0x1000001 Key_Tab] )
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
chatterino.notification: fetching fake channels
chatterino.notification: fetching fake channels
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: > QWindowsWindow::setWindowState_sys QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") from QFlags<Qt::WindowState>(WindowNoState) to QFlags<Qt::WindowState>(WindowMaximized)
qt.qpa.window: >QWindowsGeometryHint::applyToMinMaxInfo< min=204,39 max=16777215,16777215 margins=QMargins(8, 0, 8, 8) in MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=136, y=39))
qt.qpa.window: <QWindowsGeometryHint::applyToMinMaxInfo out MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=204, y=39))
qt.qpa.window: QWindowsWindow::getSizeHints QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=204, y=39))
qt.qpa.window: >QWindowsGeometryHint::applyToMinMaxInfo< min=204,39 max=16777215,16777215 margins=QMargins(8, 0, 8, 8) in MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=136, y=39))
qt.qpa.window: <QWindowsGeometryHint::applyToMinMaxInfo out MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=204, y=39))
qt.qpa.window: QWindowsWindow::getSizeHints QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") MINMAXINFO(maxSize=POINT(x=3856, y=2176), maxpos=POINT(x=-8, y=-8), maxtrack=POINT(x=6422, y=2182), mintrack=POINT(x=204, y=39))
qt.qpa.window: qWindowsWndProc WM_NCCALCSIZE for 0x208da QMargins(8, 8, 8, 8)
qt.qpa.window: QWindowsWindow::setFullFrameMargins QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QMargins(8, 0, 8, 8) -> QMargins(8, 8, 8, 8)
qt.qpa.window: QWindowsGeometryHint::frame style=0x97cf0000 exStyle=0x100 dpi=96 RECT(left=-8, top=-31, right=8, bottom=8 (16x39)) QMargins(8, 31, 8, 8)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2560,339 2560x1440)
qt.qpa.window: QWindowsGeometryHint::frame style=0x97cf0000 exStyle=0x100 dpi=96 RECT(left=-8, top=-31, right=8, bottom=8 (16x39)) QMargins(8, 31, 8, 8)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2560,339 2560x1440)
qt.qpa.window: QWindowsWindow::handleWindowStateChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
from QFlags<Qt::WindowState>(WindowNoState) to QFlags<Qt::WindowState>(WindowMaximized|WindowFullScreen)
qt.qpa.window: < QWindowsWindow::setWindowState_sys QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QFlags<Qt::WindowState>(WindowMaximized)
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: > QWindowsWindow::setWindowState_sys QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") from QFlags<Qt::WindowState>(WindowMaximized) to QFlags<Qt::WindowState>(WindowMinimized|WindowMaximized|WindowFullScreen)
qt.qpa.window: QWindowsWindow::setStyle QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") "0x96080000 WS_POPUP WS_CLIPSIBLINGS WS_CLIPCHILDREN WS_SYSMENU WS_VISIBLE"
qt.qpa.window: qWindowsWndProc WM_NCCALCSIZE for 0x208da QMargins(8, 0, 8, 8)
qt.qpa.window: QWindowsWindow::setFullFrameMargins QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QMargins(8, 8, 8, 8) -> QMargins(8, 0, 8, 8)
qt.qpa.window: QWindowsGeometryHint::frame style=0x96080000 exStyle=0x0 dpi=96 RECT(left=0, top=0, right=0, bottom=0 (0x0)) QMargins(0, 0, 0, 0)
qt.qpa.window: QWindowsWindow::setFullFrameMargins QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QMargins(8, 0, 8, 8) -> QMargins(0, 8, 0, 0)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2552,339 2544x1432)
qt.qpa.window: QWindowsGeometryHint::frame style=0x96080000 exStyle=0x0 dpi=96 RECT(left=0, top=0, right=0, bottom=0 (0x0)) QMargins(0, 0, 0, 0)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2560,347 2560x1432)
qt.qpa.window: QWindowsWindow::handleWindowStateChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
from QFlags<Qt::WindowState>(WindowMaximized) to QFlags<Qt::WindowState>(WindowMinimized|WindowMaximized)
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
qt.qpa.window: < QWindowsWindow::setWindowState_sys QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QFlags<Qt::WindowState>(WindowMinimized|WindowMaximized|WindowFullScreen)
qt.widgets.showhide: Hiding children of chatterino::Window(0x1d7ed1955b0) spontaneously true
qt.widgets.showhide: Considering chatterino::BaseWidget(0x1d7efede400) with attributes [WA_LaidOut,WA_WState_Visible,WA_SetPalette,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_OwnSizePolicy,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::BaseWidget(0x1d7efede400) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdffa80) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Button(0x1d7efdffa80) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff8c0) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Button(0x1d7efdff8c0) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff1c0) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Button(0x1d7efdff1c0) spontaneously true
qt.widgets.showhide: Considering chatterino::BaseWidget(0x1d7f0cfecc0) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::BaseWidget(0x1d7f0cfecc0) spontaneously true
qt.widgets.showhide: Considering chatterino::Notebook(0x1d7f0e9a500) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Notebook(0x1d7f0e9a500) spontaneously true
qt.widgets.showhide: Considering chatterino::SplitContainer(0x1d7f0f61930) with attributes [WA_MouseTracking,WA_WState_Visible,WA_SetCursor,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::SplitContainer(0x1d7f0f61930) spontaneously true
qt.widgets.showhide: Considering QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::NotebookTab(0x1d7f0f1b630) with attributes [WA_MouseTracking,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::NotebookTab(0x1d7f0f1b630) spontaneously true
qt.widgets.showhide: Considering QMenu(0x1d7f0f1b898) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_CustomWhatsThis,WA_WState_Polished,WA_X11NetWmWindowTypePopupMenu,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::NotebookButton(0x1d7efd37370) with attributes [WA_MouseTracking,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::NotebookButton(0x1d7efd37370) spontaneously true
qt.widgets.showhide: Setting visibility of chatterino::NotebookTab(0x1d7f0f1b630) with attributes [WA_MouseTracking,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to true via QWidget
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdffc40) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Button(0x1d7efdffc40) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff000) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::Button(0x1d7efbfdf80) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Hiding children of chatterino::Button(0x1d7efbfdf80) spontaneously true
qt.widgets.showhide: Considering chatterino::SignalLabel(0x1d7efbfe148) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_OwnSizePolicy,WA_QuitOnClose]
qt.widgets.showhide: Hiding children of chatterino::SignalLabel(0x1d7efbfe148) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7f0e04590) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Window(0x1d7ed1955b0) spontaneously true
qt.widgets.showhide: Considering chatterino::BaseWidget(0x1d7efede400) with attributes [WA_LaidOut,WA_WState_Visible,WA_SetPalette,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_OwnSizePolicy,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::BaseWidget(0x1d7efede400) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdffa80) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Button(0x1d7efdffa80) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff8c0) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Button(0x1d7efdff8c0) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff1c0) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Button(0x1d7efdff1c0) spontaneously true
qt.widgets.showhide: Considering chatterino::BaseWidget(0x1d7f0cfecc0) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::BaseWidget(0x1d7f0cfecc0) spontaneously true
qt.widgets.showhide: Considering chatterino::Notebook(0x1d7f0e9a500) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Notebook(0x1d7f0e9a500) spontaneously true
qt.widgets.showhide: Considering chatterino::SplitContainer(0x1d7f0f61930) with attributes [WA_MouseTracking,WA_WState_Visible,WA_SetCursor,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::SplitContainer(0x1d7f0f61930) spontaneously true
qt.widgets.showhide: Considering QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::NotebookTab(0x1d7f0f1b630) with attributes [WA_MouseTracking,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::NotebookTab(0x1d7f0f1b630) spontaneously true
qt.widgets.showhide: Considering QMenu(0x1d7f0f1b898) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_CustomWhatsThis,WA_WState_Polished,WA_X11NetWmWindowTypePopupMenu,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::NotebookButton(0x1d7efd37370) with attributes [WA_MouseTracking,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::NotebookButton(0x1d7efd37370) spontaneously true
qt.widgets.showhide: Setting visibility of chatterino::NotebookTab(0x1d7f0f1b630) with attributes [WA_MouseTracking,WA_Mapped,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to true via QWidget
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdffc40) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Button(0x1d7efdffc40) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7efdff000) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Considering chatterino::Button(0x1d7efbfdf80) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.widgets.showhide: Showing children of chatterino::Button(0x1d7efbfdf80) spontaneously true
qt.widgets.showhide: Considering chatterino::SignalLabel(0x1d7efbfe148) with attributes [WA_LaidOut,WA_WState_Visible,WA_Resized,WA_Moved,WA_WState_Created,WA_WState_Polished,WA_WState_OwnSizePolicy,WA_QuitOnClose]
qt.widgets.showhide: Showing children of chatterino::SignalLabel(0x1d7efbfe148) spontaneously true
qt.widgets.showhide: Considering chatterino::Button(0x1d7f0e04590) with attributes [WA_MouseTracking,WA_LaidOut,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_ContentsMarginsRespectsSafeArea]
qt.qpa.events: QWindowsKeyMapper::updatePossibleKeyCodes for virtual key= 0x12 KeyboardLayoutItem([0 NoModifier 0x1000023 Key_Alt] [1 ShiftModifier 0x1000023 Key_Alt] [2 ControlModifier 0x1000023 Key_Alt] [3 ShiftModifier|ControlModifier 0x1000023 Key_Alt] [4 AltModifier 0x1000023 Key_Alt] [5 ShiftModifier|AltModifier 0x1000023 Key_Alt] [6 ControlModifier|AltModifier 0x1000023 Key_Alt] [7 ShiftModifier|ControlModifier|AltModifier 0x1000023 Key_Alt] [8 NoModifier 0x1000023 Key_Alt] )
qt.qpa.input.devices: no keyboards registered for seat "" The platform plugin should have provided one via QWindowSystemInterface::registerInputDevice(). Creating a default one for now.
qt.qpa.window: qWindowsWndProc WM_NCCALCSIZE for 0x208da QMargins(8, 0, 8, 8)
qt.qpa.window: QWindowsWindow::setFullFrameMargins QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QMargins(0, 8, 0, 0) -> QMargins(8, 0, 8, 8)
qt.qpa.window: QWindowsGeometryHint::frame style=0x96080000 exStyle=0x0 dpi=96 RECT(left=0, top=0, right=0, bottom=0 (0x0)) QMargins(0, 0, 0, 0)
qt.qpa.window: QWindowsWindow::setFullFrameMargins QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QMargins(8, 0, 8, 8) -> QMargins(0, 8, 0, 0)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2552,339 2544x1432)
qt.qpa.window: QWindowsGeometryHint::frame style=0x96080000 exStyle=0x0 dpi=96 RECT(left=0, top=0, right=0, bottom=0 (0x0)) QMargins(0, 0, 0, 0)
qt.qpa.events: QWindowsWindow::handleGeometryChange QPlatformSurface(0x1d7f0d022f0, class=QSurface::Window, type=QSurface::RasterSurface, window=QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")) QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QRect(-2560,347 2560x1432)
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.events: Entering window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10021 doApply= true
qt.qpa.events: Leaving window QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow")
qt.qpa.window: QWidgetWindow(0x1d7f0d39eb0, name="chatterino::WindowClassWindow") QWindowsWindow::setCursor 0x10005 doApply= false
chatterino.windowmanager: Saving
qt.widgets.showhide: Setting visibility of QWidget(0x1d7f0f61a48) with attributes [WA_MouseTracking,WA_WState_Hidden,WA_PendingMoveEvent,WA_PendingResizeEvent,WA_WState_Polished,WA_WState_ExplicitShowHide,WA_QuitOnClose,WA_AcceptDrops,WA_DropSiteRegistered,WA_ContentsMarginsRespectsSafeArea] to false via QWidget
Also I just figured out a temporary fix: when the issue happens click the "restore down" button and then maximize by dragging the window to the top of the screen NOT by clicking the maximize button of chatterino, that way it works as expected till the next reboot.