<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 19, 2016 at 11:12 AM, Rémi Denis-Courmont <span dir="ltr"><<a href="mailto:remi@remlab.net" target="_blank">remi@remlab.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>Le 2016-03-19 04:50, Darrell Walisser a écrit :<br>
</span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>
On Fri, Mar 18, 2016 at 9:14 PM, Rémi Denis-Courmont <<a href="mailto:remi@remlab.net" target="_blank">remi@remlab.net</a><br></span>
[1]> wrote:</blockquote><span>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
At what point all those things come together to make<br>
the window "fullscreen" is indeterminate because there is no single<br>
event supplied for that.<br>
</blockquote>
<br></span>
I utterly fail to see why you should even care for reasons already outlined. But there IS an X11 event, and most probably there are events in other systems.<span><br><br></span></blockquote><div><br></div><div>The bug that I am attempting to fix is the one where if you make the window fullscreen, when it returns to normal its size is now the size of the screen and not the original size. There was a bug report on this some time after I first submitted the patch, and it is not limited to X11. <a href="https://trac.videolan.org/vlc/ticket/16714" target="_blank">https://trac.videolan.org/vlc/ticket/16714</a><br></div><div><br></div><div>I have traced the source of the bug to setMinimalView(). setMinimalView() is used to hide the UI elements (menu bar, toolbars, etc) prior to fullscreen switch, and recently, it now wants to resize the window as well. setMinimalView() tests QWidget::isFullscreen() (rightly so) and will not call QWidget::resize() if it returns true.</div><div><br></div><div>The problem is that QWidget::isFullScreen() will return false while the window is switching away from fullscreen but before Qt has restored it to the original position and size. setMinimalView(), which now needs to show the UI elements that it hid, then proceeds to set the wrong size on the window since it sees QWidget::size() as the fullscreen size and not the original size.</div><div><br></div><div>In summary, in Qt (any version, any platform), you cannot trust QWidget::isFullScreen() to mean that the window size() isn't going to change soon, as setMinimalView() does.</div><div><br></div><div>This is a real bug, it is not limited to X11, is not a bug in Qt, and there is no single Qt event that can be used if you really want to know when the fullscreen switch is done (you have to look for WindowStateChanged+ResizeEvent it seems).</div><div><br></div><div>I do not believe there is any better solution than the two I have already proposed. If you are looking for something that isn't a compromise, you won't find one.</div><div><br></div></div></div></div>