Hi On Wed, Mar 20, 2013 at 7:39 PM, Daniel P. Berrange <berrange@xxxxxxxxxx> wrote: > On Wed, Mar 20, 2013 at 07:05:12PM +0100, Marc-André Lureau wrote: >> gtk_window_present() may forcefully call gdk_window_show(), which will >> call ShowWindow(). Although gdk call is not supposed to move the >> window if it's already visible, it does restore the window position on >> Vista+. For example, a snapped window will be moved back to its >> previous position. >> >> Gtk+ ShowWindow() is currently using SW_SHOWNOACTIVATE, it should >> probably use SW_SHOWNA instead, but that didn't help anyway for a >> snapped window. >> >> Since virt_viewer_window_show() already ensure the window is visible, >> I am not sure why gtk_window_present() is there in the first place, so >> just remove it. > > Well virt_viewer_window_show() merely calls gtk_window_show() > which just unhides the window, but does not guarantee that the > user can actually see it. Per the docs gtk_window_present() > does more, ensuring the window is actually visible to the user > > " Presents a window to the user. This may mean raising the > window in the stacking order, deiconifying it, moving it > to the current desktop, and/or giving it the keyboard focus, > possibly dependent on the user's platform, window manager, > and preferences. " > > so I don't think we should be removing this But I am not sure why this is desirable. If I enable a monitor, I don't necessarily want it to be front and have the focus immediately. Only use case I can think of is to use the display menu to bring a window to front. However, that's not supported since it's a check-item, it will disable it instead. Showing a hidden window does bring it to front already, afaik (to be verified) > >> https://bugzilla.redhat.com/show_bug.cgi?id=912713 > > Looking the problem description, I'm not convinced that the > gtk_window_present() is the root cause of the problem, but > rather just something that highlights a problem that exists > elsewhere I think I understand the root cause, and I wished my somewhat lengthy description would be enough, I don't know what to add there. I actually spent at least an hour playing with ShowWindow() calls in gdk win32 and looking for solutions, I don't see anything right now, and I don't think it's worth spending more time when the call is already arguable. -- Marc-André Lureau _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list