On Thu, Apr 28, 2022 at 04:13:04PM -0700, Dongwon Kim wrote: > Specify location and size of detached window based on top level > window's location and size info when detachment happens.
Can you explain what problem is being solved by this change ? What's wrong with default size/placement logic ? In terms of size at least, I would hope we are resizing windows any time the guest changes the resolution of the virtual video adapter. If there are 2 outputs, they can be at different resolution, so copying the size of the existing window feels wrong - we need to copy the guest resolution currently set. Why do we need to mess around with position at all ? > Cc: Philippe Mathieu-Daudé <phi...@redhat.com> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Cc: Vivek Kasireddy <vivek.kasire...@intel.com> > Signed-off-by: Dongwon Kim <dongwon....@intel.com> > --- > ui/gtk.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/ui/gtk.c b/ui/gtk.c > index f1ca6a7275..7dadf3b588 100644 > --- a/ui/gtk.c > +++ b/ui/gtk.c > @@ -1338,6 +1338,8 @@ static void gd_menu_untabify(GtkMenuItem *item, void > *opaque) > FALSE); > } > if (!vc->window) { > + gint x, y, w, h; > + int i; > gtk_widget_set_sensitive(vc->menu_item, false); > vc->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); > #if defined(CONFIG_OPENGL) > @@ -1351,7 +1353,18 @@ static void gd_menu_untabify(GtkMenuItem *item, void > *opaque) > } > #endif > gd_widget_reparent(s->notebook, vc->window, vc->tab_item); > + gtk_window_get_position(GTK_WINDOW(s->window), &x, &y); > + gtk_window_get_size(GTK_WINDOW(s->window), &w, &h); > + > + for (i = 0; i < s->nb_vcs; i++) { > + if (vc == &s->vc[i]) { > + break; > + } > + } > > + gtk_window_move(GTK_WINDOW(vc->window), > + x + w * (i % (s->nb_vcs/2) + 1), y + h * (i / > (s->nb_vcs/2))); > + gtk_window_resize(GTK_WINDOW(vc->window), w, h); > g_signal_connect(vc->window, "delete-event", > G_CALLBACK(gd_tab_window_close), vc); > gtk_widget_show_all(vc->window); > -- > 2.30.2 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|