Bug 505928 - Right-clicking taskbar entry for minimized window causes weird state
Right-clicking taskbar entry for minimized window causes weird state
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Win32
2.12.x
Other Windows
: Normal normal
: ---
Assigned To: gtk-win32 maintainers
gtk-bugs
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2007-12-27 17:46 UTC by Cody Russell
Modified: 2008-01-31 22:43 UTC (History)
1 user (show)

See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch (3.27 KB, patch)
2008-01-18 01:59 UTC, Cody Russell
none Details | Diff | Review
Improved patch (4.61 KB, patch)
2008-01-31 21:33 UTC, Cody Russell
committed Details | Diff | Review

Description Cody Russell 2007-12-27 17:46:26 UTC
Minimizing a window to the taskbar and then right-clicking its taskbar entry causes the window to re-appear on the screen, but not redraw its contents immediately.  The popup menu appears over the taskbar where you right-clicked.  Once you dismiss that menu, the window contents will redraw correctly.

I've narrowed this down to a couple specific things, and I'll try to get a patch up soon.  Just wanted to document the problem in Bugzilla now.
Comment 1 Cody Russell 2008-01-18 01:59:55 UTC
Created attachment 103109 [details] [review]
Proposed patch

I want to do more testing tomorrow, but here's where I'm at right now.

What's happening is that whenever we receive WM_ACTIVATE where LOWORD (wParam) == WA_ACTIVE then we react.  However, apparently Windows issues this notification if you right-click on the taskbar entry as well as when you left-click on it.  The right click obviously blocks the UI.

Seems that using WM_SYSCOMMAND we can check for SC_RESTORE without receiving any spurious events when we right click.

What still needs to be looked into is programmatic showing/hiding of windows using ShowWindow ().
Comment 2 Cody Russell 2008-01-31 21:33:28 UTC
Created attachment 104131 [details] [review]
Improved patch

This patch adds handling for WM_SIZE so when the window is programmatically shown or hidden it will work as expected.

Note You need to log in before you can comment on or make changes to this bug.