Open magreenblatt opened 4 years ago
Original comment by Matthias Dittrich (Bitbucket: Matthias Dittrich).
One more comment for an obvious “quick fix”:
Is there a reason why the logic in https://bitbucket.org/chromiumembedded/cef/commits/5969b2b was added conditionally? My assumption is that if we just always assume true
there it would work “as expected”. This is because if you start the sample with --always-on-top
it seems to work as expected, even when you change the TopMost flag with gui_prop_view at runtime.
Original report by Matthias Dittrich (Bitbucket: Matthias Dittrich).
This is basically a continuation of #1468/dropdowns-are-hidden-behind-browser-window
What steps will reproduce the problem?
But instead of starting the application in topmost you do the following:
Our Application can change
TopMost
at runtime.Please provide any additional information below.
Given the previous patch I’m trying to find a workaround/patch for this, but the build infrastructure is a bit overwhelming, so I decided to just report the issue and see if somebody can help.
We use CefSharp (https://github.com/cefsharp/CefSharp) but the issue is completely reproducible for me on the cef_binary.
There is a related “unresolved” issue https://github.com/cefsharp/CefSharp/issues/657 which I wanted to debug/fix as well but being unable to debug into CEF itself makes that hard. I feel like this is actually related as in Multi-Threading enabled the initialization order might be different (so my assumption is the parent window is added to late for the top-most to be picked up)
The only “difference” between the working and the not-working runtime flags I found was this:
To find a workaround, I tried setting that style via
SetWindowLongPtr
GWL_EXSTYLE and GWL_STYLE as well asSetWindowPos
on that particularWidgetWin_0
handle. But no call changes the behavior.Additionally, I noticed that chrome itself doesn’t have this problem.
Any help is appreciated, I’m happy to send a PR. However, I still feel like I have not understood the root cause and I’m still fighting with the build infrastructure.