| Summary: | Shell's with SWT.NO_TRIM not minimized on Windows+M keystroke | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Elias Volanakis <elias> | ||||||
| Component: | SWT | Assignee: | Felipe Heidrich <eclipse.felipe> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | christian.campo, eclipse.felipe, juergen.becker, thorsten.schenkel | ||||||
| Version: | 3.6 | ||||||||
| Target Milestone: | 3.7 M4 | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows Vista | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
Created attachment 174323 [details]
Snippet to reproduce issue
I can reproduce this bug with Windows XP. It is not Vista specific. I tried to figure out what causes the difference in the behavior between creating the Shell with new Shell(display) or new Shell(display, SWT.NO_TRIM) . I put some debug code in Control.windowProc(...) to trace what kind of messages are passed if somebody hits Windows-M. In the working case the following messages are passed: Control.windowProc: msg: 70 ( = WM_WINDOWPOSCHANGING ) Control.windowProc: msg: 36 Control.windowProc: msg: 131 Control.windowProc: msg: 71 ( = WM_WINDOWPOSCHANGED ) Control.windowProc: msg: 3 Control.windowProc: msg: 5 Control.windowProc: msg: 13 Control.windowProc: msg: 131 For the other case no message at all is passed to Control.windowProc(...). So the handling of the messages is not the problem. The only explanation I came up with, is that Windows does not send the messages to the window because of the special flags, which are used to create the window handle. I'm no expert on this topic, but maybe one of the win32 gurus has an idea what is happening. Will look into this a little bit further and play with the handle creation flags. Created attachment 183473 [details]
Patch to fix window-m shortcut behavior
After reading some Windows win32 docs, I found a fix for this bug. A window without a border does not receive the messages for the windows-m event. But it is possible to create the window with the WS_MINIMIZEBOX flag. No button will be displayed but the window will know receive the messages. A project patch is attached to fix the Decoration class. It would be nice if the patch gets included. Thanks in advance. :) Similar to Bug 282441, Fixed in HEAD > 2010-11-19 Thank you for the patch. |
Shell's with SWT.NO_TRIM are not minimized with the Windows+M keystroke ('Minimize all'). The attached snippet can be used to reproduce. Side notes: - might be similar to Bug 277568. - the similar Windows+D keystroke works as expected