winex11.drv/window.c:is_window_managed()

Dawser Stevens dawser at gmx.com
Tue Jan 29 17:13:14 CST 2019


Hi everybody,

This is my first post to the list. I have been trying for a few days to 
make Office 2016 run using the trunk version of Wine. I got it to mostly 
work, Excel and Word very well, and OneNote almost as well, even 
supporting inking.

However, the main problem to make it usable was the right-click dual 
tool window popup. Using the trunk version of wine, right click only 
shows the first toolwindow of the two (the one that doesn't include 
Copy/Paste etc.)

I think I debugged the problem to

`winex11.drv/window.c:is_window_managed()`

There used to be old code that made WS_EX_TOOLWINDOW extended attribute 
windows unmanaged. Alexandre added some additional logic and removed 
that line...in 2008!

https://www.winehq.org/pipermail/wine-cvs/2008-April/042994.html

The new interface from Microsoft may have changed the logic in the last 
ten years. These windows now have a

`style = WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS`

and a extended style including `WS_EX_TOOLWINDOW`

so they are layered popups and toolwindows.

If I add:

`if (ex_style & WS_EX_TOOLWINDOW) return FALSE;`

right after the managed mode check at the beginning of the function, 
making them unmanaged, both tool windows appear, though the mouse clicks 
and window creation are not perfectly synced (the right mouse click 
works randomly).

I am asking for advice. I really don't know the code very well yet, and 
that particular logic of what windows to manage seems very sensitive. I 
think it would be a big win to make Office 2016 usable.

Thank you.



More information about the wine-devel mailing list