Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chatterino window state issues on secondary monitor with lower resolution after using Alt+Tab #5777

Open
4 tasks done
TeeJay69 opened this issue Dec 26, 2024 · 6 comments
Open
4 tasks done
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user

Comments

@TeeJay69
Copy link

Checklist

  • I'm reporting a problem with Chatterino
  • I've verified that I'm running the most recent nightly build or stable release
  • I've looked for my problem on the wiki
  • 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:

  1. Clicking the minimize button works as expected initially.
  2. Using the Windows app switcher (Alt+Tab)—even without switching apps (just pressing Alt+Tab and then Esc)—causes the issue to start.
  3. 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

  1. Set up a multi-monitor configuration:
    • Primary monitor: [Resolution, e.g., 4K].
    • Secondary monitor: [Resolution, e.g., 1440p].
  2. Open Chatterino and drag it to the secondary monitor.
  3. Maximize Chatterino on the secondary monitor.
  4. Minimize Chatterino using the minimize button.
  5. Press Alt+Tab to open the Windows app switcher. No need to switch apps; press Esc to exit the switcher.
  6. 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

  1. 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.
  2. 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

2024-12-26.18-22-48-final.mp4

OS and Chatterino Version

Chatterino v2.5.2-beta.1 Windows 11 Pro, 23H2

@TeeJay69 TeeJay69 added the issue-report An issue reported by a user. label Dec 26, 2024
@TeeJay69
Copy link
Author

image
image
image
image
image
image

@Nerixyz
Copy link
Contributor

Nerixyz commented Dec 26, 2024

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.

  1. Qt's messages
  2. 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.EXE in the processes

  • Find the GUI thread (the first one)

  • Find the main window (the one in blue)

  • Select the main window (single click)
    image

  • 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 Messages tab of the window that opened, disable Keyboard and Mouse messages:
    image

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.

@TeeJay69
Copy link
Author

TeeJay69 commented Dec 26, 2024

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.

@Nerixyz
Copy link
Contributor

Nerixyz commented Dec 26, 2024

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.

@TeeJay69
Copy link
Author

TeeJay69 commented Dec 27, 2024

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

Spy logs.csv

@pajlada pajlada added bug Something isn't working as intended, or works in a confusing/unintuitive way for the user and removed issue-report An issue reported by a user. labels Dec 28, 2024
@TeeJay69
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user
Projects
None yet
Development

No branches or pull requests

3 participants