Package: virt-viewer Version: 0.4.1-1 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu precise ubuntu-patch
In Ubuntu, the attached patch was applied to achieve the following: * 0003-set-window-title-with-domain-name.patch: set window title to use domain name (LP: #842317) * fix zoom issues: - 0001-initial-zoom.patch: Fix setting of initial zoom level on display - 0002-propagate-primary-window-zoom.patch: Propagate primary window zoom level to secondary windows We cherrypicked upstream patches to fix some zoom issues and for setting the title bar to include the VM name[1]. Thank you for considering the patch. [1]https://bugs.launchpad.net/ubuntu/+source/virt-viewer/+bug/842317 -- System Information: Debian Release: wheezy/sid APT prefers oneiric-updates APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500, 'oneiric') Architecture: amd64 (x86_64) Kernel: Linux 3.0.0-12-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru virt-viewer-0.4.1/debian/patches/0001-initial-zoom.patch virt-viewer-0.4.1/debian/patches/0001-initial-zoom.patch --- virt-viewer-0.4.1/debian/patches/0001-initial-zoom.patch 1969-12-31 18:00:00.000000000 -0600 +++ virt-viewer-0.4.1/debian/patches/0001-initial-zoom.patch 2011-09-16 06:03:02.000000000 -0500 @@ -0,0 +1,16 @@ +Origin: 8bd178c8a81073c70360ce6af6629ad6bf0e921a +Description: Fix setting of initial zoom level on display. + +Index: virt-viewer-0.4.1/src/virt-viewer-window.c +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer-window.c 2011-09-16 06:01:05.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer-window.c 2011-09-16 06:02:23.000000000 -0500 +@@ -855,6 +855,8 @@ + if (display != NULL) { + priv->display = g_object_ref(display); + ++ virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); ++ + gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); + if (gtk_bin_get_child(GTK_BIN(display))) + gtk_widget_realize(GTK_WIDGET(gtk_bin_get_child(GTK_BIN(display)))); diff -Nru virt-viewer-0.4.1/debian/patches/0002-propagate-primary-window-zoom.patch virt-viewer-0.4.1/debian/patches/0002-propagate-primary-window-zoom.patch --- virt-viewer-0.4.1/debian/patches/0002-propagate-primary-window-zoom.patch 1969-12-31 18:00:00.000000000 -0600 +++ virt-viewer-0.4.1/debian/patches/0002-propagate-primary-window-zoom.patch 2011-09-16 06:08:05.000000000 -0500 @@ -0,0 +1,56 @@ +Origin: fe8551efbaa1425e7db4d59e10a25fa94788e949 +Description: Propagate primary window zoom level to secondary windows + Ensure that all windows get a default zoom level of 100. Propagate + the primary window's zoom level to all secondary windows when + initially creating them +Index: virt-viewer-0.4.1/src/virt-viewer-app.c +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer-app.c 2011-09-16 06:04:11.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer-app.c 2011-09-16 06:05:25.000000000 -0500 +@@ -446,6 +446,8 @@ + "app", self, + "container", container, + NULL); ++ if (self->priv->main_window) ++ virt_viewer_window_set_zoom_level(window, virt_viewer_window_get_zoom_level(self->priv->main_window)); + virt_viewer_app_set_nth_window(self, nth, window); + w = virt_viewer_window_get_window(window); + +Index: virt-viewer-0.4.1/src/virt-viewer-window.c +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer-window.c 2011-09-16 06:04:11.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer-window.c 2011-09-16 06:05:25.000000000 -0500 +@@ -310,6 +310,8 @@ + priv->accel_list = g_slist_append(priv->accel_list, accels->data); + g_object_ref(G_OBJECT(accels->data)); + } ++ ++ priv->zoomlevel = 100; + } + + static void +@@ -884,6 +886,12 @@ + self->priv->zoomlevel = zoom_level; + } + ++gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self) ++{ ++ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), 100); ++ return self->priv->zoomlevel; ++} ++ + GtkMenuItem* + virt_viewer_window_get_menu_displays(VirtViewerWindow *self) + { +Index: virt-viewer-0.4.1/src/virt-viewer-window.h +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer-window.h 2011-09-16 06:04:11.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer-window.h 2011-09-16 06:05:25.000000000 -0500 +@@ -65,6 +65,7 @@ + void virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display); + void virt_viewer_window_update_title(VirtViewerWindow *self); + void virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level); ++gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self); + void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self); + void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y); + GtkMenuItem *virt_viewer_window_get_menu_displays(VirtViewerWindow *self); diff -Nru virt-viewer-0.4.1/debian/patches/0003-set-window-title-with-domain-name.patch virt-viewer-0.4.1/debian/patches/0003-set-window-title-with-domain-name.patch --- virt-viewer-0.4.1/debian/patches/0003-set-window-title-with-domain-name.patch 1969-12-31 18:00:00.000000000 -0600 +++ virt-viewer-0.4.1/debian/patches/0003-set-window-title-with-domain-name.patch 2011-09-16 06:10:31.000000000 -0500 @@ -0,0 +1,139 @@ +Origin: 46cf6410c11dc8369dcf74283656f4bb0e14be8a +Description: Fix setting of initial zoom level on display +Bug: https://bugzilla.redhat.com/show_bug.cgi?id=737204 +Bug-Ubuntu: https://launchpad.net/bugs/842317 + +Index: virt-viewer-0.4.1/src/virt-viewer-app.c +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer-app.c 2011-09-16 06:08:58.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer-app.c 2011-09-16 06:09:34.000000000 -0500 +@@ -121,6 +121,7 @@ + char *pretty_address; + gchar *guest_name; + gboolean grabbed; ++ char *title; + }; + + +@@ -135,6 +136,7 @@ + PROP_SESSION, + PROP_GUEST_NAME, + PROP_FULLSCREEN, ++ PROP_TITLE, + }; + + void +@@ -386,6 +388,34 @@ + } + } + ++static void ++virt_viewer_app_set_window_subtitle(VirtViewerApp *app, ++ VirtViewerWindow *window, ++ int nth) ++{ ++ gchar *subtitle = app->priv->title ? g_strdup_printf("%s (%d)", app->priv->title, nth + 1) : NULL; ++ g_object_set(window, "subtitle", subtitle, NULL); ++ g_free(subtitle); ++} ++ ++static void ++set_title(gpointer key, ++ gpointer value, ++ gpointer user_data) ++{ ++ gint *nth = key; ++ VirtViewerApp *app = user_data; ++ VirtViewerWindow *window = value; ++ virt_viewer_app_set_window_subtitle(app, window, *nth); ++} ++ ++static void ++virt_viewer_app_set_all_window_subtitles(VirtViewerApp *app) ++{ ++ virt_viewer_app_set_window_subtitle(app, app->priv->main_window, 0); ++ g_hash_table_foreach(app->priv->windows, set_title, app); ++} ++ + static void update_title(gpointer key G_GNUC_UNUSED, + gpointer value, + gpointer user_data G_GNUC_UNUSED) +@@ -426,6 +456,7 @@ + key = g_malloc(sizeof(gint)); + *key = nth; + g_hash_table_insert(self->priv->windows, key, win); ++ virt_viewer_app_set_window_subtitle(self, win, nth); + } + + static void +@@ -943,6 +974,10 @@ + g_value_set_boolean(value, priv->fullscreen); + break; + ++ case PROP_TITLE: ++ g_value_set_string(value, priv->title); ++ break; ++ + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +@@ -975,6 +1010,12 @@ + virt_viewer_app_set_fullscreen(self, g_value_get_boolean(value)); + break; + ++ case PROP_TITLE: ++ g_free(priv->title); ++ priv->title = g_value_dup_string(value); ++ virt_viewer_app_set_all_window_subtitles(self); ++ break; ++ + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +@@ -1000,6 +1041,7 @@ + g_object_unref(priv->container); + priv->container = NULL; + } ++ g_free(priv->title); + + virt_viewer_app_free_connect_info(self); + +@@ -1128,6 +1170,16 @@ + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_STATIC_STRINGS)); ++ g_object_class_install_property(object_class, ++ PROP_TITLE, ++ g_param_spec_string("title", ++ "Title", ++ "Title", ++ "", ++ G_PARAM_READABLE | ++ G_PARAM_WRITABLE | ++ G_PARAM_STATIC_STRINGS)); ++ + } + + void +Index: virt-viewer-0.4.1/src/virt-viewer.c +=================================================================== +--- virt-viewer-0.4.1.orig/src/virt-viewer.c 2011-09-16 06:08:59.000000000 -0500 ++++ virt-viewer-0.4.1/src/virt-viewer.c 2011-09-16 06:09:34.000000000 -0500 +@@ -49,7 +49,6 @@ + char *uri; + virConnectPtr conn; + char *domkey; +- char *domtitle; + gboolean withEvents; + gboolean waitvm; + gboolean reconnect; +@@ -414,8 +413,7 @@ + } + } + +- free(priv->domtitle); +- priv->domtitle = g_strdup(virDomainGetName(dom)); ++ g_object_set(app, "title", virDomainGetName(dom), NULL); + + virt_viewer_app_show_status(app, _("Checking guest domain status")); + if (virDomainGetInfo(dom, &info) < 0) { diff -Nru virt-viewer-0.4.1/debian/patches/series virt-viewer-0.4.1/debian/patches/series --- virt-viewer-0.4.1/debian/patches/series 1969-12-31 18:00:00.000000000 -0600 +++ virt-viewer-0.4.1/debian/patches/series 2011-09-16 06:08:48.000000000 -0500 @@ -0,0 +1,3 @@ +0001-initial-zoom.patch +0002-propagate-primary-window-zoom.patch +0003-set-window-title-with-domain-name.patch