I'm trying to change over our linux app which uses a CEF browser housed in a GTK container window to utilize views and remove the GTK dependency. I am having trouble saving the full window bounds and restoring them on the next launch. I'm able to implement GetInitialBounds in my CefWindowDelegate subclass and pass it bounds which indeed sets the left/top of the container (frame and title/caption bar) to the specified left/top and sets the browser sub-window to the specified width/height. Ideally, the specified bounds would be for the overall window size including its frame and caption bar but we can work around this behavior.
The issue we have is attempting to save the main windows last position when our delegates CanClose method is about to return true. I have called the browser view's GetBoundsInScreen and GetBounds as well as the windows GetClientAreaBoundsInScreen and GetBoundsInScreen and all of these return the bounds of the browser window inside the frame and caption bar. If we store that and return it in GetInitialBounds the position is offset by the width of the frame (1px) and the height of the caption bar (34px on my linux distro which is debian). I can't find any way to get the actual left/top of the outer frame including the caption bar, or get simply get the frame width and caption bar height. Is there a way to get that info from within my view delegate?