summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/remote-viewer-main.c187
-rw-r--r--src/remote-viewer.c559
-rw-r--r--src/remote-viewer.h13
-rw-r--r--src/view/autoDrawer.c6
-rw-r--r--src/view/drawer.c2
-rw-r--r--src/view/ovBox.c6
-rw-r--r--src/virt-viewer-app.c1995
-rw-r--r--src/virt-viewer-app.h33
-rw-r--r--src/virt-viewer-auth.c344
-rw-r--r--src/virt-viewer-auth.h21
-rw-r--r--src/virt-viewer-display-spice.c183
-rw-r--r--src/virt-viewer-display-spice.h35
-rw-r--r--src/virt-viewer-display-vnc.c153
-rw-r--r--src/virt-viewer-display-vnc.h33
-rw-r--r--src/virt-viewer-display.c720
-rw-r--r--src/virt-viewer-display.h66
-rw-r--r--src/virt-viewer-events.c29
-rw-r--r--src/virt-viewer-events.h7
-rw-r--r--src/virt-viewer-main.c183
-rw-r--r--src/virt-viewer-notebook.c121
-rw-r--r--src/virt-viewer-notebook.h34
-rw-r--r--src/virt-viewer-session-spice.c493
-rw-r--r--src/virt-viewer-session-spice.h33
-rw-r--r--src/virt-viewer-session-vnc.c251
-rw-r--r--src/virt-viewer-session-vnc.h33
-rw-r--r--src/virt-viewer-session.c473
-rw-r--r--src/virt-viewer-session.h93
-rw-r--r--src/virt-viewer-util.c166
-rw-r--r--src/virt-viewer-util.h8
-rw-r--r--src/virt-viewer-window.c1121
-rw-r--r--src/virt-viewer-window.h34
-rw-r--r--src/virt-viewer.c903
-rw-r--r--src/virt-viewer.h30
33 files changed, 4198 insertions, 4170 deletions
diff --git a/src/remote-viewer-main.c b/src/remote-viewer-main.c
index fc491e9..9fecdb1 100644
--- a/src/remote-viewer-main.c
+++ b/src/remote-viewer-main.c
@@ -39,131 +39,130 @@
static void
remote_viewer_version(void)
{
- g_print(_("remote-viewer version %s\n"), VERSION);
- exit(0);
+ g_print(_("remote-viewer version %s\n"), VERSION);
+ exit(0);
}
int
main(int argc, char **argv)
{
- GOptionContext *context;
- GError *error = NULL;
- int ret = 1;
- int zoom = 100;
- gchar **args = NULL;
- gboolean verbose = FALSE;
- gboolean debug = FALSE;
- gboolean direct = FALSE;
- gboolean fullscreen = FALSE;
- RemoteViewer *viewer = NULL;
+ GOptionContext *context;
+ GError *error = NULL;
+ int ret = 1;
+ int zoom = 100;
+ gchar **args = NULL;
+ gboolean verbose = FALSE;
+ gboolean debug = FALSE;
+ gboolean direct = FALSE;
+ gboolean fullscreen = FALSE;
+ RemoteViewer *viewer = NULL;
#if HAVE_SPICE_GTK
- gboolean controller = FALSE;
+ gboolean controller = FALSE;
#endif
- VirtViewerApp *app;
- const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
- const GOptionEntry options [] = {
- { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
- remote_viewer_version, N_("Display version information"), NULL },
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- N_("Display verbose information"), NULL },
- { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
- N_("Direct connection with no automatic tunnels"), NULL },
- { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
- N_("Zoom level of window, in percentage"), "ZOOM" },
- { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
- N_("Display debugging information"), NULL },
- { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
- N_("Open in full screen mode"), NULL },
+ VirtViewerApp *app;
+ const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
+ const GOptionEntry options [] = {
+ { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
+ remote_viewer_version, N_("Display version information"), NULL },
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ N_("Display verbose information"), NULL },
+ { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
+ N_("Direct connection with no automatic tunnels"), NULL },
+ { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
+ N_("Zoom level of window, in percentage"), "ZOOM" },
+ { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
+ N_("Display debugging information"), NULL },
+ { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
+ N_("Open in full screen mode"), NULL },
#if HAVE_SPICE_GTK
- { "spice-controller", '\0', 0, G_OPTION_ARG_NONE, &controller,
- N_("Open connection using Spice controller communication"), NULL },
+ { "spice-controller", '\0', 0, G_OPTION_ARG_NONE, &controller,
+ N_("Open connection using Spice controller communication"), NULL },
#endif
- { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
- NULL, "URI" },
- { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
- };
-
- setlocale(LC_ALL, "");
- bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- textdomain(GETTEXT_PACKAGE);
-
- /* Setup command line options */
- context = g_option_context_new (_("- Remote viewer client"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
+ { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
+ NULL, "URI" },
+ { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
+ };
+
+ setlocale(LC_ALL, "");
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ /* Setup command line options */
+ context = g_option_context_new (_("- Remote viewer client"));
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_add_group (context, gtk_get_option_group (TRUE));
#ifdef HAVE_GTK_VNC
- g_option_context_add_group (context, vnc_display_get_option_group ());
+ g_option_context_add_group (context, vnc_display_get_option_group ());
#endif
#ifdef HAVE_SPICE_GTK
- g_option_context_add_group (context, spice_get_option_group ());
+ g_option_context_add_group (context, spice_get_option_group ());
#endif
- g_option_context_parse (context, &argc, &argv, &error);
- if (error) {
- g_printerr("%s\n%s\n",
- error->message,
- gettext(help_msg));
- g_error_free(error);
- goto cleanup;
- }
-
- g_option_context_free(context);
-
- if ((!args || (g_strv_length(args) != 1))
+ g_option_context_parse (context, &argc, &argv, &error);
+ if (error) {
+ g_printerr("%s\n%s\n",
+ error->message,
+ gettext(help_msg));
+ g_error_free(error);
+ goto cleanup;
+ }
+
+ g_option_context_free(context);
+
+ if ((!args || (g_strv_length(args) != 1))
#if HAVE_SPICE_GTK
- && !controller
+ && !controller
#endif
- ) {
- g_printerr(_("\nUsage: %s [OPTIONS] URI\n\n%s\n\n"), argv[0], help_msg);
- goto cleanup;
- }
+ ) {
+ g_printerr(_("\nUsage: %s [OPTIONS] URI\n\n%s\n\n"), argv[0], help_msg);
+ goto cleanup;
+ }
- if (zoom < 10 || zoom > 200) {
- g_printerr(_("Zoom level must be within 10-200\n"));
- goto cleanup;
- }
+ if (zoom < 10 || zoom > 200) {
+ g_printerr(_("Zoom level must be within 10-200\n"));
+ goto cleanup;
+ }
- virt_viewer_app_set_debug(debug);
+ virt_viewer_app_set_debug(debug);
#if HAVE_SPICE_GTK
- if (controller) {
- viewer = remote_viewer_new_with_controller(verbose);
- g_object_set(viewer, "guest-name", "defined by Spice controller", NULL);
- } else {
+ if (controller) {
+ viewer = remote_viewer_new_with_controller(verbose);
+ g_object_set(viewer, "guest-name", "defined by Spice controller", NULL);
+ } else {
#endif
- viewer = remote_viewer_new(args[0], verbose);
- g_object_set(viewer, "guest-name", args[0], NULL);
+ viewer = remote_viewer_new(args[0], verbose);
+ g_object_set(viewer, "guest-name", args[0], NULL);
#if HAVE_SPICE_GTK
- }
+ }
#endif
- if (viewer == NULL)
- goto cleanup;
+ if (viewer == NULL)
+ goto cleanup;
- app = VIRT_VIEWER_APP(viewer);
- g_object_set(app, "fullscreen", fullscreen, NULL);
- virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
- virt_viewer_app_set_direct(app, direct);
+ app = VIRT_VIEWER_APP(viewer);
+ g_object_set(app, "fullscreen", fullscreen, NULL);
+ virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
+ virt_viewer_app_set_direct(app, direct);
- if (!virt_viewer_app_start(app))
- goto cleanup;
+ if (!virt_viewer_app_start(app))
+ goto cleanup;
- gtk_main();
+ gtk_main();
- ret = 0;
+ ret = 0;
-cleanup:
- if (viewer)
- g_object_unref(viewer);
- g_strfreev(args);
+ cleanup:
+ if (viewer)
+ g_object_unref(viewer);
+ g_strfreev(args);
- return ret;
+ return ret;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/remote-viewer.c b/src/remote-viewer.c
index 6af8c78..83a0176 100644
--- a/src/remote-viewer.c
+++ b/src/remote-viewer.c
@@ -39,19 +39,19 @@
struct _RemoteViewerPrivate {
#ifdef HAVE_SPICE_GTK
- SpiceCtrlController *controller;
+ SpiceCtrlController *controller;
#endif
- GtkWidget *controller_menu;
+ GtkWidget *controller_menu;
};
G_DEFINE_TYPE (RemoteViewer, remote_viewer, VIRT_VIEWER_TYPE_APP)
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), REMOTE_VIEWER_TYPE, RemoteViewerPrivate))
+#define GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), REMOTE_VIEWER_TYPE, RemoteViewerPrivate))
#if HAVE_SPICE_GTK
enum {
- PROP_0,
- PROP_CONTROLLER,
+ PROP_0,
+ PROP_CONTROLLER,
};
#endif
@@ -64,49 +64,49 @@ static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *wi
#if HAVE_SPICE_GTK
static void
remote_viewer_get_property (GObject *object, guint property_id,
- GValue *value, GParamSpec *pspec)
+ GValue *value, GParamSpec *pspec)
{
- RemoteViewer *self = REMOTE_VIEWER(object);
- RemoteViewerPrivate *priv = self->priv;
-
- switch (property_id) {
- case PROP_CONTROLLER:
- g_value_set_object(value, priv->controller);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ RemoteViewer *self = REMOTE_VIEWER(object);
+ RemoteViewerPrivate *priv = self->priv;
+
+ switch (property_id) {
+ case PROP_CONTROLLER:
+ g_value_set_object(value, priv->controller);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
remote_viewer_set_property (GObject *object, guint property_id,
- const GValue *value, GParamSpec *pspec)
+ const GValue *value, GParamSpec *pspec)
{
- RemoteViewer *self = REMOTE_VIEWER(object);
- RemoteViewerPrivate *priv = self->priv;
-
- switch (property_id) {
- case PROP_CONTROLLER:
- g_return_if_fail(priv->controller == NULL);
- priv->controller = g_value_dup_object(value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ RemoteViewer *self = REMOTE_VIEWER(object);
+ RemoteViewerPrivate *priv = self->priv;
+
+ switch (property_id) {
+ case PROP_CONTROLLER:
+ g_return_if_fail(priv->controller == NULL);
+ priv->controller = g_value_dup_object(value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
remote_viewer_dispose (GObject *object)
{
- RemoteViewer *self = REMOTE_VIEWER(object);
- RemoteViewerPrivate *priv = self->priv;
+ RemoteViewer *self = REMOTE_VIEWER(object);
+ RemoteViewerPrivate *priv = self->priv;
- if (priv->controller) {
- g_object_unref(priv->controller);
- priv->controller = NULL;
- }
+ if (priv->controller) {
+ g_object_unref(priv->controller);
+ priv->controller = NULL;
+ }
- G_OBJECT_CLASS(remote_viewer_parent_class)->dispose (object);
+ G_OBJECT_CLASS(remote_viewer_parent_class)->dispose (object);
}
#endif
@@ -115,222 +115,222 @@ static void
remote_viewer_class_init (RemoteViewerClass *klass)
{
#if HAVE_SPICE_GTK
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
#endif
- VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
+ VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
- g_type_class_add_private (klass, sizeof (RemoteViewerPrivate));
+ g_type_class_add_private (klass, sizeof (RemoteViewerPrivate));
#if HAVE_SPICE_GTK
- object_class->get_property = remote_viewer_get_property;
- object_class->set_property = remote_viewer_set_property;
- object_class->dispose = remote_viewer_dispose;
+ object_class->get_property = remote_viewer_get_property;
+ object_class->set_property = remote_viewer_set_property;
+ object_class->dispose = remote_viewer_dispose;
#endif
- app_class->start = remote_viewer_start;
+ app_class->start = remote_viewer_start;
#if HAVE_SPICE_GTK
- app_class->activate = remote_viewer_activate;
+ app_class->activate = remote_viewer_activate;
#endif
- app_class->window_added = remote_viewer_window_added;
+ app_class->window_added = remote_viewer_window_added;
#if HAVE_SPICE_GTK
- g_object_class_install_property(object_class,
- PROP_CONTROLLER,
- g_param_spec_object("controller",
- "Controller",
- "Spice controller",
- SPICE_CTRL_TYPE_CONTROLLER,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property(object_class,
+ PROP_CONTROLLER,
+ g_param_spec_object("controller",
+ "Controller",
+ "Spice controller",
+ SPICE_CTRL_TYPE_CONTROLLER,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
#endif
}
static void
remote_viewer_init(RemoteViewer *self)
{
- self->priv = GET_PRIVATE(self);
+ self->priv = GET_PRIVATE(self);
}
RemoteViewer *
remote_viewer_new(const gchar *uri, gboolean verbose)
{
- return g_object_new(REMOTE_VIEWER_TYPE,
- "guri", uri,
- "verbose", verbose,
- NULL);
+ return g_object_new(REMOTE_VIEWER_TYPE,
+ "guri", uri,
+ "verbose", verbose,
+ NULL);
}
#if HAVE_SPICE_GTK
RemoteViewer *
remote_viewer_new_with_controller(gboolean verbose)
{
- RemoteViewer *self;
- SpiceCtrlController *ctrl = spice_ctrl_controller_new();
+ RemoteViewer *self;
+ SpiceCtrlController *ctrl = spice_ctrl_controller_new();
- self = g_object_new(REMOTE_VIEWER_TYPE,
- "controller", ctrl,
- "verbose", verbose,
- NULL);
- g_object_unref(ctrl);
+ self = g_object_new(REMOTE_VIEWER_TYPE,
+ "controller", ctrl,
+ "verbose", verbose,
+ NULL);
+ g_object_unref(ctrl);
- return self;
+ return self;
}
static void
spice_ctrl_do_connect(SpiceCtrlController *ctrl G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- if (virt_viewer_app_initial_connect(self) < 0) {
- virt_viewer_app_simple_message_dialog(self, _("Failed to initiate connection"));
- }
+ if (virt_viewer_app_initial_connect(self) < 0) {
+ virt_viewer_app_simple_message_dialog(self, _("Failed to initiate connection"));
+ }
}
static void
spice_ctrl_show(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self)
{
- virt_viewer_app_show_display(VIRT_VIEWER_APP(self));
+ virt_viewer_app_show_display(VIRT_VIEWER_APP(self));
}
static void
spice_ctrl_hide(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self)
{
- virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Display disabled by controller"));
+ virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Display disabled by controller"));
}
static void
spice_menuitem_activate_cb(GtkMenuItem *mi, RemoteViewer *self)
{
- SpiceCtrlMenuItem *menuitem = g_object_get_data(G_OBJECT(mi), "spice-menuitem");
+ SpiceCtrlMenuItem *menuitem = g_object_get_data(G_OBJECT(mi), "spice-menuitem");
- g_return_if_fail(menuitem != NULL);
- if (gtk_menu_item_get_submenu(mi))
- return;
+ g_return_if_fail(menuitem != NULL);
+ if (gtk_menu_item_get_submenu(mi))
+ return;
- spice_ctrl_controller_menu_item_click_msg(self->priv->controller, menuitem->id);
+ spice_ctrl_controller_menu_item_click_msg(self->priv->controller, menuitem->id);
}
static GtkWidget *
ctrlmenu_to_gtkmenu (RemoteViewer *self, SpiceCtrlMenu *ctrlmenu)
{
- GList *l;
- GtkWidget *menu = gtk_menu_new();
- guint n = 0;
-
- for (l = ctrlmenu->items; l != NULL; l = l->next) {
- SpiceCtrlMenuItem *menuitem = l->data;
- GtkWidget *item;
- char *s;
- if (menuitem->text == NULL) {
- g_warn_if_reached();
- continue;
- }
-
- for (s = menuitem->text; *s; s++)
- if (*s == '&')
- *s = '_';
-
- if (g_str_equal(menuitem->text, "-")){
- item = gtk_separator_menu_item_new();
- } else {
- item = gtk_menu_item_new_with_mnemonic(menuitem->text);
- }
-
- g_object_set_data_full(G_OBJECT(item), "spice-menuitem",
- g_object_ref(menuitem), g_object_unref);
- g_signal_connect(item, "activate", G_CALLBACK(spice_menuitem_activate_cb), self);
- gtk_menu_attach(GTK_MENU (menu), item, 0, 1, n, n + 1);
- n += 1;
-
- if (menuitem->submenu) {
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
- ctrlmenu_to_gtkmenu(self, menuitem->submenu));
- }
- }
-
- if (n == 0) {
- g_object_ref_sink(menu);
- g_object_unref(menu);
- menu = NULL;
- }
-
- gtk_widget_show_all(menu);
- return menu;
+ GList *l;
+ GtkWidget *menu = gtk_menu_new();
+ guint n = 0;
+
+ for (l = ctrlmenu->items; l != NULL; l = l->next) {
+ SpiceCtrlMenuItem *menuitem = l->data;
+ GtkWidget *item;
+ char *s;
+ if (menuitem->text == NULL) {
+ g_warn_if_reached();
+ continue;
+ }
+
+ for (s = menuitem->text; *s; s++)
+ if (*s == '&')
+ *s = '_';
+
+ if (g_str_equal(menuitem->text, "-")){
+ item = gtk_separator_menu_item_new();
+ } else {
+ item = gtk_menu_item_new_with_mnemonic(menuitem->text);
+ }
+
+ g_object_set_data_full(G_OBJECT(item), "spice-menuitem",
+ g_object_ref(menuitem), g_object_unref);
+ g_signal_connect(item, "activate", G_CALLBACK(spice_menuitem_activate_cb), self);
+ gtk_menu_attach(GTK_MENU (menu), item, 0, 1, n, n + 1);
+ n += 1;
+
+ if (menuitem->submenu) {
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
+ ctrlmenu_to_gtkmenu(self, menuitem->submenu));
+ }
+ }
+
+ if (n == 0) {
+ g_object_ref_sink(menu);
+ g_object_unref(menu);
+ menu = NULL;
+ }
+
+ gtk_widget_show_all(menu);
+ return menu;
}
static void
spice_menu_set_visible(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- gboolean visible = GPOINTER_TO_INT(user_data);
- GtkWidget *menu = g_object_get_data(value, "spice-menu");
+ gboolean visible = GPOINTER_TO_INT(user_data);
+ GtkWidget *menu = g_object_get_data(value, "spice-menu");
- gtk_widget_set_visible(menu, visible);
+ gtk_widget_set_visible(menu, visible);
}
static void
remote_viewer_window_spice_menu_set_visible(RemoteViewer *self,
- gboolean visible)
+ gboolean visible)
{
- GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
+ GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
- g_hash_table_foreach(windows, spice_menu_set_visible, GINT_TO_POINTER(visible));
+ g_hash_table_foreach(windows, spice_menu_set_visible, GINT_TO_POINTER(visible));
}
static void
spice_menu_update(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- RemoteViewer *self = REMOTE_VIEWER(user_data);
- GtkWidget *menuitem = g_object_get_data(value, "spice-menu");
- SpiceCtrlMenu *menu;
+ RemoteViewer *self = REMOTE_VIEWER(user_data);
+ GtkWidget *menuitem = g_object_get_data(value, "spice-menu");
+ SpiceCtrlMenu *menu;
- g_object_get(self->priv->controller, "menu", &menu, NULL);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), ctrlmenu_to_gtkmenu(self, menu));
- g_object_unref(menu);
+ g_object_get(self->priv->controller, "menu", &menu, NULL);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), ctrlmenu_to_gtkmenu(self, menu));
+ g_object_unref(menu);
}
static void
spice_ctrl_menu_updated(RemoteViewer *self,
- SpiceCtrlMenu *menu)
+ SpiceCtrlMenu *menu)
{
- GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
- RemoteViewerPrivate *priv = self->priv;
- gboolean visible;
+ GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
+ RemoteViewerPrivate *priv = self->priv;
+ gboolean visible;
- DEBUG_LOG("Spice controller menu updated");
+ DEBUG_LOG("Spice controller menu updated");
- if (priv->controller_menu != NULL) {
- g_object_unref (priv->controller_menu);
- priv->controller_menu = NULL;
- }
+ if (priv->controller_menu != NULL) {
+ g_object_unref (priv->controller_menu);
+ priv->controller_menu = NULL;
+ }
- if (menu && g_list_length(menu->items) > 0) {
- priv->controller_menu = ctrlmenu_to_gtkmenu(self, menu);
- g_hash_table_foreach(windows, spice_menu_update, self);
- }
+ if (menu && g_list_length(menu->items) > 0) {
+ priv->controller_menu = ctrlmenu_to_gtkmenu(self, menu);
+ g_hash_table_foreach(windows, spice_menu_update, self);
+ }
- visible = priv->controller_menu != NULL;
+ visible = priv->controller_menu != NULL;
- remote_viewer_window_spice_menu_set_visible(self, visible);
+ remote_viewer_window_spice_menu_set_visible(self, visible);
}
static SpiceSession *
remote_viewer_get_spice_session(RemoteViewer *self)
{
- VirtViewerSession *vsession = NULL;
- SpiceSession *session = NULL;
+ VirtViewerSession *vsession = NULL;
+ SpiceSession *session = NULL;
- g_object_get(self, "session", &vsession, NULL);
- g_return_val_if_fail(vsession != NULL, NULL);
+ g_object_get(self, "session", &vsession, NULL);
+ g_return_val_if_fail(vsession != NULL, NULL);
- g_object_get(vsession, "spice-session", &session, NULL);
+ g_object_get(vsession, "spice-session", &session, NULL);
- g_object_unref(vsession);
+ g_object_unref(vsession);
- return session;
+ return session;
}
#ifndef G_VALUE_INIT /* see bug https://bugzilla.gnome.org/show_bug.cgi?id=654793 */
@@ -339,166 +339,165 @@ remote_viewer_get_spice_session(RemoteViewer *self)
static void
spice_ctrl_notified(SpiceCtrlController *ctrl,
- GParamSpec *pspec,
- RemoteViewer *self)
+ GParamSpec *pspec,
+ RemoteViewer *self)
{
- SpiceSession *session = remote_viewer_get_spice_session(self);
- GValue value = G_VALUE_INIT;
- VirtViewerApp *app = VIRT_VIEWER_APP(self);
-
- g_return_if_fail(session != NULL);
-
- g_value_init(&value, pspec->value_type);
- g_object_get_property(G_OBJECT(ctrl), pspec->name, &value);
-
- if (g_str_equal(pspec->name, "host") ||
- g_str_equal(pspec->name, "port") ||
- g_str_equal(pspec->name, "password") ||
- g_str_equal(pspec->name, "ca-file")) {
- g_object_set_property(G_OBJECT(session), pspec->name, &value);
- } else if (g_str_equal(pspec->name, "sport")) {
- g_object_set_property(G_OBJECT(session), "tls-port", &value);
- } else if (g_str_equal(pspec->name, "tls-ciphers")) {
- g_object_set_property(G_OBJECT(session), "ciphers", &value);
- } else if (g_str_equal(pspec->name, "host-subject")) {
- g_object_set_property(G_OBJECT(session), "cert-subject", &value);
- } else if (g_str_equal(pspec->name, "title")) {
- g_object_set_property(G_OBJECT(app), "title", &value);
- } else if (g_str_equal(pspec->name, "display-flags")) {
- guint flags = g_value_get_uint(&value);
- gboolean fullscreen = flags & CONTROLLER_SET_FULL_SCREEN;
- gboolean auto_res = flags & CONTROLLER_AUTO_DISPLAY_RES;
- g_object_set(G_OBJECT(self), "fullscreen", fullscreen, NULL);
- g_debug("unimplemented resize-guest %d", auto_res);
- /* g_object_set(G_OBJECT(self), "resize-guest", auto_res, NULL); */
- } else if (g_str_equal(pspec->name, "menu")) {
- spice_ctrl_menu_updated(self, g_value_get_object(&value));
- } else {
- gchar *content = g_strdup_value_contents(&value);
-
- g_debug("unimplemented property: %s=%s", pspec->name, content);
- g_free(content);
- }
-
- g_object_unref(session);
- g_value_unset(&value);
+ SpiceSession *session = remote_viewer_get_spice_session(self);
+ GValue value = G_VALUE_INIT;
+ VirtViewerApp *app = VIRT_VIEWER_APP(self);
+
+ g_return_if_fail(session != NULL);
+
+ g_value_init(&value, pspec->value_type);
+ g_object_get_property(G_OBJECT(ctrl), pspec->name, &value);
+
+ if (g_str_equal(pspec->name, "host") ||
+ g_str_equal(pspec->name, "port") ||
+ g_str_equal(pspec->name, "password") ||
+ g_str_equal(pspec->name, "ca-file")) {
+ g_object_set_property(G_OBJECT(session), pspec->name, &value);
+ } else if (g_str_equal(pspec->name, "sport")) {
+ g_object_set_property(G_OBJECT(session), "tls-port", &value);
+ } else if (g_str_equal(pspec->name, "tls-ciphers")) {
+ g_object_set_property(G_OBJECT(session), "ciphers", &value);
+ } else if (g_str_equal(pspec->name, "host-subject")) {
+ g_object_set_property(G_OBJECT(session), "cert-subject", &value);
+ } else if (g_str_equal(pspec->name, "title")) {
+ g_object_set_property(G_OBJECT(app), "title", &value);
+ } else if (g_str_equal(pspec->name, "display-flags")) {
+ guint flags = g_value_get_uint(&value);
+ gboolean fullscreen = flags & CONTROLLER_SET_FULL_SCREEN;
+ gboolean auto_res = flags & CONTROLLER_AUTO_DISPLAY_RES;
+ g_object_set(G_OBJECT(self), "fullscreen", fullscreen, NULL);
+ g_debug("unimplemented resize-guest %d", auto_res);
+ /* g_object_set(G_OBJECT(self), "resize-guest", auto_res, NULL); */
+ } else if (g_str_equal(pspec->name, "menu")) {
+ spice_ctrl_menu_updated(self, g_value_get_object(&value));
+ } else {
+ gchar *content = g_strdup_value_contents(&value);
+
+ g_debug("unimplemented property: %s=%s", pspec->name, content);
+ g_free(content);
+ }
+
+ g_object_unref(session);
+ g_value_unset(&value);
}
static void
spice_ctrl_listen_async_cb(GObject *object,
- GAsyncResult *res,
- gpointer user_data)
+ GAsyncResult *res,
+ gpointer user_data)
{
- GError *error = NULL;
+ GError *error = NULL;
- spice_ctrl_controller_listen_finish(SPICE_CTRL_CONTROLLER(object), res, &error);
+ spice_ctrl_controller_listen_finish(SPICE_CTRL_CONTROLLER(object), res, &error);
- if (error != NULL) {
- virt_viewer_app_simple_message_dialog(VIRT_VIEWER_APP(user_data),
- _("Controller connection failed: %s"),
- error->message);
- g_clear_error(&error);
- exit(1); /* TODO: make start async? */
- }
+ if (error != NULL) {
+ virt_viewer_app_simple_message_dialog(VIRT_VIEWER_APP(user_data),
+ _("Controller connection failed: %s"),
+ error->message);
+ g_clear_error(&error);
+ exit(1); /* TODO: make start async? */
+ }
}
static int
remote_viewer_activate(VirtViewerApp *app)
{
- g_return_val_if_fail(REMOTE_VIEWER_IS(app), -1);
- RemoteViewer *self = REMOTE_VIEWER(app);
- int ret = -1;
-
- if (self->priv->controller) {
- SpiceSession *session = remote_viewer_get_spice_session(self);
- ret = spice_session_connect(session);
- g_object_unref(session);
- } else {
- ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->activate(app);
- }
-
- return ret;
+ g_return_val_if_fail(REMOTE_VIEWER_IS(app), -1);
+ RemoteViewer *self = REMOTE_VIEWER(app);
+ int ret = -1;
+
+ if (self->priv->controller) {
+ SpiceSession *session = remote_viewer_get_spice_session(self);
+ ret = spice_session_connect(session);
+ g_object_unref(session);
+ } else {
+ ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->activate(app);
+ }
+
+ return ret;
}
#endif
static void
remote_viewer_window_added(VirtViewerApp *self G_GNUC_UNUSED,
- VirtViewerWindow *win)
+ VirtViewerWindow *win)
{
- GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu"));
- GtkWidget *spice = gtk_menu_item_new_with_label("Spice");
+ GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu"));
+ GtkWidget *spice = gtk_menu_item_new_with_label("Spice");
- gtk_menu_shell_append(shell, spice);
- g_object_set_data(G_OBJECT(win), "spice-menu", spice);
+ gtk_menu_shell_append(shell, spice);
+ g_object_set_data(G_OBJECT(win), "spice-menu", spice);
}
static gboolean
remote_viewer_start(VirtViewerApp *app)
{
- g_return_val_if_fail(REMOTE_VIEWER_IS(app), FALSE);
+ g_return_val_if_fail(REMOTE_VIEWER_IS(app), FALSE);
#if HAVE_SPICE_GTK
- RemoteViewer *self = REMOTE_VIEWER(app);
- RemoteViewerPrivate *priv = self->priv;
+ RemoteViewer *self = REMOTE_VIEWER(app);
+ RemoteViewerPrivate *priv = self->priv;
#endif
- gboolean ret = FALSE;
- gchar *guri = NULL;
- gchar *type = NULL;
+ gboolean ret = FALSE;
+ gchar *guri = NULL;
+ gchar *type = NULL;
#if HAVE_SPICE_GTK
- if (priv->controller) {
- if (virt_viewer_app_create_session(app, "spice") < 0) {
- virt_viewer_app_simple_message_dialog(app, _("Couldn't create a Spice session"));
- goto cleanup;
- }
-
- g_signal_connect(priv->controller, "notify", G_CALLBACK(spice_ctrl_notified), self);
- g_signal_connect(priv->controller, "do_connect", G_CALLBACK(spice_ctrl_do_connect), self);
- g_signal_connect(priv->controller, "show", G_CALLBACK(spice_ctrl_show), self);
- g_signal_connect(priv->controller, "hide", G_CALLBACK(spice_ctrl_hide), self);
-
- spice_ctrl_controller_listen(priv->controller, NULL, spice_ctrl_listen_async_cb, self);
- virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Setting up Spice session..."));
- } else {
+ if (priv->controller) {
+ if (virt_viewer_app_create_session(app, "spice") < 0) {
+ virt_viewer_app_simple_message_dialog(app, _("Couldn't create a Spice session"));
+ goto cleanup;
+ }
+
+ g_signal_connect(priv->controller, "notify", G_CALLBACK(spice_ctrl_notified), self);
+ g_signal_connect(priv->controller, "do_connect", G_CALLBACK(spice_ctrl_do_connect), self);
+ g_signal_connect(priv->controller, "show", G_CALLBACK(spice_ctrl_show), self);
+ g_signal_connect(priv->controller, "hide", G_CALLBACK(spice_ctrl_hide), self);
+
+ spice_ctrl_controller_listen(priv->controller, NULL, spice_ctrl_listen_async_cb, self);
+ virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Setting up Spice session..."));
+ } else {
#endif
- g_object_get(app, "guri", &guri, NULL);
- g_return_val_if_fail(guri != NULL, FALSE);
-
- DEBUG_LOG("Opening display to %s", guri);
- g_object_set(app, "title", guri, NULL);
-
- if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0) {
- virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI"));
- goto cleanup;
- }
-
- if (virt_viewer_app_create_session(app, type) < 0) {
- virt_viewer_app_simple_message_dialog(app, _("Couldn't create a session for this type: %s"), type);
- goto cleanup;
- }
-
- if (virt_viewer_app_initial_connect(app) < 0) {
- virt_viewer_app_simple_message_dialog(app, _("Failed to initiate connection"));
- goto cleanup;
- }
+ g_object_get(app, "guri", &guri, NULL);
+ g_return_val_if_fail(guri != NULL, FALSE);
+
+ DEBUG_LOG("Opening display to %s", guri);
+ g_object_set(app, "title", guri, NULL);
+
+ if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0) {
+ virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI"));
+ goto cleanup;
+ }
+
+ if (virt_viewer_app_create_session(app, type) < 0) {
+ virt_viewer_app_simple_message_dialog(app, _("Couldn't create a session for this type: %s"), type);
+ goto cleanup;
+ }
+
+ if (virt_viewer_app_initial_connect(app) < 0) {
+ virt_viewer_app_simple_message_dialog(app, _("Failed to initiate connection"));
+ goto cleanup;
+ }
#if HAVE_SPICE_GTK
- }
+ }
#endif
- ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app);
+ ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app);
-cleanup:
- g_free(guri);
- g_free(type);
- return ret;
+ cleanup:
+ g_free(guri);
+ g_free(type);
+ return ret;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/remote-viewer.h b/src/remote-viewer.h
index 3d02315..444818f 100644
--- a/src/remote-viewer.h
+++ b/src/remote-viewer.h
@@ -38,12 +38,12 @@ G_BEGIN_DECLS
typedef struct _RemoteViewerPrivate RemoteViewerPrivate;
typedef struct {
- VirtViewerApp parent;
- RemoteViewerPrivate *priv;
+ VirtViewerApp parent;
+ RemoteViewerPrivate *priv;
} RemoteViewer;
typedef struct {
- VirtViewerAppClass parent_class;
+ VirtViewerAppClass parent_class;
} RemoteViewerClass;
GType remote_viewer_get_type (void);
@@ -54,3 +54,10 @@ RemoteViewer* remote_viewer_new_with_controller(gboolean verbose);
G_END_DECLS
#endif /* REMOTE_VIEWER_H */
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/view/autoDrawer.c b/src/view/autoDrawer.c
index 7242a02..cf9d2c4 100644
--- a/src/view/autoDrawer.c
+++ b/src/view/autoDrawer.c
@@ -257,7 +257,7 @@ ViewAutoDrawerUpdate(ViewAutoDrawer *that, // IN
}
#else
if (window->group && window->group->grabs) {
- grabbed = GTK_WIDGET(window->group->grabs->data);
+ grabbed = GTK_WIDGET(window->group->grabs->data);
}
#endif
if (!grabbed) {
@@ -440,7 +440,7 @@ ViewAutoDrawerOnSetFocus(GtkWindow *window G_GNUC_UNUSED, // IN
static void
ViewAutoDrawerOnHierarchyChanged(ViewAutoDrawer *that, // IN
- GtkWidget *oldToplevel) // IN
+ GtkWidget *oldToplevel) // IN
{
GtkWidget *newToplevel = gtk_widget_get_toplevel(GTK_WIDGET(that));
@@ -689,7 +689,7 @@ ViewAutoDrawer_GetType(void)
sizeof (ViewAutoDrawer),
0, /* n_preallocs */
(GInstanceInitFunc)ViewAutoDrawerInit,
- NULL,
+ NULL,
};
type = g_type_register_static(VIEW_TYPE_DRAWER, "ViewAutoDrawer", &info, 0);
diff --git a/src/view/drawer.c b/src/view/drawer.c
index 989b5ca..c74b902 100644
--- a/src/view/drawer.c
+++ b/src/view/drawer.c
@@ -175,7 +175,7 @@ ViewDrawer_GetType(void)
sizeof (ViewDrawer),
0, /* n_preallocs */
(GInstanceInitFunc)ViewDrawerInit,
- NULL
+ NULL
};
type = g_type_register_static(VIEW_TYPE_OV_BOX, "ViewDrawer", &info, 0);
diff --git a/src/view/ovBox.c b/src/view/ovBox.c
index 1d6733f..e815f1b 100644
--- a/src/view/ovBox.c
+++ b/src/view/ovBox.c
@@ -76,9 +76,9 @@
#include "ovBox.h"
#if ! GTK_CHECK_VERSION(3, 0, 0)
-#define gtk_widget_set_realized(widget, val) \
+#define gtk_widget_set_realized(widget, val) \
GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED)
-#define gtk_widget_get_realized(widget) \
+#define gtk_widget_get_realized(widget) \
GTK_WIDGET_REALIZED(widget)
#endif
@@ -763,7 +763,7 @@ ViewOvBox_GetType(void)
sizeof (ViewOvBox),
0, /* n_preallocs */
(GInstanceInitFunc)ViewOvBoxInit,
- NULL,
+ NULL,
};
type = g_type_register_static(GTK_TYPE_BOX, "ViewOvBox", &info, 0);
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index f14e46b..6f532b4 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -70,91 +70,91 @@ void virt_viewer_app_about_delete(GtkWidget *dialog, void *dummy, VirtViewerApp
/* Internal methods */
static void virt_viewer_app_connected(VirtViewerSession *session,
- VirtViewerApp *self);
+ VirtViewerApp *self);
static void virt_viewer_app_initialized(VirtViewerSession *session,
- VirtViewerApp *self);
+ VirtViewerApp *self);
static void virt_viewer_app_disconnected(VirtViewerSession *session,
- VirtViewerApp *self);
+ VirtViewerApp *self);
static void virt_viewer_app_auth_refused(VirtViewerSession *session,
- const char *msg,
- VirtViewerApp *self);
+ const char *msg,
+ VirtViewerApp *self);
static void virt_viewer_app_auth_failed(VirtViewerSession *session,
- const char *msg,
- VirtViewerApp *self);
+ const char *msg,
+ VirtViewerApp *self);
static void virt_viewer_app_usb_failed(VirtViewerSession *session,
- const char *msg,
- VirtViewerApp *self);
+ const char *msg,
+ VirtViewerApp *self);
static void virt_viewer_app_server_cut_text(VirtViewerSession *session,
- const gchar *text,
- VirtViewerApp *self);
+ const gchar *text,
+ VirtViewerApp *self);
static void virt_viewer_app_bell(VirtViewerSession *session,
- VirtViewerApp *self);
+ VirtViewerApp *self);
static void virt_viewer_app_cancelled(VirtViewerSession *session,
- VirtViewerApp *self);
+ VirtViewerApp *self);
static void virt_viewer_app_channel_open(VirtViewerSession *session,
- VirtViewerSessionChannel *channel,
- VirtViewerApp *self);
+ VirtViewerSessionChannel *channel,
+ VirtViewerApp *self);
static void virt_viewer_app_update_pretty_address(VirtViewerApp *self);
static void virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen);
static void virt_viewer_app_update_menu_displays(VirtViewerApp *self);
struct _VirtViewerAppPrivate {
- VirtViewerWindow *main_window;
- GtkWidget *main_notebook;
- GtkWidget *container;
- GHashTable *windows;
- gchar *clipboard;
-
- gboolean direct;
- gboolean verbose;
- gboolean authretry;
- gboolean started;
- gboolean fullscreen;
- gboolean attach;
-
- VirtViewerSession *session;
- gboolean active;
- gboolean connected;
- gboolean cancelled;
- guint reconnect_poll; /* source id */
- char *unixsock;
- char *guri; /* prefered over ghost:gport */
- char *ghost;
- char *gport;
- char *host; /* ssh */
- int port;/* ssh */
- char *user; /* ssh */
- char *transport;
- char *pretty_address;
- gchar *guest_name;
- gboolean grabbed;
- char *title;
+ VirtViewerWindow *main_window;
+ GtkWidget *main_notebook;
+ GtkWidget *container;
+ GHashTable *windows;
+ gchar *clipboard;
+
+ gboolean direct;
+ gboolean verbose;
+ gboolean authretry;
+ gboolean started;
+ gboolean fullscreen;
+ gboolean attach;
+
+ VirtViewerSession *session;
+ gboolean active;
+ gboolean connected;
+ gboolean cancelled;
+ guint reconnect_poll; /* source id */
+ char *unixsock;
+ char *guri; /* prefered over ghost:gport */
+ char *ghost;
+ char *gport;
+ char *host; /* ssh */
+ int port;/* ssh */
+ char *user; /* ssh */
+ char *transport;
+ char *pretty_address;
+ gchar *guest_name;
+ gboolean grabbed;
+ char *title;
};
G_DEFINE_ABSTRACT_TYPE(VirtViewerApp, virt_viewer_app, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate))
+#define GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate))
enum {
- PROP_0,
- PROP_VERBOSE,
- PROP_CONTAINER,
- PROP_SESSION,
- PROP_GUEST_NAME,
- PROP_GURI,
- PROP_FULLSCREEN,
- PROP_TITLE,
+ PROP_0,
+ PROP_VERBOSE,
+ PROP_CONTAINER,
+ PROP_SESSION,
+ PROP_GUEST_NAME,
+ PROP_GURI,
+ PROP_FULLSCREEN,
+ PROP_TITLE,
};
enum {
- SIGNAL_WINDOW_ADDED,
- SIGNAL_WINDOW_REMOVED,
- SIGNAL_LAST,
+ SIGNAL_WINDOW_ADDED,
+ SIGNAL_WINDOW_REMOVED,
+ SIGNAL_LAST,
};
static guint signals[SIGNAL_LAST];
@@ -162,135 +162,135 @@ static guint signals[SIGNAL_LAST];
void
virt_viewer_app_set_debug(gboolean debug)
{
- doDebug = debug;
+ doDebug = debug;
}
void
virt_viewer_app_simple_message_dialog(VirtViewerApp *self,
- const char *fmt, ...)
+ const char *fmt, ...)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window));
- GtkWidget *dialog;
- char *msg;
- va_list vargs;
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window));
+ GtkWidget *dialog;
+ char *msg;
+ va_list vargs;
- va_start(vargs, fmt);
+ va_start(vargs, fmt);
- msg = g_strdup_vprintf(fmt, vargs);
+ msg = g_strdup_vprintf(fmt, vargs);
- va_end(vargs);
+ va_end(vargs);
- dialog = gtk_message_dialog_new(window,
- GTK_DIALOG_MODAL |
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- "%s",
- msg);
+ dialog = gtk_message_dialog_new(window,
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ "%s",
+ msg);
- gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy(dialog);
- g_free(msg);
+ g_free(msg);
}
void
virt_viewer_app_quit(VirtViewerApp *self)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- VirtViewerAppPrivate *priv = self->priv;
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ VirtViewerAppPrivate *priv = self->priv;
- if (priv->session)
- virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
- gtk_main_quit();
+ if (priv->session)
+ virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
+ gtk_main_quit();
}
static void count_window_visible(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value));
- guint *n = (guint*)user_data;
+ GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value));
+ guint *n = (guint*)user_data;
- if (gtk_widget_get_visible(GTK_WIDGET(win)))
- *n += 1;
+ if (gtk_widget_get_visible(GTK_WIDGET(win)))
+ *n += 1;
}
static guint
virt_viewer_app_get_n_windows_visible(VirtViewerApp *self)
{
- guint n = 0;
- g_hash_table_foreach(self->priv->windows, count_window_visible, &n);
- return n;
+ guint n = 0;
+ g_hash_table_foreach(self->priv->windows, count_window_visible, &n);
+ return n;
}
static guint
virt_viewer_app_get_n_windows(VirtViewerApp *self)
{
- return g_hash_table_size(self->priv->windows);
+ return g_hash_table_size(self->priv->windows);
}
gboolean
virt_viewer_app_window_set_visible(VirtViewerApp *self,
- VirtViewerWindow *vwin,
- gboolean visible)
-{
- GtkWidget *window;
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
- g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(vwin), FALSE);
-
- window = GTK_WIDGET(virt_viewer_window_get_window(vwin));
- if (visible) {
- gtk_widget_show(window);
- return TRUE;
- } else {
- if (virt_viewer_app_get_n_windows_visible(self) > 1) {
- gtk_widget_hide(window);
- return FALSE;
- } else if (virt_viewer_app_get_n_windows(self) > 1) {
- GtkWidget *dialog =
- gtk_message_dialog_new (GTK_WINDOW(window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_OK_CANCEL,
- _("This is the last visible display. Do you want to quit?"));
- gint result = gtk_dialog_run (GTK_DIALOG (dialog));
- switch (result) {
- case GTK_RESPONSE_OK:
- virt_viewer_app_quit(self);
- break;
- default:
- break;
- }
- gtk_widget_destroy(dialog);
- return FALSE;
- } else {
- virt_viewer_app_quit(self);
- return FALSE;
- }
- }
-
- g_warn_if_reached();
- return FALSE;
+ VirtViewerWindow *vwin,
+ gboolean visible)
+{
+ GtkWidget *window;
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(vwin), FALSE);
+
+ window = GTK_WIDGET(virt_viewer_window_get_window(vwin));
+ if (visible) {
+ gtk_widget_show(window);
+ return TRUE;
+ } else {
+ if (virt_viewer_app_get_n_windows_visible(self) > 1) {
+ gtk_widget_hide(window);
+ return FALSE;
+ } else if (virt_viewer_app_get_n_windows(self) > 1) {
+ GtkWidget *dialog =
+ gtk_message_dialog_new (GTK_WINDOW(window),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_OK_CANCEL,
+ _("This is the last visible display. Do you want to quit?"));
+ gint result = gtk_dialog_run (GTK_DIALOG (dialog));
+ switch (result) {
+ case GTK_RESPONSE_OK:
+ virt_viewer_app_quit(self);
+ break;
+ default:
+ break;
+ }
+ gtk_widget_destroy(dialog);
+ return FALSE;
+ } else {
+ virt_viewer_app_quit(self);
+ return FALSE;
+ }
+ }
+
+ g_warn_if_reached();
+ return FALSE;
}
G_MODULE_EXPORT void
virt_viewer_app_about_close(GtkWidget *dialog,
- VirtViewerApp *self G_GNUC_UNUSED)
+ VirtViewerApp *self G_GNUC_UNUSED)
{
- gtk_widget_hide(dialog);
- gtk_widget_destroy(dialog);
+ gtk_widget_hide(dialog);
+ gtk_widget_destroy(dialog);
}
G_MODULE_EXPORT void
virt_viewer_app_about_delete(GtkWidget *dialog,
- void *dummy G_GNUC_UNUSED,
- VirtViewerApp *self G_GNUC_UNUSED)
+ void *dummy G_GNUC_UNUSED,
+ VirtViewerApp *self G_GNUC_UNUSED)
{
- gtk_widget_hide(dialog);
- gtk_widget_destroy(dialog);
+ gtk_widget_hide(dialog);
+ gtk_widget_destroy(dialog);
}
#if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
@@ -298,1350 +298,1349 @@ virt_viewer_app_about_delete(GtkWidget *dialog,
static int
virt_viewer_app_open_tunnel(const char **cmd)
{
- int fd[2];
- pid_t pid;
+ int fd[2];
+ pid_t pid;
- if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0)
- return -1;
+ if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0)
+ return -1;
- pid = fork();
- if (pid == -1) {
- close(fd[0]);
- close(fd[1]);
- return -1;
- }
+ pid = fork();
+ if (pid == -1) {
+ close(fd[0]);
+ close(fd[1]);
+ return -1;
+ }
- if (pid == 0) { /* child */
- close(fd[0]);
- close(0);
- close(1);
- if (dup(fd[1]) < 0)
- _exit(1);
- if (dup(fd[1]) < 0)
- _exit(1);
- close(fd[1]);
- execvp("ssh", (char *const*)cmd);
- _exit(1);
- }
- close(fd[1]);
- return fd[0];
+ if (pid == 0) { /* child */
+ close(fd[0]);
+ close(0);
+ close(1);
+ if (dup(fd[1]) < 0)
+ _exit(1);
+ if (dup(fd[1]) < 0)
+ _exit(1);
+ close(fd[1]);
+ execvp("ssh", (char *const*)cmd);
+ _exit(1);
+ }
+ close(fd[1]);
+ return fd[0];
}
static int
virt_viewer_app_open_tunnel_ssh(const char *sshhost,
- int sshport,
- const char *sshuser,
- const char *host,
- const char *port,
- const char *unixsock)
-{
- const char *cmd[10];
- char portstr[50];
- int n = 0;
-
- cmd[n++] = "ssh";
- if (sshport) {
- cmd[n++] = "-p";
- sprintf(portstr, "%d", sshport);
- cmd[n++] = portstr;
- }
- if (sshuser) {
- cmd[n++] = "-l";
- cmd[n++] = sshuser;
- }
- cmd[n++] = sshhost;
- cmd[n++] = "nc";
- if (port) {
- cmd[n++] = host;
- cmd[n++] = port;
- } else {
- cmd[n++] = "-U";
- cmd[n++] = unixsock;
- }
- cmd[n++] = NULL;
-
- return virt_viewer_app_open_tunnel(cmd);
+ int sshport,
+ const char *sshuser,
+ const char *host,
+ const char *port,
+ const char *unixsock)
+{
+ const char *cmd[10];
+ char portstr[50];
+ int n = 0;
+
+ cmd[n++] = "ssh";
+ if (sshport) {
+ cmd[n++] = "-p";
+ sprintf(portstr, "%d", sshport);
+ cmd[n++] = portstr;
+ }
+ if (sshuser) {
+ cmd[n++] = "-l";
+ cmd[n++] = sshuser;
+ }
+ cmd[n++] = sshhost;
+ cmd[n++] = "nc";
+ if (port) {
+ cmd[n++] = host;
+ cmd[n++] = port;
+ } else {
+ cmd[n++] = "-U";
+ cmd[n++] = unixsock;
+ }
+ cmd[n++] = NULL;
+
+ return virt_viewer_app_open_tunnel(cmd);
}
static int
virt_viewer_app_open_unix_sock(const char *unixsock)
{
- struct sockaddr_un addr;
- int fd;
+ struct sockaddr_un addr;
+ int fd;
- memset(&addr, 0, sizeof addr);
- addr.sun_family = AF_UNIX;
- strcpy(addr.sun_path, unixsock);
+ memset(&addr, 0, sizeof addr);
+ addr.sun_family = AF_UNIX;
+ strcpy(addr.sun_path, unixsock);
- if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
- return -1;
+ if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
+ return -1;
- if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) {
- close(fd);
- return -1;
- }
+ if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) {
+ close(fd);
+ return -1;
+ }
- return fd;
+ return fd;
}
#endif /* defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) */
void
virt_viewer_app_trace(VirtViewerApp *self,
- const char *fmt, ...)
+ const char *fmt, ...)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- va_list ap;
- VirtViewerAppPrivate *priv = self->priv;
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ va_list ap;
+ VirtViewerAppPrivate *priv = self->priv;
- if (doDebug) {
- va_start(ap, fmt);
- g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap);
- va_end(ap);
- }
+ if (doDebug) {
+ va_start(ap, fmt);
+ g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap);
+ va_end(ap);
+ }
- if (priv->verbose) {
- va_start(ap, fmt);
- g_vprintf(fmt, ap);
- va_end(ap);
- }
+ if (priv->verbose) {
+ va_start(ap, fmt);
+ g_vprintf(fmt, ap);
+ va_end(ap);
+ }
}
static void
virt_viewer_app_set_window_subtitle(VirtViewerApp *app,
- VirtViewerWindow *window,
- int nth)
+ 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);
+ 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)
+ gpointer value,
+ gpointer user_data)
{
- gint *nth = key;
- VirtViewerApp *app = user_data;
- VirtViewerWindow *window = value;
- virt_viewer_app_set_window_subtitle(app, window, *nth);
+ 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);
+ 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)
+ gpointer value,
+ gpointer user_data G_GNUC_UNUSED)
{
- virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value));
+ virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value));
}
static void
virt_viewer_app_update_title(VirtViewerApp *self)
{
- g_hash_table_foreach(self->priv->windows, update_title, NULL);
+ g_hash_table_foreach(self->priv->windows, update_title, NULL);
}
static void set_usb_options_sensitive(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- virt_viewer_window_set_usb_options_sensitive(
- VIRT_VIEWER_WINDOW(value), GPOINTER_TO_INT(user_data));
+ virt_viewer_window_set_usb_options_sensitive(
+ VIRT_VIEWER_WINDOW(value), GPOINTER_TO_INT(user_data));
}
static void
virt_viewer_app_set_usb_options_sensitive(VirtViewerApp *self, gboolean sensitive)
{
- g_hash_table_foreach(self->priv->windows, set_usb_options_sensitive,
- GINT_TO_POINTER(sensitive));
+ g_hash_table_foreach(self->priv->windows, set_usb_options_sensitive,
+ GINT_TO_POINTER(sensitive));
}
static VirtViewerWindow *
virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth)
{
- return g_hash_table_lookup(self->priv->windows, &nth);
+ return g_hash_table_lookup(self->priv->windows, &nth);
}
static gboolean
virt_viewer_app_remove_nth_window(VirtViewerApp *self, gint nth)
{
- VirtViewerWindow *win;
- gboolean removed;
+ VirtViewerWindow *win;
+ gboolean removed;
- g_return_val_if_fail(nth != 0, FALSE);
+ g_return_val_if_fail(nth != 0, FALSE);
- win = virt_viewer_app_get_nth_window(self, nth);
- g_return_val_if_fail(win != NULL, FALSE);
+ win = virt_viewer_app_get_nth_window(self, nth);
+ g_return_val_if_fail(win != NULL, FALSE);
- removed = g_hash_table_steal(self->priv->windows, &nth);
- g_warn_if_fail(removed);
+ removed = g_hash_table_steal(self->priv->windows, &nth);
+ g_warn_if_fail(removed);
- if (removed)
- g_signal_emit(self, signals[SIGNAL_WINDOW_REMOVED], 0, win);
+ if (removed)
+ g_signal_emit(self, signals[SIGNAL_WINDOW_REMOVED], 0, win);
- g_object_unref(win);
+ g_object_unref(win);
- return removed;
+ return removed;
}
static void
virt_viewer_app_set_nth_window(VirtViewerApp *self, gint nth, VirtViewerWindow *win)
{
- gint *key;
+ gint *key;
- g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
- 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);
+ g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
+ 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);
- g_signal_emit(self, signals[SIGNAL_WINDOW_ADDED], 0, win);
+ g_signal_emit(self, signals[SIGNAL_WINDOW_ADDED], 0, win);
}
static void
viewer_window_visible_cb(GtkWidget *widget G_GNUC_UNUSED,
- gpointer user_data)
+ gpointer user_data)
{
- virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data));
+ virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data));
}
static VirtViewerWindow*
virt_viewer_app_window_new(VirtViewerApp *self, GtkWidget *container, gint nth)
{
- VirtViewerWindow* window;
- GtkWindow *w;
+ VirtViewerWindow* window;
+ GtkWindow *w;
- window = g_object_new(VIRT_VIEWER_TYPE_WINDOW,
- "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);
+ window = g_object_new(VIRT_VIEWER_TYPE_WINDOW,
+ "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);
- /* this will set new window to fullscreen if necessary */
- virt_viewer_app_set_fullscreen(self, self->priv->fullscreen);
- g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self);
- g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self);
- return window;
+ /* this will set new window to fullscreen if necessary */
+ virt_viewer_app_set_fullscreen(self, self->priv->fullscreen);
+ g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self);
+ g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self);
+ return window;
}
static void
display_show_hint(VirtViewerDisplay *display,
- GParamSpec *pspec G_GNUC_UNUSED,
- VirtViewerWindow *win)
-{
- VirtViewerApp *self;
- VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win);
- GtkWindow *w = virt_viewer_window_get_window(win);
- gint nth, hint;
-
- g_object_get(win,
- "app", &self,
- NULL);
- g_object_get(display,
- "nth-display", &nth,
- "show-hint", &hint,
- NULL);
-
- if (hint == VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE) {
- if (win != self->priv->main_window &&
- g_getenv("VIRT_VIEWER_HIDE"))
- gtk_widget_hide(GTK_WIDGET(w));
- virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1);
- } else {
- virt_viewer_notebook_show_display(nb);
- gtk_widget_show(GTK_WIDGET(w));
- gtk_window_present(w);
- }
-
- g_object_unref(self);
+ GParamSpec *pspec G_GNUC_UNUSED,
+ VirtViewerWindow *win)
+{
+ VirtViewerApp *self;
+ VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win);
+ GtkWindow *w = virt_viewer_window_get_window(win);
+ gint nth, hint;
+
+ g_object_get(win,
+ "app", &self,
+ NULL);
+ g_object_get(display,
+ "nth-display", &nth,
+ "show-hint", &hint,
+ NULL);
+
+ if (hint == VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE) {
+ if (win != self->priv->main_window &&
+ g_getenv("VIRT_VIEWER_HIDE"))
+ gtk_widget_hide(GTK_WIDGET(w));
+ virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1);
+ } else {
+ virt_viewer_notebook_show_display(nb);
+ gtk_widget_show(GTK_WIDGET(w));
+ gtk_window_present(w);
+ }
+
+ g_object_unref(self);
}
static void
virt_viewer_app_display_added(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerDisplay *display,
- VirtViewerApp *self)
-{
- VirtViewerAppPrivate *priv = self->priv;
- VirtViewerWindow *window;
- gint nth;
-
- g_object_get(display, "nth-display", &nth, NULL);
- if (nth == 0) {
- window = priv->main_window;
- } else {
- if (priv->container) {
- g_warning("multi-head not yet supported within container");
- return;
- }
+ VirtViewerDisplay *display,
+ VirtViewerApp *self)
+{
+ VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerWindow *window;
+ gint nth;
+
+ g_object_get(display, "nth-display", &nth, NULL);
+ if (nth == 0) {
+ window = priv->main_window;
+ } else {
+ if (priv->container) {
+ g_warning("multi-head not yet supported within container");
+ return;
+ }
- g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
- window = virt_viewer_app_window_new(self, NULL, nth);
- }
+ g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
+ window = virt_viewer_app_window_new(self, NULL, nth);
+ }
- virt_viewer_window_set_display(window, display);
- g_signal_connect(display, "notify::show-hint",
- G_CALLBACK(display_show_hint), window);
- g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
+ virt_viewer_window_set_display(window, display);
+ g_signal_connect(display, "notify::show-hint",
+ G_CALLBACK(display_show_hint), window);
+ g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
}
static void
virt_viewer_app_display_removed(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerDisplay *display,
- VirtViewerApp *self)
+ VirtViewerDisplay *display,
+ VirtViewerApp *self)
{
- VirtViewerWindow *win = NULL;
- gint nth;
+ VirtViewerWindow *win = NULL;
+ gint nth;
- gtk_widget_hide(GTK_WIDGET(display));
- g_object_get(display, "nth-display", &nth, NULL);
- win = virt_viewer_app_get_nth_window(self, nth);
- virt_viewer_window_set_display(win, NULL);
+ gtk_widget_hide(GTK_WIDGET(display));
+ g_object_get(display, "nth-display", &nth, NULL);
+ win = virt_viewer_app_get_nth_window(self, nth);
+ virt_viewer_window_set_display(win, NULL);
- if (nth != 0)
- virt_viewer_app_remove_nth_window(self, nth);
+ if (nth != 0)
+ virt_viewer_app_remove_nth_window(self, nth);
}
int
virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
- VirtViewerAppPrivate *priv = self->priv;
- g_return_val_if_fail(priv->session == NULL, -1);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
+ VirtViewerAppPrivate *priv = self->priv;
+ g_return_val_if_fail(priv->session == NULL, -1);
#ifdef HAVE_GTK_VNC
- if (g_ascii_strcasecmp(type, "vnc") == 0) {
- virt_viewer_app_trace(self, "Guest %s has a %s display\n",
- priv->guest_name, type);
- priv->session = virt_viewer_session_vnc_new();
- } else
+ if (g_ascii_strcasecmp(type, "vnc") == 0) {
+ virt_viewer_app_trace(self, "Guest %s has a %s display\n",
+ priv->guest_name, type);
+ priv->session = virt_viewer_session_vnc_new();
+ } else
#endif
#ifdef HAVE_SPICE_GTK
- if (g_ascii_strcasecmp(type, "spice") == 0) {
- virt_viewer_app_trace(self, "Guest %s has a %s display\n",
- priv->guest_name, type);
- priv->session = virt_viewer_session_spice_new();
- } else
+ if (g_ascii_strcasecmp(type, "spice") == 0) {
+ virt_viewer_app_trace(self, "Guest %s has a %s display\n",
+ priv->guest_name, type);
+ priv->session = virt_viewer_session_spice_new();
+ } else
#endif
- {
- virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n",
- priv->guest_name, type);
- virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"),
- priv->guest_name);
- return -1;
- }
-
- g_signal_connect(priv->session, "session-initialized",
- G_CALLBACK(virt_viewer_app_initialized), self);
- g_signal_connect(priv->session, "session-connected",
- G_CALLBACK(virt_viewer_app_connected), self);
- g_signal_connect(priv->session, "session-disconnected",
- G_CALLBACK(virt_viewer_app_disconnected), self);
- g_signal_connect(priv->session, "session-channel-open",
- G_CALLBACK(virt_viewer_app_channel_open), self);
- g_signal_connect(priv->session, "session-auth-refused",
- G_CALLBACK(virt_viewer_app_auth_refused), self);
- g_signal_connect(priv->session, "session-auth-failed",
- G_CALLBACK(virt_viewer_app_auth_failed), self);
- g_signal_connect(priv->session, "session-usb-failed",
- G_CALLBACK(virt_viewer_app_usb_failed), self);
- g_signal_connect(priv->session, "session-display-added",
- G_CALLBACK(virt_viewer_app_display_added), self);
- g_signal_connect(priv->session, "session-display-removed",
- G_CALLBACK(virt_viewer_app_display_removed), self);
-
- g_signal_connect(priv->session, "session-cut-text",
- G_CALLBACK(virt_viewer_app_server_cut_text), self);
- g_signal_connect(priv->session, "session-bell",
- G_CALLBACK(virt_viewer_app_bell), self);
- g_signal_connect(priv->session, "session-cancelled",
- G_CALLBACK(virt_viewer_app_cancelled), self);
-
- return 0;
+ {
+ virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n",
+ priv->guest_name, type);
+ virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"),
+ priv->guest_name);
+ return -1;
+ }
+
+ g_signal_connect(priv->session, "session-initialized",
+ G_CALLBACK(virt_viewer_app_initialized), self);
+ g_signal_connect(priv->session, "session-connected",
+ G_CALLBACK(virt_viewer_app_connected), self);
+ g_signal_connect(priv->session, "session-disconnected",
+ G_CALLBACK(virt_viewer_app_disconnected), self);
+ g_signal_connect(priv->session, "session-channel-open",
+ G_CALLBACK(virt_viewer_app_channel_open), self);
+ g_signal_connect(priv->session, "session-auth-refused",
+ G_CALLBACK(virt_viewer_app_auth_refused), self);
+ g_signal_connect(priv->session, "session-auth-failed",
+ G_CALLBACK(virt_viewer_app_auth_failed), self);
+ g_signal_connect(priv->session, "session-usb-failed",
+ G_CALLBACK(virt_viewer_app_usb_failed), self);
+ g_signal_connect(priv->session, "session-display-added",
+ G_CALLBACK(virt_viewer_app_display_added), self);
+ g_signal_connect(priv->session, "session-display-removed",
+ G_CALLBACK(virt_viewer_app_display_removed), self);
+
+ g_signal_connect(priv->session, "session-cut-text",
+ G_CALLBACK(virt_viewer_app_server_cut_text), self);
+ g_signal_connect(priv->session, "session-bell",
+ G_CALLBACK(virt_viewer_app_bell), self);
+ g_signal_connect(priv->session, "session-cancelled",
+ G_CALLBACK(virt_viewer_app_cancelled), self);
+
+ return 0;
}
static gboolean
virt_viewer_app_default_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd)
{
- *fd = -1;
- return TRUE;
+ *fd = -1;
+ return TRUE;
}
static int
virt_viewer_app_open_connection(VirtViewerApp *self, int *fd)
{
- VirtViewerAppClass *klass;
+ VirtViewerAppClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
- klass = VIRT_VIEWER_APP_GET_CLASS(self);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
+ klass = VIRT_VIEWER_APP_GET_CLASS(self);
- return klass->open_connection(self, fd);
+ return klass->open_connection(self, fd);
}
#if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
static void
virt_viewer_app_channel_open(VirtViewerSession *session,
- VirtViewerSessionChannel *channel,
- VirtViewerApp *self)
+ VirtViewerSessionChannel *channel,
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv;
- int fd = -1;
+ VirtViewerAppPrivate *priv;
+ int fd = -1;
- g_return_if_fail(self != NULL);
+ g_return_if_fail(self != NULL);
- if (!virt_viewer_app_open_connection(self, &fd))
- return;
+ if (!virt_viewer_app_open_connection(self, &fd))
+ return;
- DEBUG_LOG("After open connection callback fd=%d", fd);
+ DEBUG_LOG("After open connection callback fd=%d", fd);
- priv = self->priv;
- if (priv->transport && g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
- !priv->direct && fd == -1) {
- if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user,
- priv->ghost, priv->gport, NULL)) < 0)
- virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed."));
- } else if (fd == -1) {
- virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported."));
- }
+ priv = self->priv;
+ if (priv->transport && g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
+ !priv->direct && fd == -1) {
+ if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user,
+ priv->ghost, priv->gport, NULL)) < 0)
+ virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed."));
+ } else if (fd == -1) {
+ virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported."));
+ }
- if (fd >= 0)
- virt_viewer_session_channel_open_fd(session, channel, fd);
+ if (fd >= 0)
+ virt_viewer_session_channel_open_fd(session, channel, fd);
}
#else
static void
virt_viewer_app_channel_open(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerSessionChannel *channel G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerSessionChannel *channel G_GNUC_UNUSED,
+ VirtViewerApp *self)
{
- virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported."));
+ virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported."));
}
#endif
static int
virt_viewer_app_default_activate(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
- int fd = -1;
+ VirtViewerAppPrivate *priv = self->priv;
+ int fd = -1;
- if (!virt_viewer_app_open_connection(self, &fd))
- return -1;
+ if (!virt_viewer_app_open_connection(self, &fd))
+ return -1;
- DEBUG_LOG("After open connection callback fd=%d", fd);
+ DEBUG_LOG("After open connection callback fd=%d", fd);
#if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
- if (priv->transport &&
- g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
- !priv->direct &&
- fd == -1) {
- gchar *p = NULL;
-
- if (priv->gport) {
- virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n",
- priv->ghost, priv->gport);
- } else {
- virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n",
- priv->unixsock);
- }
- if (priv->port)
- p = g_strdup_printf(":%d", priv->port);
-
- virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n",
- priv->user ? priv->user : "",
- priv->user ? "@" : "",
- priv->host, p ? p : "");
- g_free(p);
-
- if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port,
- priv->user, priv->ghost,
- priv->gport, priv->unixsock)) < 0)
- return -1;
- } else if (priv->unixsock && fd == -1) {
- virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s",
- priv->unixsock);
- if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0)
- return -1;
- }
+ if (priv->transport &&
+ g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
+ !priv->direct &&
+ fd == -1) {
+ gchar *p = NULL;
+
+ if (priv->gport) {
+ virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n",
+ priv->ghost, priv->gport);
+ } else {
+ virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n",
+ priv->unixsock);
+ }
+ if (priv->port)
+ p = g_strdup_printf(":%d", priv->port);
+
+ virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n",
+ priv->user ? priv->user : "",
+ priv->user ? "@" : "",
+ priv->host, p ? p : "");
+ g_free(p);
+
+ if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port,
+ priv->user, priv->ghost,
+ priv->gport, priv->unixsock)) < 0)
+ return -1;
+ } else if (priv->unixsock && fd == -1) {
+ virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s",
+ priv->unixsock);
+ if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0)
+ return -1;
+ }
#endif
- if (fd >= 0) {
- return virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd);
- } else if (priv->guri) {
- virt_viewer_app_trace(self, "Opening connection to display at %s\n", priv->guri);
- return virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), priv->guri);
- } else {
- virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s\n",
- priv->ghost, priv->gport);
- return virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
- priv->ghost, priv->gport);
- }
+ if (fd >= 0) {
+ return virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd);
+ } else if (priv->guri) {
+ virt_viewer_app_trace(self, "Opening connection to display at %s\n", priv->guri);
+ return virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), priv->guri);
+ } else {
+ virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s\n",
+ priv->ghost, priv->gport);
+ return virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
+ priv->ghost, priv->gport);
+ }
- return -1;
+ return -1;
}
int
virt_viewer_app_activate(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv;
- int ret;
+ VirtViewerAppPrivate *priv;
+ int ret;
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
- priv = self->priv;
- if (priv->active)
- return -1;
+ priv = self->priv;
+ if (priv->active)
+ return -1;
- ret = VIRT_VIEWER_APP_GET_CLASS(self)->activate(self);
+ ret = VIRT_VIEWER_APP_GET_CLASS(self)->activate(self);
- if (ret != -1) {
- virt_viewer_app_show_status(self, _("Connecting to graphic server"));
- priv->connected = FALSE;
- priv->cancelled = FALSE;
- priv->active = TRUE;
- priv->grabbed = FALSE;
- virt_viewer_app_update_title(self);
- }
+ if (ret != -1) {
+ virt_viewer_app_show_status(self, _("Connecting to graphic server"));
+ priv->connected = FALSE;
+ priv->cancelled = FALSE;
+ priv->active = TRUE;
+ priv->grabbed = FALSE;
+ virt_viewer_app_update_title(self);
+ }
- return ret;
+ return ret;
}
/* text was actually requested */
static void
virt_viewer_app_clipboard_copy(GtkClipboard *clipboard G_GNUC_UNUSED,
- GtkSelectionData *data,
- guint info G_GNUC_UNUSED,
- VirtViewerApp *self)
+ GtkSelectionData *data,
+ guint info G_GNUC_UNUSED,
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- gtk_selection_data_set_text(data, priv->clipboard, -1);
+ gtk_selection_data_set_text(data, priv->clipboard, -1);
}
static void
virt_viewer_app_server_cut_text(VirtViewerSession *session G_GNUC_UNUSED,
- const gchar *text,
- VirtViewerApp *self)
+ const gchar *text,
+ VirtViewerApp *self)
{
- GtkClipboard *cb;
- gsize a, b;
- VirtViewerAppPrivate *priv = self->priv;
- GtkTargetEntry targets[] = {
- {g_strdup("UTF8_STRING"), 0, 0},
- {g_strdup("COMPOUND_TEXT"), 0, 0},
- {g_strdup("TEXT"), 0, 0},
- {g_strdup("STRING"), 0, 0},
- };
+ GtkClipboard *cb;
+ gsize a, b;
+ VirtViewerAppPrivate *priv = self->priv;
+ GtkTargetEntry targets[] = {
+ {g_strdup("UTF8_STRING"), 0, 0},
+ {g_strdup("COMPOUND_TEXT"), 0, 0},
+ {g_strdup("TEXT"), 0, 0},
+ {g_strdup("STRING"), 0, 0},
+ };
- if (!text)
- return;
+ if (!text)
+ return;
- g_free (priv->clipboard);
- priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL);
+ g_free (priv->clipboard);
+ priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL);
- if (priv->clipboard) {
- cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
+ if (priv->clipboard) {
+ cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
- gtk_clipboard_set_with_owner (cb,
- targets,
- G_N_ELEMENTS(targets),
- (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy,
- NULL,
- G_OBJECT (self));
- }
+ gtk_clipboard_set_with_owner (cb,
+ targets,
+ G_N_ELEMENTS(targets),
+ (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy,
+ NULL,
+ G_OBJECT (self));
+ }
}
static void virt_viewer_app_bell(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window))));
+ gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window))));
}
static int
virt_viewer_app_default_initial_connect(VirtViewerApp *self)
{
- return virt_viewer_app_activate(self);
+ return virt_viewer_app_activate(self);
}
int
virt_viewer_app_initial_connect(VirtViewerApp *self)
{
- VirtViewerAppClass *klass;
+ VirtViewerAppClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
- klass = VIRT_VIEWER_APP_GET_CLASS(self);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
+ klass = VIRT_VIEWER_APP_GET_CLASS(self);
- return klass->initial_connect(self);
+ return klass->initial_connect(self);
}
static gboolean
virt_viewer_app_retryauth(gpointer opaque)
{
- VirtViewerApp *self = opaque;
+ VirtViewerApp *self = opaque;
- virt_viewer_app_initial_connect(self);
+ virt_viewer_app_initial_connect(self);
- return FALSE;
+ return FALSE;
}
static gboolean
virt_viewer_app_connect_timer(void *opaque)
{
- VirtViewerApp *self = opaque;
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerApp *self = opaque;
+ VirtViewerAppPrivate *priv = self->priv;
- DEBUG_LOG("Connect timer fired");
+ DEBUG_LOG("Connect timer fired");
- if (!priv->active &&
- virt_viewer_app_initial_connect(self) < 0)
- gtk_main_quit();
+ if (!priv->active &&
+ virt_viewer_app_initial_connect(self) < 0)
+ gtk_main_quit();
- if (priv->active) {
- priv->reconnect_poll = 0;
- return FALSE;
- }
+ if (priv->active) {
+ priv->reconnect_poll = 0;
+ return FALSE;
+ }
- return TRUE;
+ return TRUE;
}
void
virt_viewer_app_start_reconnect_poll(VirtViewerApp *self)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- VirtViewerAppPrivate *priv = self->priv;
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ VirtViewerAppPrivate *priv = self->priv;
- if (priv->reconnect_poll != 0)
- return;
+ if (priv->reconnect_poll != 0)
+ return;
- priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self);
+ priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self);
}
static void
virt_viewer_app_default_deactivated(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- virt_viewer_app_show_status(self, _("Guest domain has shutdown"));
- virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down",
- priv->guest_name);
- gtk_main_quit();
+ virt_viewer_app_show_status(self, _("Guest domain has shutdown"));
+ virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down",
+ priv->guest_name);
+ gtk_main_quit();
}
static void
virt_viewer_app_deactivated(VirtViewerApp *self)
{
- VirtViewerAppClass *klass;
- klass = VIRT_VIEWER_APP_GET_CLASS(self);
+ VirtViewerAppClass *klass;
+ klass = VIRT_VIEWER_APP_GET_CLASS(self);
- klass->deactivated(self);
+ klass->deactivated(self);
}
static void
virt_viewer_app_deactivate(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- if (!priv->active)
- return;
+ if (!priv->active)
+ return;
- if (priv->session)
- virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
+ if (priv->session)
+ virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
- priv->connected = FALSE;
- priv->active = FALSE;
+ priv->connected = FALSE;
+ priv->active = FALSE;
#if 0
- g_free(priv->pretty_address);
- priv->pretty_address = NULL;
+ g_free(priv->pretty_address);
+ priv->pretty_address = NULL;
#endif
- priv->grabbed = FALSE;
- virt_viewer_app_update_title(self);
+ priv->grabbed = FALSE;
+ virt_viewer_app_update_title(self);
- if (priv->authretry) {
- priv->authretry = FALSE;
- g_idle_add(virt_viewer_app_retryauth, self);
- } else
- virt_viewer_app_deactivated(self);
+ if (priv->authretry) {
+ priv->authretry = FALSE;
+ g_idle_add(virt_viewer_app_retryauth, self);
+ } else
+ virt_viewer_app_deactivated(self);
}
static void
virt_viewer_app_connected(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- priv->connected = TRUE;
- virt_viewer_app_show_status(self, _("Connected to graphic server"));
+ priv->connected = TRUE;
+ virt_viewer_app_show_status(self, _("Connected to graphic server"));
}
static void
virt_viewer_app_initialized(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- gboolean has_usb = virt_viewer_session_has_usb(self->priv->session);
+ gboolean has_usb = virt_viewer_session_has_usb(self->priv->session);
- virt_viewer_app_update_title(self);
- virt_viewer_app_set_usb_options_sensitive(self, has_usb);
+ virt_viewer_app_update_title(self);
+ virt_viewer_app_set_usb_options_sensitive(self, has_usb);
}
static void
virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerAppPrivate *priv = self->priv;
- if (!priv->connected && !priv->cancelled) {
- virt_viewer_app_simple_message_dialog(self,
- _("Unable to connect to the graphic server %s"),
- priv->pretty_address);
- }
- virt_viewer_app_set_usb_options_sensitive(self, FALSE);
- virt_viewer_app_deactivate(self);
+ if (!priv->connected && !priv->cancelled) {
+ virt_viewer_app_simple_message_dialog(self,
+ _("Unable to connect to the graphic server %s"),
+ priv->pretty_address);
+ }
+ virt_viewer_app_set_usb_options_sensitive(self, FALSE);
+ virt_viewer_app_deactivate(self);
}
static void virt_viewer_app_cancelled(VirtViewerSession *session,
- VirtViewerApp *self)
+ VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv = self->priv;
- priv->cancelled = TRUE;
- virt_viewer_app_disconnected(session, self);
+ VirtViewerAppPrivate *priv = self->priv;
+ priv->cancelled = TRUE;
+ virt_viewer_app_disconnected(session, self);
}
static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSED,
- const char *msg,
- VirtViewerApp *self)
+ const char *msg,
+ VirtViewerApp *self)
{
- GtkWidget *dialog;
- int ret;
- VirtViewerAppPrivate *priv = self->priv;
+ GtkWidget *dialog;
+ int ret;
+ VirtViewerAppPrivate *priv = self->priv;
- dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window),
- GTK_DIALOG_MODAL |
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_YES_NO,
- _("Unable to authenticate with remote desktop server at %s: %s\n"
- "Retry connection again?"),
- priv->pretty_address, msg);
+ dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_YES_NO,
+ _("Unable to authenticate with remote desktop server at %s: %s\n"
+ "Retry connection again?"),
+ priv->pretty_address, msg);
- ret = gtk_dialog_run(GTK_DIALOG(dialog));
+ ret = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gtk_widget_destroy(dialog);
- if (ret == GTK_RESPONSE_YES)
- priv->authretry = TRUE;
- else
- priv->authretry = FALSE;
+ if (ret == GTK_RESPONSE_YES)
+ priv->authretry = TRUE;
+ else
+ priv->authretry = FALSE;
}
static void virt_viewer_app_auth_failed(VirtViewerSession *session G_GNUC_UNUSED,
- const char *msg,
- VirtViewerApp *self)
+ const char *msg,
+ VirtViewerApp *self)
{
- virt_viewer_app_simple_message_dialog(self,
- _("Unable to authenticate with remote desktop server: %s"),
- msg);
+ virt_viewer_app_simple_message_dialog(self,
+ _("Unable to authenticate with remote desktop server: %s"),
+ msg);
}
static void virt_viewer_app_usb_failed(VirtViewerSession *session G_GNUC_UNUSED,
- const gchar *msg,
- VirtViewerApp *self)
+ const gchar *msg,
+ VirtViewerApp *self)
{
- virt_viewer_app_simple_message_dialog(self, _("USB redirection error: %s"), msg);
+ virt_viewer_app_simple_message_dialog(self, _("USB redirection error: %s"), msg);
}
static void
virt_viewer_app_get_property (GObject *object, guint property_id,
- GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(object));
- VirtViewerApp *self = VIRT_VIEWER_APP(object);
- VirtViewerAppPrivate *priv = self->priv;
+ g_return_if_fail(VIRT_VIEWER_IS_APP(object));
+ VirtViewerApp *self = VIRT_VIEWER_APP(object);
+ VirtViewerAppPrivate *priv = self->priv;
- switch (property_id) {
- case PROP_VERBOSE:
- g_value_set_boolean(value, priv->verbose);
- break;
+ switch (property_id) {
+ case PROP_VERBOSE:
+ g_value_set_boolean(value, priv->verbose);
+ break;
- case PROP_CONTAINER:
- g_value_set_object(value, priv->container);
- break;
+ case PROP_CONTAINER:
+ g_value_set_object(value, priv->container);
+ break;
- case PROP_SESSION:
- g_value_set_object(value, priv->session);
- break;
+ case PROP_SESSION:
+ g_value_set_object(value, priv->session);
+ break;
- case PROP_GUEST_NAME:
- g_value_set_string(value, priv->guest_name);
- break;
+ case PROP_GUEST_NAME:
+ g_value_set_string(value, priv->guest_name);
+ break;
- case PROP_GURI:
- g_value_set_string(value, priv->guri);
- break;
+ case PROP_GURI:
+ g_value_set_string(value, priv->guri);
+ break;
- case PROP_FULLSCREEN:
- g_value_set_boolean(value, priv->fullscreen);
- break;
+ case PROP_FULLSCREEN:
+ g_value_set_boolean(value, priv->fullscreen);
+ break;
- case PROP_TITLE:
- g_value_set_string(value, priv->title);
- break;
+ case PROP_TITLE:
+ g_value_set_string(value, priv->title);
+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_app_set_property (GObject *object, guint property_id,
- const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
-{
- g_return_if_fail(VIRT_VIEWER_IS_APP(object));
- VirtViewerApp *self = VIRT_VIEWER_APP(object);
- VirtViewerAppPrivate *priv = self->priv;
-
- switch (property_id) {
- case PROP_VERBOSE:
- priv->verbose = g_value_get_boolean(value);
- break;
-
- case PROP_CONTAINER:
- g_return_if_fail(priv->container == NULL);
- priv->container = g_value_dup_object(value);
- break;
-
- case PROP_GUEST_NAME:
- g_free(priv->guest_name);
- priv->guest_name = g_value_dup_string(value);
- break;
-
- case PROP_GURI:
- g_free(priv->guri);
- priv->guri = g_value_dup_string(value);
- virt_viewer_app_update_pretty_address(self);
- break;
-
- case PROP_FULLSCREEN:
- 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);
- }
+ const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+{
+ g_return_if_fail(VIRT_VIEWER_IS_APP(object));
+ VirtViewerApp *self = VIRT_VIEWER_APP(object);
+ VirtViewerAppPrivate *priv = self->priv;
+
+ switch (property_id) {
+ case PROP_VERBOSE:
+ priv->verbose = g_value_get_boolean(value);
+ break;
+
+ case PROP_CONTAINER:
+ g_return_if_fail(priv->container == NULL);
+ priv->container = g_value_dup_object(value);
+ break;
+
+ case PROP_GUEST_NAME:
+ g_free(priv->guest_name);
+ priv->guest_name = g_value_dup_string(value);
+ break;
+
+ case PROP_GURI:
+ g_free(priv->guri);
+ priv->guri = g_value_dup_string(value);
+ virt_viewer_app_update_pretty_address(self);
+ break;
+
+ case PROP_FULLSCREEN:
+ 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);
+ }
}
static void
virt_viewer_app_dispose (GObject *object)
{
- VirtViewerApp *self = VIRT_VIEWER_APP(object);
- VirtViewerAppPrivate *priv = self->priv;
+ VirtViewerApp *self = VIRT_VIEWER_APP(object);
+ VirtViewerAppPrivate *priv = self->priv;
- if (priv->windows) {
- g_hash_table_unref(priv->windows);
- priv->windows = NULL;
- }
+ if (priv->windows) {
+ g_hash_table_unref(priv->windows);
+ priv->windows = NULL;
+ }
- if (priv->main_window) {
- g_object_unref(priv->main_window);
- priv->main_window = NULL;
- }
+ if (priv->main_window) {
+ g_object_unref(priv->main_window);
+ priv->main_window = NULL;
+ }
- if (priv->container) {
- g_object_unref(priv->container);
- priv->container = NULL;
- }
- g_free(priv->title);
+ if (priv->container) {
+ g_object_unref(priv->container);
+ priv->container = NULL;
+ }
+ g_free(priv->title);
- virt_viewer_app_free_connect_info(self);
+ virt_viewer_app_free_connect_info(self);
- G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object);
+ G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object);
}
static gboolean
virt_viewer_app_default_start(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv;
- GtkWindow *win;
- priv = self->priv;
+ VirtViewerAppPrivate *priv;
+ GtkWindow *win;
+ priv = self->priv;
- win = virt_viewer_window_get_window(priv->main_window);
- if (win)
- gtk_widget_show(GTK_WIDGET(win));
- else {
- gtk_box_pack_end(GTK_BOX(priv->container), priv->main_notebook, TRUE, TRUE, 0);
- gtk_widget_show(GTK_WIDGET(priv->main_notebook));
- }
+ win = virt_viewer_window_get_window(priv->main_window);
+ if (win)
+ gtk_widget_show(GTK_WIDGET(win));
+ else {
+ gtk_box_pack_end(GTK_BOX(priv->container), priv->main_notebook, TRUE, TRUE, 0);
+ gtk_widget_show(GTK_WIDGET(priv->main_notebook));
+ }
- return TRUE;
+ return TRUE;
}
gboolean virt_viewer_app_start(VirtViewerApp *self)
{
- VirtViewerAppClass *klass;
+ VirtViewerAppClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
- klass = VIRT_VIEWER_APP_GET_CLASS(self);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
+ klass = VIRT_VIEWER_APP_GET_CLASS(self);
- g_return_val_if_fail(!self->priv->started, TRUE);
+ g_return_val_if_fail(!self->priv->started, TRUE);
- self->priv->started = klass->start(self);
- return self->priv->started;
+ self->priv->started = klass->start(self);
+ return self->priv->started;
}
static void
virt_viewer_app_init (VirtViewerApp *self)
{
- self->priv = GET_PRIVATE(self);
- self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref);
+ self->priv = GET_PRIVATE(self);
+ self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref);
}
static GObject *
virt_viewer_app_constructor (GType gtype,
- guint n_properties,
- GObjectConstructParam *properties)
+ guint n_properties,
+ GObjectConstructParam *properties)
{
- GObject *obj;
- VirtViewerApp *self;
- VirtViewerAppPrivate *priv;
+ GObject *obj;
+ VirtViewerApp *self;
+ VirtViewerAppPrivate *priv;
- obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties);
- self = VIRT_VIEWER_APP(obj);
- priv = self->priv;
+ obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties);
+ self = VIRT_VIEWER_APP(obj);
+ priv = self->priv;
- priv->main_window = virt_viewer_app_window_new(self, priv->container, 0);
- priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window));
+ priv->main_window = virt_viewer_app_window_new(self, priv->container, 0);
+ priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window));
- return obj;
+ return obj;
}
static void
virt_viewer_app_class_init (VirtViewerAppClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate));
-
- object_class->constructor = virt_viewer_app_constructor;
- object_class->get_property = virt_viewer_app_get_property;
- object_class->set_property = virt_viewer_app_set_property;
- object_class->dispose = virt_viewer_app_dispose;
-
- klass->start = virt_viewer_app_default_start;
- klass->initial_connect = virt_viewer_app_default_initial_connect;
- klass->activate = virt_viewer_app_default_activate;
- klass->deactivated = virt_viewer_app_default_deactivated;
- klass->open_connection = virt_viewer_app_default_open_connection;
-
- g_object_class_install_property(object_class,
- PROP_VERBOSE,
- g_param_spec_boolean("verbose",
- "Verbose",
- "Verbose trace",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_CONTAINER,
- g_param_spec_object("container",
- "Container",
- "Widget container",
- GTK_TYPE_WIDGET,
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_SESSION,
- g_param_spec_object("session",
- "Session",
- "ViewerSession",
- VIRT_VIEWER_TYPE_SESSION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_GUEST_NAME,
- g_param_spec_string("guest-name",
- "Guest name",
- "Guest name",
- "",
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_GURI,
- g_param_spec_string("guri",
- "guri",
- "Remote graphical URI",
- "",
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_FULLSCREEN,
- g_param_spec_boolean("fullscreen",
- "Fullscreen",
- "Fullscreen",
- FALSE,
- 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));
-
- signals[SIGNAL_WINDOW_ADDED] =
- g_signal_new("window-added",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VirtViewerAppClass, window_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- G_TYPE_OBJECT);
-
- signals[SIGNAL_WINDOW_REMOVED] =
- g_signal_new("window-removed",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VirtViewerAppClass, window_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- G_TYPE_OBJECT);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate));
+
+ object_class->constructor = virt_viewer_app_constructor;
+ object_class->get_property = virt_viewer_app_get_property;
+ object_class->set_property = virt_viewer_app_set_property;
+ object_class->dispose = virt_viewer_app_dispose;
+
+ klass->start = virt_viewer_app_default_start;
+ klass->initial_connect = virt_viewer_app_default_initial_connect;
+ klass->activate = virt_viewer_app_default_activate;
+ klass->deactivated = virt_viewer_app_default_deactivated;
+ klass->open_connection = virt_viewer_app_default_open_connection;
+
+ g_object_class_install_property(object_class,
+ PROP_VERBOSE,
+ g_param_spec_boolean("verbose",
+ "Verbose",
+ "Verbose trace",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_CONTAINER,
+ g_param_spec_object("container",
+ "Container",
+ "Widget container",
+ GTK_TYPE_WIDGET,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_SESSION,
+ g_param_spec_object("session",
+ "Session",
+ "ViewerSession",
+ VIRT_VIEWER_TYPE_SESSION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_GUEST_NAME,
+ g_param_spec_string("guest-name",
+ "Guest name",
+ "Guest name",
+ "",
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_GURI,
+ g_param_spec_string("guri",
+ "guri",
+ "Remote graphical URI",
+ "",
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_FULLSCREEN,
+ g_param_spec_boolean("fullscreen",
+ "Fullscreen",
+ "Fullscreen",
+ FALSE,
+ 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));
+
+ signals[SIGNAL_WINDOW_ADDED] =
+ g_signal_new("window-added",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VirtViewerAppClass, window_added),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_OBJECT);
+
+ signals[SIGNAL_WINDOW_REMOVED] =
+ g_signal_new("window-removed",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VirtViewerAppClass, window_removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_OBJECT);
}
void
virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- self->priv->direct = direct;
+ self->priv->direct = direct;
}
void
virt_viewer_app_set_attach(VirtViewerApp *self, gboolean attach)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- self->priv->attach = attach;
+ self->priv->attach = attach;
}
gboolean
virt_viewer_app_get_attach(VirtViewerApp *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
- return self->priv->attach;
+ return self->priv->attach;
}
gboolean
virt_viewer_app_is_active(VirtViewerApp *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
- return self->priv->active;
+ return self->priv->active;
}
gboolean
virt_viewer_app_has_session(VirtViewerApp *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
- return self->priv->session != NULL;
+ return self->priv->session != NULL;
}
static void
virt_viewer_app_update_pretty_address(VirtViewerApp *self)
{
- VirtViewerAppPrivate *priv;
+ VirtViewerAppPrivate *priv;
- priv = self->priv;
- g_free(priv->pretty_address);
- if (priv->guri)
- priv->pretty_address = g_strdup(priv->guri);
- else if (priv->gport)
- priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport);
- else
- priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock);
+ priv = self->priv;
+ g_free(priv->pretty_address);
+ if (priv->guri)
+ priv->pretty_address = g_strdup(priv->guri);
+ else if (priv->gport)
+ priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport);
+ else
+ priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock);
}
typedef struct {
- gboolean fullscreen;
- gboolean move;
+ gboolean fullscreen;
+ gboolean move;
} FullscreenOptions;
static void fullscreen_cb(gpointer key,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- gint nth = *(gint*)key;
- FullscreenOptions *options = (FullscreenOptions *)user_data;
- VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value);
+ gint nth = *(gint*)key;
+ FullscreenOptions *options = (FullscreenOptions *)user_data;
+ VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value);
- DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen);
- if (options->fullscreen) {
- GdkScreen *screen = gdk_screen_get_default ();
- GdkRectangle mon;
+ DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen);
+ if (options->fullscreen) {
+ GdkScreen *screen = gdk_screen_get_default ();
+ GdkRectangle mon;
- if (nth >= gdk_screen_get_n_monitors(screen)) {
- DEBUG_LOG("skipping display %d", nth);
- return;
- }
- gdk_screen_get_monitor_geometry(screen, nth, &mon);
- virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y);
- } else
- virt_viewer_window_leave_fullscreen(vwin);
+ if (nth >= gdk_screen_get_n_monitors(screen)) {
+ DEBUG_LOG("skipping display %d", nth);
+ return;
+ }
+ gdk_screen_get_monitor_geometry(screen, nth, &mon);
+ virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y);
+ } else
+ virt_viewer_window_leave_fullscreen(vwin);
}
static void
virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen)
{
- VirtViewerAppPrivate *priv = self->priv;
- FullscreenOptions options = {
- .fullscreen = fullscreen,
- .move = virt_viewer_app_get_n_windows_visible(self) > 1,
- };
+ VirtViewerAppPrivate *priv = self->priv;
+ FullscreenOptions options = {
+ .fullscreen = fullscreen,
+ .move = virt_viewer_app_get_n_windows_visible(self) > 1,
+ };
- /* we iterate unconditionnaly, even if it was set before to update new windows */
- priv->fullscreen = fullscreen;
- g_hash_table_foreach(priv->windows, fullscreen_cb, &options);
+ /* we iterate unconditionnaly, even if it was set before to update new windows */
+ priv->fullscreen = fullscreen;
+ g_hash_table_foreach(priv->windows, fullscreen_cb, &options);
}
static void
menu_display_visible_toggled_cb(GtkCheckMenuItem *checkmenuitem,
- VirtViewerWindow *vwin)
+ VirtViewerWindow *vwin)
{
- VirtViewerApp *self;
- gboolean visible;
- static gboolean reentering = FALSE;
+ VirtViewerApp *self;
+ gboolean visible;
+ static gboolean reentering = FALSE;
- if (reentering) /* do not reenter if I switch you back */
- return;
+ if (reentering) /* do not reenter if I switch you back */
+ return;
- reentering = TRUE;
- g_object_get(vwin, "app", &self, NULL);
- visible = virt_viewer_app_window_set_visible(self, vwin,
- gtk_check_menu_item_get_active(checkmenuitem));
- gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible);
- g_object_unref(self);
- reentering = FALSE;
+ reentering = TRUE;
+ g_object_get(vwin, "app", &self, NULL);
+ visible = virt_viewer_app_window_set_visible(self, vwin,
+ gtk_check_menu_item_get_active(checkmenuitem));
+ gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible);
+ g_object_unref(self);
+ reentering = FALSE;
}
static gint
update_menu_displays_sort(gconstpointer a, gconstpointer b)
{
- const int *ai = a;
- const int *bi = b;
+ const int *ai = a;
+ const int *bi = b;
- if (*ai > *bi)
- return 1;
- else if (*ai < *bi)
- return -1;
- else
- return 0;
+ if (*ai > *bi)
+ return 1;
+ else if (*ai < *bi)
+ return -1;
+ else
+ return 0;
}
static void
window_update_menu_displays_cb(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
-{
- VirtViewerApp *self = VIRT_VIEWER_APP(user_data);
- VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value);
- GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new());
- GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window);
- GList *keys = g_hash_table_get_keys(self->priv->windows);
- GList *tmp;
-
- keys = g_list_sort(keys, update_menu_displays_sort);
-
- tmp = keys;
- while (tmp) {
- int *nth = tmp->data;
- VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth));
- GtkWidget *item;
- gboolean visible;
-
- item = gtk_check_menu_item_new_with_label(g_strdup_printf("Display %d", *nth));
- visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin)));
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible);
- g_signal_connect(G_OBJECT(item),
- "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin);
- gtk_menu_shell_append(submenu, item);
- tmp = tmp->next;
- }
-
- gtk_widget_show_all(GTK_WIDGET(submenu));
- gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu));
- g_list_free(keys);
+ gpointer value,
+ gpointer user_data)
+{
+ VirtViewerApp *self = VIRT_VIEWER_APP(user_data);
+ VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value);
+ GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new());
+ GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window);
+ GList *keys = g_hash_table_get_keys(self->priv->windows);
+ GList *tmp;
+
+ keys = g_list_sort(keys, update_menu_displays_sort);
+
+ tmp = keys;
+ while (tmp) {
+ int *nth = tmp->data;
+ VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth));
+ GtkWidget *item;
+ gboolean visible;
+
+ item = gtk_check_menu_item_new_with_label(g_strdup_printf("Display %d", *nth));
+ visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin)));
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible);
+ g_signal_connect(G_OBJECT(item),
+ "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin);
+ gtk_menu_shell_append(submenu, item);
+ tmp = tmp->next;
+ }
+
+ gtk_widget_show_all(GTK_WIDGET(submenu));
+ gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu));
+ g_list_free(keys);
}
static void
virt_viewer_app_update_menu_displays(VirtViewerApp *self)
{
- g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self);
+ g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self);
}
void
virt_viewer_app_set_connect_info(VirtViewerApp *self,
- const gchar *host,
- const gchar *ghost,
- const gchar *gport,
- const gchar *transport,
- const gchar *unixsock,
- const gchar *user,
- gint port,
- const gchar *guri)
-{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- VirtViewerAppPrivate *priv = self->priv;
-
- DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%d",
- host, ghost, gport, transport, unixsock, user, port);
-
- g_free(priv->host);
- g_free(priv->ghost);
- g_free(priv->gport);
- g_free(priv->transport);
- g_free(priv->unixsock);
- g_free(priv->user);
- g_free(priv->guri);
-
- priv->host = g_strdup(host);
- priv->ghost = g_strdup(ghost);
- priv->gport = g_strdup(gport);
- priv->transport = g_strdup(transport);
- priv->unixsock = g_strdup(unixsock);
- priv->user = g_strdup(user);
- priv->guri = g_strdup(guri);
- priv->port = port;
-
- virt_viewer_app_update_pretty_address(self);
+ const gchar *host,
+ const gchar *ghost,
+ const gchar *gport,
+ const gchar *transport,
+ const gchar *unixsock,
+ const gchar *user,
+ gint port,
+ const gchar *guri)
+{
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ VirtViewerAppPrivate *priv = self->priv;
+
+ DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%d",
+ host, ghost, gport, transport, unixsock, user, port);
+
+ g_free(priv->host);
+ g_free(priv->ghost);
+ g_free(priv->gport);
+ g_free(priv->transport);
+ g_free(priv->unixsock);
+ g_free(priv->user);
+ g_free(priv->guri);
+
+ priv->host = g_strdup(host);
+ priv->ghost = g_strdup(ghost);
+ priv->gport = g_strdup(gport);
+ priv->transport = g_strdup(transport);
+ priv->unixsock = g_strdup(unixsock);
+ priv->user = g_strdup(user);
+ priv->guri = g_strdup(guri);
+ priv->port = port;
+
+ virt_viewer_app_update_pretty_address(self);
}
void
virt_viewer_app_free_connect_info(VirtViewerApp *self)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL);
+ virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL);
}
VirtViewerWindow*
virt_viewer_app_get_main_window(VirtViewerApp *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
- return self->priv->main_window;
+ return self->priv->main_window;
}
static void
show_status_cb(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data)
+ gpointer value,
+ gpointer user_data)
{
- VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
- gchar *text = (gchar*)user_data;
+ VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
+ gchar *text = (gchar*)user_data;
- virt_viewer_notebook_show_status(nb, text);
+ virt_viewer_notebook_show_status(nb, text);
}
void
virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...)
{
- va_list args;
- gchar *text;
+ va_list args;
+ gchar *text;
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- g_return_if_fail(fmt != NULL);
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_return_if_fail(fmt != NULL);
- va_start(args, fmt);
- text = g_strdup_vprintf(fmt, args);
- va_end(args);
+ va_start(args, fmt);
+ text = g_strdup_vprintf(fmt, args);
+ va_end(args);
- g_hash_table_foreach(self->priv->windows, show_status_cb, text);
- g_free(text);
+ g_hash_table_foreach(self->priv->windows, show_status_cb, text);
+ g_free(text);
}
static void
show_display_cb(gpointer key G_GNUC_UNUSED,
- gpointer value,
- gpointer user_data G_GNUC_UNUSED)
+ gpointer value,
+ gpointer user_data G_GNUC_UNUSED)
{
- VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
+ VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
- virt_viewer_notebook_show_display(nb);
+ virt_viewer_notebook_show_display(nb);
}
void
virt_viewer_app_show_display(VirtViewerApp *self)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- g_hash_table_foreach(self->priv->windows, show_display_cb, self);
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_hash_table_foreach(self->priv->windows, show_display_cb, self);
}
GHashTable*
virt_viewer_app_get_windows(VirtViewerApp *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
- return self->priv->windows;
+ g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
+ return self->priv->windows;
}
void virt_viewer_app_usb_device_selection(VirtViewerApp *self,
- GtkWindow *parent)
+ GtkWindow *parent)
{
- g_return_if_fail(VIRT_VIEWER_IS_APP(self));
- g_return_if_fail(self->priv->session != NULL);
+ g_return_if_fail(VIRT_VIEWER_IS_APP(self));
+ g_return_if_fail(self->priv->session != NULL);
- virt_viewer_session_usb_device_selection(self->priv->session, parent);
+ virt_viewer_session_usb_device_selection(self->priv->session, parent);
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-app.h b/src/virt-viewer-app.h
index 3170dae..950b434 100644
--- a/src/virt-viewer-app.h
+++ b/src/virt-viewer-app.h
@@ -39,23 +39,23 @@ G_BEGIN_DECLS
typedef struct _VirtViewerAppPrivate VirtViewerAppPrivate;
typedef struct {
- GObject parent;
- VirtViewerAppPrivate *priv;
+ GObject parent;
+ VirtViewerAppPrivate *priv;
} VirtViewerApp;
typedef struct {
- GObjectClass parent_class;
+ GObjectClass parent_class;
- /* signals */
- void (*window_added) (VirtViewerApp *self, VirtViewerWindow *window);
- void (*window_removed) (VirtViewerApp *self, VirtViewerWindow *window);
+ /* signals */
+ void (*window_added) (VirtViewerApp *self, VirtViewerWindow *window);
+ void (*window_removed) (VirtViewerApp *self, VirtViewerWindow *window);
- /*< private >*/
- gboolean (*start) (VirtViewerApp *self);
- int (*initial_connect) (VirtViewerApp *self);
- int (*activate) (VirtViewerApp *self);
- void (*deactivated) (VirtViewerApp *self);
- gboolean (*open_connection)(VirtViewerApp *self, int *fd);
+ /*< private >*/
+ gboolean (*start) (VirtViewerApp *self);
+ int (*initial_connect) (VirtViewerApp *self);
+ int (*activate) (VirtViewerApp *self);
+ void (*deactivated) (VirtViewerApp *self);
+ gboolean (*open_connection)(VirtViewerApp *self, int *fd);
} VirtViewerAppClass;
GType virt_viewer_app_get_type (void);
@@ -92,8 +92,15 @@ void virt_viewer_app_show_display(VirtViewerApp *self);
GHashTable* virt_viewer_app_get_windows(VirtViewerApp *self);
void virt_viewer_app_usb_device_selection(VirtViewerApp *self,
- GtkWindow *parent);
+ GtkWindow *parent);
G_END_DECLS
#endif /* VIRT_VIEWER_APP_H */
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/virt-viewer-auth.c b/src/virt-viewer-auth.c
index 52eb4c9..9371d03 100644
--- a/src/virt-viewer-auth.c
+++ b/src/virt-viewer-auth.c
@@ -34,142 +34,142 @@
int
virt_viewer_auth_collect_credentials(const char *type,
- const char *address,
- char **username,
- char **password)
+ const char *address,
+ char **username,
+ char **password)
{
- GtkWidget *dialog = NULL;
- GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml");
- GtkWidget *credUsername;
- GtkWidget *credPassword;
- GtkWidget *promptUsername;
- GtkWidget *promptPassword;
- GtkWidget *labelMessage;
- int response;
- char *message;
-
- dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth"));
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
- labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message"));
- credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username"));
- promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username"));
- credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password"));
- promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password"));
-
- gtk_widget_set_sensitive(credUsername, username != NULL);
- gtk_widget_set_sensitive(promptUsername, username != NULL);
- gtk_widget_set_sensitive(credPassword, password != NULL);
- gtk_widget_set_sensitive(promptPassword, password != NULL);
-
- if (address) {
- message = g_strdup_printf("Authentication is required for the %s connection to:\n\n"
- "<b>%s</b>\n\n",
- type,
- address);
- } else {
- message = g_strdup_printf("Authentication is required for the %s connection:\n",
- type);
- }
-
- gtk_label_set_markup(GTK_LABEL(labelMessage), message);
- g_free(message);
-
- gtk_widget_show_all(dialog);
- response = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_hide(dialog);
-
- if (response == GTK_RESPONSE_OK) {
- if (username)
- *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername)));
- if (password)
- *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword)));
- }
-
- gtk_widget_destroy(GTK_WIDGET(dialog));
-
- return response == GTK_RESPONSE_OK ? 0 : -1;
+ GtkWidget *dialog = NULL;
+ GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml");
+ GtkWidget *credUsername;
+ GtkWidget *credPassword;
+ GtkWidget *promptUsername;
+ GtkWidget *promptPassword;
+ GtkWidget *labelMessage;
+ int response;
+ char *message;
+
+ dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth"));
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+
+ labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message"));
+ credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username"));
+ promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username"));
+ credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password"));
+ promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password"));
+
+ gtk_widget_set_sensitive(credUsername, username != NULL);
+ gtk_widget_set_sensitive(promptUsername, username != NULL);
+ gtk_widget_set_sensitive(credPassword, password != NULL);
+ gtk_widget_set_sensitive(promptPassword, password != NULL);
+
+ if (address) {
+ message = g_strdup_printf("Authentication is required for the %s connection to:\n\n"
+ "<b>%s</b>\n\n",
+ type,
+ address);
+ } else {
+ message = g_strdup_printf("Authentication is required for the %s connection:\n",
+ type);
+ }
+
+ gtk_label_set_markup(GTK_LABEL(labelMessage), message);
+ g_free(message);
+
+ gtk_widget_show_all(dialog);
+ response = gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_hide(dialog);
+
+ if (response == GTK_RESPONSE_OK) {
+ if (username)
+ *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername)));
+ if (password)
+ *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword)));
+ }
+
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+
+ return response == GTK_RESPONSE_OK ? 0 : -1;
}
#ifdef HAVE_GTK_VNC
void
virt_viewer_auth_vnc_credentials(GtkWidget *vnc,
- GValueArray *credList,
- char **vncAddress)
+ GValueArray *credList,
+ char **vncAddress)
{
- char *username = NULL, *password = NULL;
- gboolean wantPassword = FALSE, wantUsername = FALSE;
- int i;
-
- DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values);
-
- for (i = 0 ; i < credList->n_values ; i++) {
- GValue *cred = g_value_array_get_nth(credList, i);
- switch (g_value_get_enum(cred)) {
- case VNC_DISPLAY_CREDENTIAL_USERNAME:
- wantUsername = TRUE;
- break;
- case VNC_DISPLAY_CREDENTIAL_PASSWORD:
- wantPassword = TRUE;
- break;
- case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
- break;
- default:
- DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
- vnc_display_close(VNC_DISPLAY(vnc));
- goto cleanup;
- }
+ char *username = NULL, *password = NULL;
+ gboolean wantPassword = FALSE, wantUsername = FALSE;
+ int i;
+
+ DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values);
+
+ for (i = 0 ; i < credList->n_values ; i++) {
+ GValue *cred = g_value_array_get_nth(credList, i);
+ switch (g_value_get_enum(cred)) {
+ case VNC_DISPLAY_CREDENTIAL_USERNAME:
+ wantUsername = TRUE;
+ break;
+ case VNC_DISPLAY_CREDENTIAL_PASSWORD:
+ wantPassword = TRUE;
+ break;
+ case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
+ break;
+ default:
+ DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
+ vnc_display_close(VNC_DISPLAY(vnc));
+ goto cleanup;
}
+ }
- if (wantUsername || wantPassword) {
- int ret = virt_viewer_auth_collect_credentials("VNC", vncAddress ? *vncAddress : NULL,
- wantUsername ? &username : NULL,
- wantPassword ? &password : NULL);
+ if (wantUsername || wantPassword) {
+ int ret = virt_viewer_auth_collect_credentials("VNC", vncAddress ? *vncAddress : NULL,
+ wantUsername ? &username : NULL,
+ wantPassword ? &password : NULL);
- if (ret < 0) {
- vnc_display_close(VNC_DISPLAY(vnc));
- goto cleanup;
- }
+ if (ret < 0) {
+ vnc_display_close(VNC_DISPLAY(vnc));
+ goto cleanup;
}
-
- for (i = 0 ; i < credList->n_values ; i++) {
- GValue *cred = g_value_array_get_nth(credList, i);
- switch (g_value_get_enum(cred)) {
- case VNC_DISPLAY_CREDENTIAL_USERNAME:
- if (!username ||
- vnc_display_set_credential(VNC_DISPLAY(vnc),
- g_value_get_enum(cred),
- username)) {
- DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
- vnc_display_close(VNC_DISPLAY(vnc));
- }
- break;
- case VNC_DISPLAY_CREDENTIAL_PASSWORD:
- if (!password ||
- vnc_display_set_credential(VNC_DISPLAY(vnc),
- g_value_get_enum(cred),
- password)) {
- DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
- vnc_display_close(VNC_DISPLAY(vnc));
- }
- break;
- case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
- if (vnc_display_set_credential(VNC_DISPLAY(vnc),
- g_value_get_enum(cred),
- "libvirt")) {
- DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
- vnc_display_close(VNC_DISPLAY(vnc));
- }
- break;
- default:
- DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
- vnc_display_close(VNC_DISPLAY(vnc));
- }
+ }
+
+ for (i = 0 ; i < credList->n_values ; i++) {
+ GValue *cred = g_value_array_get_nth(credList, i);
+ switch (g_value_get_enum(cred)) {
+ case VNC_DISPLAY_CREDENTIAL_USERNAME:
+ if (!username ||
+ vnc_display_set_credential(VNC_DISPLAY(vnc),
+ g_value_get_enum(cred),
+ username)) {
+ DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
+ vnc_display_close(VNC_DISPLAY(vnc));
+ }
+ break;
+ case VNC_DISPLAY_CREDENTIAL_PASSWORD:
+ if (!password ||
+ vnc_display_set_credential(VNC_DISPLAY(vnc),
+ g_value_get_enum(cred),
+ password)) {
+ DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
+ vnc_display_close(VNC_DISPLAY(vnc));
+ }
+ break;
+ case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
+ if (vnc_display_set_credential(VNC_DISPLAY(vnc),
+ g_value_get_enum(cred),
+ "libvirt")) {
+ DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
+ vnc_display_close(VNC_DISPLAY(vnc));
+ }
+ break;
+ default:
+ DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
+ vnc_display_close(VNC_DISPLAY(vnc));
}
+ }
cleanup:
- g_free(username);
- g_free(password);
+ g_free(username);
+ g_free(password);
}
#endif
@@ -177,66 +177,64 @@ virt_viewer_auth_vnc_credentials(GtkWidget *vnc,
#ifdef HAVE_LIBVIRT
int
virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred,
- unsigned int ncred,
- void *cbdata)
+ unsigned int ncred,
+ void *cbdata)
{
- char **username = NULL, **password = NULL;
- const char *uri = cbdata;
- int i;
- int ret = -1;
-
- DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred);
-
- for (i = 0 ; i < ncred ; i++) {
- switch (cred[i].type) {
- case VIR_CRED_USERNAME:
- case VIR_CRED_AUTHNAME:
- username = &cred[i].result;
- break;
- case VIR_CRED_PASSPHRASE:
- password = &cred[i].result;
- break;
- default:
- DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type);
- return -1;
- }
+ char **username = NULL, **password = NULL;
+ const char *uri = cbdata;
+ int i;
+ int ret = -1;
+
+ DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred);
+
+ for (i = 0 ; i < ncred ; i++) {
+ switch (cred[i].type) {
+ case VIR_CRED_USERNAME:
+ case VIR_CRED_AUTHNAME:
+ username = &cred[i].result;
+ break;
+ case VIR_CRED_PASSPHRASE:
+ password = &cred[i].result;
+ break;
+ default:
+ DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type);
+ return -1;
}
-
- if (username || password) {
- ret = virt_viewer_auth_collect_credentials("libvirt", uri,
- username, password);
- if (ret < 0)
- goto cleanup;
- } else {
- ret = 0;
- }
-
- for (i = 0 ; i < ncred ; i++) {
- switch (cred[i].type) {
- case VIR_CRED_AUTHNAME:
- case VIR_CRED_USERNAME:
- case VIR_CRED_PASSPHRASE:
- if (cred[i].result)
- cred[i].resultlen = strlen(cred[i].result);
- else
- cred[i].resultlen = 0;
- DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type);
- break;
- }
+ }
+
+ if (username || password) {
+ ret = virt_viewer_auth_collect_credentials("libvirt", uri,
+ username, password);
+ if (ret < 0)
+ goto cleanup;
+ } else {
+ ret = 0;
+ }
+
+ for (i = 0 ; i < ncred ; i++) {
+ switch (cred[i].type) {
+ case VIR_CRED_AUTHNAME:
+ case VIR_CRED_USERNAME:
+ case VIR_CRED_PASSPHRASE:
+ if (cred[i].result)
+ cred[i].resultlen = strlen(cred[i].result);
+ else
+ cred[i].resultlen = 0;
+ DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type);
+ break;
}
+ }
cleanup:
- DEBUG_LOG("Return %d", ret);
- return ret;
+ DEBUG_LOG("Return %d", ret);
+ return ret;
}
#endif
-
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-auth.h b/src/virt-viewer-auth.h
index c111582..706da1b 100644
--- a/src/virt-viewer-auth.h
+++ b/src/virt-viewer-auth.h
@@ -32,18 +32,25 @@
#include "virt-viewer-util.h"
void virt_viewer_auth_vnc_credentials(GtkWidget *vnc,
- GValueArray *credList,
- char **message);
+ GValueArray *credList,
+ char **message);
int virt_viewer_auth_collect_credentials(const char *type,
- const char *address,
- char **username,
- char **password);
+ const char *address,
+ char **username,
+ char **password);
#ifdef HAVE_LIBVIRT
int virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred,
- unsigned int ncred,
- void *cbdata);
+ unsigned int ncred,
+ void *cbdata);
#endif
#endif
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
index 7c25ead..963b354 100644
--- a/src/virt-viewer-display-spice.c
+++ b/src/virt-viewer-display-spice.c
@@ -33,171 +33,170 @@
G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY)
struct _VirtViewerDisplaySpicePrivate {
- SpiceChannel *channel;
- SpiceDisplay *display;
+ SpiceChannel *channel;
+ SpiceDisplay *display;
};
#define VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpicePrivate))
static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display,
- const guint *keyvals,
- int nkeyvals);
+ const guint *keyvals,
+ int nkeyvals);
static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display);
static void
virt_viewer_display_spice_finalize(GObject *obj)
{
- VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj);
+ VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj);
- g_object_unref(spice->priv->display);
- g_object_unref(spice->priv->channel);
+ g_object_unref(spice->priv->display);
+ g_object_unref(spice->priv->channel);
- G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj);
+ G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj);
}
static void
virt_viewer_display_spice_class_init(VirtViewerDisplaySpiceClass *klass)
{
- VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
- GObjectClass *oclass = G_OBJECT_CLASS(klass);
+ VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
+ GObjectClass *oclass = G_OBJECT_CLASS(klass);
- oclass->finalize = virt_viewer_display_spice_finalize;
+ oclass->finalize = virt_viewer_display_spice_finalize;
- dclass->send_keys = virt_viewer_display_spice_send_keys;
- dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf;
+ dclass->send_keys = virt_viewer_display_spice_send_keys;
+ dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf;
- g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate));
+ g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate));
}
static void
virt_viewer_display_spice_init(VirtViewerDisplaySpice *self G_GNUC_UNUSED)
{
- self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self);
+ self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self);
- virt_viewer_display_set_maintain_aspect_ratio(VIRT_VIEWER_DISPLAY(self), FALSE);
+ virt_viewer_display_set_maintain_aspect_ratio(VIRT_VIEWER_DISPLAY(self), FALSE);
}
static void
virt_viewer_display_spice_send_keys(VirtViewerDisplay *display,
- const guint *keyvals,
- int nkeyvals)
+ const guint *keyvals,
+ int nkeyvals)
{
- VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
+ VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
- g_return_if_fail(self != NULL);
- g_return_if_fail(self->priv->display != NULL);
+ g_return_if_fail(self != NULL);
+ g_return_if_fail(self->priv->display != NULL);
- spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK);
+ spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK);
}
static GdkPixbuf *
virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display)
{
- VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
+ VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
- g_return_val_if_fail(self != NULL, NULL);
- g_return_val_if_fail(self->priv->display != NULL, NULL);
+ g_return_val_if_fail(self != NULL, NULL);
+ g_return_val_if_fail(self->priv->display != NULL, NULL);
- return spice_display_get_pixbuf(self->priv->display);
+ return spice_display_get_pixbuf(self->priv->display);
}
static void
display_mark(SpiceChannel *channel G_GNUC_UNUSED,
- gint mark,
- VirtViewerDisplay *display)
+ gint mark,
+ VirtViewerDisplay *display)
{
- DEBUG_LOG("display mark %d", mark);
+ DEBUG_LOG("display mark %d", mark);
- virt_viewer_display_set_show_hint(display, mark);
+ virt_viewer_display_set_show_hint(display, mark);
}
static void
primary_create(SpiceChannel *channel G_GNUC_UNUSED,
- gint format G_GNUC_UNUSED,
- gint width,
- gint height,
- gint stride G_GNUC_UNUSED,
- gint shmid G_GNUC_UNUSED,
- gpointer imgdata G_GNUC_UNUSED,
- VirtViewerDisplay *display)
+ gint format G_GNUC_UNUSED,
+ gint width,
+ gint height,
+ gint stride G_GNUC_UNUSED,
+ gint shmid G_GNUC_UNUSED,
+ gpointer imgdata G_GNUC_UNUSED,
+ VirtViewerDisplay *display)
{
- DEBUG_LOG("spice desktop resize %dx%d", width, height);
+ DEBUG_LOG("spice desktop resize %dx%d", width, height);
- virt_viewer_display_set_desktop_size(display, width, height);
+ virt_viewer_display_set_desktop_size(display, width, height);
}
static void
virt_viewer_display_spice_keyboard_grab(SpiceDisplay *display G_GNUC_UNUSED,
- int grabbed,
- VirtViewerDisplaySpice *self)
+ int grabbed,
+ VirtViewerDisplaySpice *self)
{
- if (grabbed)
- g_signal_emit_by_name(self, "display-keyboard-grab");
- else
- g_signal_emit_by_name(self, "display-keyboard-ungrab");
+ if (grabbed)
+ g_signal_emit_by_name(self, "display-keyboard-grab");
+ else
+ g_signal_emit_by_name(self, "display-keyboard-ungrab");
}
static void
virt_viewer_display_spice_mouse_grab(SpiceDisplay *display G_GNUC_UNUSED,
- int grabbed,
- VirtViewerDisplaySpice *self)
+ int grabbed,
+ VirtViewerDisplaySpice *self)
{
- if (grabbed)
- g_signal_emit_by_name(self, "display-pointer-grab");
- else
- g_signal_emit_by_name(self, "display-pointer-ungrab");
+ if (grabbed)
+ g_signal_emit_by_name(self, "display-pointer-grab");
+ else
+ g_signal_emit_by_name(self, "display-pointer-ungrab");
}
GtkWidget *
virt_viewer_display_spice_new(SpiceChannel *channel,
- SpiceDisplay *display)
+ SpiceDisplay *display)
{
- VirtViewerDisplaySpice *self;
- gint channelid;
-
- g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL);
- g_return_val_if_fail(SPICE_IS_DISPLAY(display), NULL);
-
- g_object_get(channel, "channel-id", &channelid, NULL);
-
- self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE,
- "nth-display", channelid,
- NULL);
- self->priv->channel = g_object_ref(channel);
- self->priv->display = g_object_ref(display);
-
- g_signal_connect(channel, "display-primary-create",
- G_CALLBACK(primary_create), self);
- g_signal_connect(channel, "display-mark",
- G_CALLBACK(display_mark), self);
-
- gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->priv->display));
- gtk_widget_show(GTK_WIDGET(self->priv->display));
- g_object_set(self->priv->display,
- "grab-keyboard", TRUE,
- "grab-mouse", TRUE,
- "scaling", TRUE,
- "resize-guest", TRUE,
- NULL);
-
- g_signal_connect(self->priv->display,
- "keyboard-grab",
- G_CALLBACK(virt_viewer_display_spice_keyboard_grab), self);
- g_signal_connect(self->priv->display,
- "mouse-grab",
- G_CALLBACK(virt_viewer_display_spice_mouse_grab), self);
-
- return GTK_WIDGET(self);
+ VirtViewerDisplaySpice *self;
+ gint channelid;
+
+ g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL);
+ g_return_val_if_fail(SPICE_IS_DISPLAY(display), NULL);
+
+ g_object_get(channel, "channel-id", &channelid, NULL);
+
+ self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE,
+ "nth-display", channelid,
+ NULL);
+ self->priv->channel = g_object_ref(channel);
+ self->priv->display = g_object_ref(display);
+
+ g_signal_connect(channel, "display-primary-create",
+ G_CALLBACK(primary_create), self);
+ g_signal_connect(channel, "display-mark",
+ G_CALLBACK(display_mark), self);
+
+ gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->priv->display));
+ gtk_widget_show(GTK_WIDGET(self->priv->display));
+ g_object_set(self->priv->display,
+ "grab-keyboard", TRUE,
+ "grab-mouse", TRUE,
+ "scaling", TRUE,
+ "resize-guest", TRUE,
+ NULL);
+
+ g_signal_connect(self->priv->display,
+ "keyboard-grab",
+ G_CALLBACK(virt_viewer_display_spice_keyboard_grab), self);
+ g_signal_connect(self->priv->display,
+ "mouse-grab",
+ G_CALLBACK(virt_viewer_display_spice_mouse_grab), self);
+
+ return GTK_WIDGET(self);
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-display-spice.h b/src/virt-viewer-display-spice.h
index 90bd1d0..2f4f985 100644
--- a/src/virt-viewer-display-spice.h
+++ b/src/virt-viewer-display-spice.h
@@ -34,48 +34,47 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_DISPLAY_SPICE virt_viewer_display_spice_get_type()
-#define VIRT_VIEWER_DISPLAY_SPICE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice))
+#define VIRT_VIEWER_DISPLAY_SPICE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice))
-#define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
+#define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
-#define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
+#define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
-#define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
+#define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
-#define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
+#define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
typedef struct _VirtViewerDisplaySpice VirtViewerDisplaySpice;
typedef struct _VirtViewerDisplaySpiceClass VirtViewerDisplaySpiceClass;
typedef struct _VirtViewerDisplaySpicePrivate VirtViewerDisplaySpicePrivate;
struct _VirtViewerDisplaySpice {
- VirtViewerDisplay parent;
+ VirtViewerDisplay parent;
- VirtViewerDisplaySpicePrivate *priv;
+ VirtViewerDisplaySpicePrivate *priv;
};
struct _VirtViewerDisplaySpiceClass {
- VirtViewerDisplayClass parent_class;
+ VirtViewerDisplayClass parent_class;
};
GType virt_viewer_display_spice_get_type(void);
GtkWidget* virt_viewer_display_spice_new(SpiceChannel *channel,
- SpiceDisplay *display);
+ SpiceDisplay *display);
G_END_DECLS
#endif /* _VIRT_VIEWER_DISPLAY_SPICE_H */
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-display-vnc.c b/src/virt-viewer-display-vnc.c
index 3228348..bfc0287 100644
--- a/src/virt-viewer-display-vnc.c
+++ b/src/virt-viewer-display-vnc.c
@@ -30,7 +30,7 @@
G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY)
struct _VirtViewerDisplayVncPrivate {
- VncDisplay *vnc;
+ VncDisplay *vnc;
};
#define VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncPrivate))
@@ -41,88 +41,88 @@ static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display)
static void
virt_viewer_display_vnc_finalize(GObject *obj)
{
- VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj);
+ VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj);
- g_object_unref(vnc->priv->vnc);
+ g_object_unref(vnc->priv->vnc);
- G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj);
+ G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj);
}
static void
virt_viewer_display_vnc_class_init(VirtViewerDisplayVncClass *klass)
{
- VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
- GObjectClass *oclass = G_OBJECT_CLASS(klass);
+ VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
+ GObjectClass *oclass = G_OBJECT_CLASS(klass);
- oclass->finalize = virt_viewer_display_vnc_finalize;
+ oclass->finalize = virt_viewer_display_vnc_finalize;
- dclass->send_keys = virt_viewer_display_vnc_send_keys;
- dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf;
+ dclass->send_keys = virt_viewer_display_vnc_send_keys;
+ dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf;
- g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate));
+ g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate));
}
static void
virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED)
{
- self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self);
+ self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self);
}
static void
virt_viewer_display_vnc_mouse_grab(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- g_signal_emit_by_name(display, "display-pointer-grab");
+ g_signal_emit_by_name(display, "display-pointer-grab");
}
static void
virt_viewer_display_vnc_mouse_ungrab(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- g_signal_emit_by_name(display, "display-pointer-ungrab");
+ g_signal_emit_by_name(display, "display-pointer-ungrab");
}
static void
virt_viewer_display_vnc_key_grab(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- g_signal_emit_by_name(display, "display-keyboard-grab");
+ g_signal_emit_by_name(display, "display-keyboard-grab");
}
static void
virt_viewer_display_vnc_key_ungrab(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- g_signal_emit_by_name(display, "display-keyboard-ungrab");
+ g_signal_emit_by_name(display, "display-keyboard-ungrab");
}
static void
virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display,
- const guint *keyvals,
- int nkeyvals)
+ const guint *keyvals,
+ int nkeyvals)
{
- VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
+ VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
- g_return_if_fail(self != NULL);
- g_return_if_fail(keyvals != NULL);
- g_return_if_fail(self->priv->vnc != NULL);
+ g_return_if_fail(self != NULL);
+ g_return_if_fail(keyvals != NULL);
+ g_return_if_fail(self->priv->vnc != NULL);
- vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals);
+ vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals);
}
static GdkPixbuf *
virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display)
{
- VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
+ VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
- g_return_val_if_fail(self != NULL, NULL);
- g_return_val_if_fail(self->priv->vnc != NULL, NULL);
+ g_return_val_if_fail(self != NULL, NULL);
+ g_return_val_if_fail(self->priv->vnc != NULL, NULL);
- return vnc_display_get_pixbuf(self->priv->vnc);
+ return vnc_display_get_pixbuf(self->priv->vnc);
}
@@ -134,65 +134,62 @@ virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display)
*/
static void
virt_viewer_display_vnc_resize_desktop(VncDisplay *vnc G_GNUC_UNUSED,
- int width, int height,
- VirtViewerDisplay *display)
+ int width, int height,
+ VirtViewerDisplay *display)
{
- DEBUG_LOG("desktop resize %dx%d", width, height);
+ DEBUG_LOG("desktop resize %dx%d", width, height);
- virt_viewer_display_set_desktop_size(display, width, height);
+ virt_viewer_display_set_desktop_size(display, width, height);
}
GtkWidget *
virt_viewer_display_vnc_new(VncDisplay *vnc)
{
- VirtViewerDisplayVnc *display;
-
- display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL);
-
- g_object_ref(vnc);
- g_object_ref(vnc); /* Because gtk_container_add steals the first ref */
- display->priv->vnc = vnc;
-
- gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc));
- vnc_display_set_keyboard_grab(display->priv->vnc, TRUE);
- vnc_display_set_pointer_grab(display->priv->vnc, TRUE);
-
- /*
- * In auto-resize mode we have things setup so that we always
- * automatically resize the top level window to be exactly the
- * same size as the VNC desktop, except when it won't fit on
- * the local screen, at which point we let it scale down.
- * The upshot is, we always want scaling enabled.
- * We disable force_size because we want to allow user to
- * manually size the widget smaller too
- */
- vnc_display_set_force_size(display->priv->vnc, FALSE);
- vnc_display_set_scaling(display->priv->vnc, TRUE);
-
- /* When VNC desktop resizes, we have to resize the containing widget */
- g_signal_connect(display->priv->vnc, "vnc-desktop-resize",
- G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display);
-
- g_signal_connect(display->priv->vnc, "vnc-pointer-grab",
- G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display);
- g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab",
- G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display);
- g_signal_connect(display->priv->vnc, "vnc-keyboard-grab",
- G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
- g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
- G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
-
- return GTK_WIDGET(display);
+ VirtViewerDisplayVnc *display;
+
+ display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL);
+
+ g_object_ref(vnc);
+ g_object_ref(vnc); /* Because gtk_container_add steals the first ref */
+ display->priv->vnc = vnc;
+
+ gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc));
+ vnc_display_set_keyboard_grab(display->priv->vnc, TRUE);
+ vnc_display_set_pointer_grab(display->priv->vnc, TRUE);
+
+ /*
+ * In auto-resize mode we have things setup so that we always
+ * automatically resize the top level window to be exactly the
+ * same size as the VNC desktop, except when it won't fit on
+ * the local screen, at which point we let it scale down.
+ * The upshot is, we always want scaling enabled.
+ * We disable force_size because we want to allow user to
+ * manually size the widget smaller too
+ */
+ vnc_display_set_force_size(display->priv->vnc, FALSE);
+ vnc_display_set_scaling(display->priv->vnc, TRUE);
+
+ /* When VNC desktop resizes, we have to resize the containing widget */
+ g_signal_connect(display->priv->vnc, "vnc-desktop-resize",
+ G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display);
+
+ g_signal_connect(display->priv->vnc, "vnc-pointer-grab",
+ G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display);
+ g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab",
+ G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display);
+ g_signal_connect(display->priv->vnc, "vnc-keyboard-grab",
+ G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
+ g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
+ G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
+
+ return GTK_WIDGET(display);
}
-
-
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-display-vnc.h b/src/virt-viewer-display-vnc.h
index ce9ec5f..bdc995d 100644
--- a/src/virt-viewer-display-vnc.h
+++ b/src/virt-viewer-display-vnc.h
@@ -33,33 +33,33 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_DISPLAY_VNC virt_viewer_display_vnc_get_type()
-#define VIRT_VIEWER_DISPLAY_VNC(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc))
+#define VIRT_VIEWER_DISPLAY_VNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc))
-#define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
+#define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
-#define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC))
+#define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC))
-#define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC))
+#define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC))
-#define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
+#define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
typedef struct _VirtViewerDisplayVnc VirtViewerDisplayVnc;
typedef struct _VirtViewerDisplayVncClass VirtViewerDisplayVncClass;
typedef struct _VirtViewerDisplayVncPrivate VirtViewerDisplayVncPrivate;
struct _VirtViewerDisplayVnc {
- VirtViewerDisplay parent;
+ VirtViewerDisplay parent;
- VirtViewerDisplayVncPrivate *priv;
+ VirtViewerDisplayVncPrivate *priv;
};
struct _VirtViewerDisplayVncClass {
- VirtViewerDisplayClass parent_class;
+ VirtViewerDisplayClass parent_class;
};
GType virt_viewer_display_vnc_get_type(void);
@@ -69,11 +69,10 @@ GtkWidget* virt_viewer_display_vnc_new(VncDisplay *display);
G_END_DECLS
#endif /* _VIRT_VIEWER_DISPLAY_VNC_H */
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index 7f821e5..22a4602 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -33,503 +33,503 @@
struct _VirtViewerDisplayPrivate
{
- gboolean dirty;
- guint desktopWidth;
- guint desktopHeight;
- guint zoom_level;
- gboolean zoom;
- gint nth_display;
- gint show_hint;
- gboolean maintain_aspect_ratio;
+ gboolean dirty;
+ guint desktopWidth;
+ guint desktopHeight;
+ guint zoom_level;
+ gboolean zoom;
+ gint nth_display;
+ gint show_hint;
+ gboolean maintain_aspect_ratio;
};
static void virt_viewer_display_size_request(GtkWidget *widget,
- GtkRequisition *requisition);
+ GtkRequisition *requisition);
#if GTK_CHECK_VERSION(3, 0, 0)
static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
- int *minwidth,
- int *defwidth);
+ int *minwidth,
+ int *defwidth);
static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
- int *minheight,
- int *defheight);
+ int *minheight,
+ int *defheight);
#endif
static void virt_viewer_display_size_allocate(GtkWidget *widget,
- GtkAllocation *allocation);
+ GtkAllocation *allocation);
static void virt_viewer_display_set_property(GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
static void virt_viewer_display_get_property(GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
static void virt_viewer_display_grab_focus(GtkWidget *widget);
G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN)
enum {
- PROP_0,
-
- PROP_DESKTOP_WIDTH,
- PROP_DESKTOP_HEIGHT,
- PROP_NTH_DISPLAY,
- PROP_ZOOM,
- PROP_ZOOM_LEVEL,
- PROP_SHOW_HINT,
+ PROP_0,
+
+ PROP_DESKTOP_WIDTH,
+ PROP_DESKTOP_HEIGHT,
+ PROP_NTH_DISPLAY,
+ PROP_ZOOM,
+ PROP_ZOOM_LEVEL,
+ PROP_SHOW_HINT,
};
static void
virt_viewer_display_class_init(VirtViewerDisplayClass *class)
{
- GObjectClass *object_class = G_OBJECT_CLASS(class);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class);
+ GObjectClass *object_class = G_OBJECT_CLASS(class);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class);
- object_class->set_property = virt_viewer_display_set_property;
- object_class->get_property = virt_viewer_display_get_property;
+ object_class->set_property = virt_viewer_display_set_property;
+ object_class->get_property = virt_viewer_display_get_property;
#if GTK_CHECK_VERSION(3, 0, 0)
- widget_class->get_preferred_width = virt_viewer_display_get_preferred_width;
- widget_class->get_preferred_height = virt_viewer_display_get_preferred_height;
+ widget_class->get_preferred_width = virt_viewer_display_get_preferred_width;
+ widget_class->get_preferred_height = virt_viewer_display_get_preferred_height;
#else
- widget_class->size_request = virt_viewer_display_size_request;
+ widget_class->size_request = virt_viewer_display_size_request;
#endif
- widget_class->size_allocate = virt_viewer_display_size_allocate;
- widget_class->grab_focus = virt_viewer_display_grab_focus;
-
- g_object_class_install_property(object_class,
- PROP_DESKTOP_WIDTH,
- g_param_spec_int("desktop-width",
- "Width",
- "Desktop width",
- 100,
- G_MAXINT32,
- 100,
- G_PARAM_READWRITE));
-
- g_object_class_install_property(object_class,
- PROP_DESKTOP_HEIGHT,
- g_param_spec_int("desktop-height",
- "Height",
- "Desktop height",
- 100,
- G_MAXINT32,
- 100,
- G_PARAM_READWRITE));
-
- g_object_class_install_property(object_class,
- PROP_ZOOM,
- g_param_spec_boolean("zoom",
- "Zoom",
- "Zoom",
- TRUE,
- G_PARAM_READWRITE));
-
- g_object_class_install_property(object_class,
- PROP_ZOOM_LEVEL,
- g_param_spec_int("zoom-level",
- "Zoom",
- "Zoom level",
- 10,
- 400,
- 100,
- G_PARAM_READWRITE));
-
- g_object_class_install_property(object_class,
- PROP_NTH_DISPLAY,
- g_param_spec_int("nth-display",
- "Nth display",
- "Nth display",
- 0,
- G_MAXINT32,
- 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property(object_class,
- PROP_SHOW_HINT,
- g_param_spec_int("show-hint",
- "Show hint",
- "Show state hint",
- 0,
- G_MAXINT32,
- 0,
- G_PARAM_READABLE));
-
-
- g_signal_new("display-pointer-grab",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("display-pointer-ungrab",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("display-keyboard-grab",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("display-keyboard-ungrab",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("display-desktop-resize",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate));
+ widget_class->size_allocate = virt_viewer_display_size_allocate;
+ widget_class->grab_focus = virt_viewer_display_grab_focus;
+
+ g_object_class_install_property(object_class,
+ PROP_DESKTOP_WIDTH,
+ g_param_spec_int("desktop-width",
+ "Width",
+ "Desktop width",
+ 100,
+ G_MAXINT32,
+ 100,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property(object_class,
+ PROP_DESKTOP_HEIGHT,
+ g_param_spec_int("desktop-height",
+ "Height",
+ "Desktop height",
+ 100,
+ G_MAXINT32,
+ 100,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property(object_class,
+ PROP_ZOOM,
+ g_param_spec_boolean("zoom",
+ "Zoom",
+ "Zoom",
+ TRUE,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property(object_class,
+ PROP_ZOOM_LEVEL,
+ g_param_spec_int("zoom-level",
+ "Zoom",
+ "Zoom level",
+ 10,
+ 400,
+ 100,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property(object_class,
+ PROP_NTH_DISPLAY,
+ g_param_spec_int("nth-display",
+ "Nth display",
+ "Nth display",
+ 0,
+ G_MAXINT32,
+ 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property(object_class,
+ PROP_SHOW_HINT,
+ g_param_spec_int("show-hint",
+ "Show hint",
+ "Show state hint",
+ 0,
+ G_MAXINT32,
+ 0,
+ G_PARAM_READABLE));
+
+
+ g_signal_new("display-pointer-grab",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("display-pointer-ungrab",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("display-keyboard-grab",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("display-keyboard-ungrab",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("display-desktop-resize",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate));
}
static void
virt_viewer_display_init(VirtViewerDisplay *display)
{
- gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
- gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
+ gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
+ gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
- display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display);
+ display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display);
- display->priv->desktopWidth = 100;
- display->priv->desktopHeight = 100;
- display->priv->zoom_level = 100;
- display->priv->zoom = TRUE;
- display->priv->dirty = TRUE;
- display->priv->maintain_aspect_ratio = TRUE;
+ display->priv->desktopWidth = 100;
+ display->priv->desktopHeight = 100;
+ display->priv->zoom_level = 100;
+ display->priv->zoom = TRUE;
+ display->priv->dirty = TRUE;
+ display->priv->maintain_aspect_ratio = TRUE;
}
GtkWidget*
virt_viewer_display_new(void)
{
- return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL);
+ return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL);
}
static void
virt_viewer_display_set_property(GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
- VirtViewerDisplayPrivate *priv = display->priv;
-
- switch (prop_id) {
- case PROP_DESKTOP_WIDTH:
- virt_viewer_display_set_desktop_size(display,
- g_value_get_int(value),
- priv->desktopHeight);
- break;
- case PROP_DESKTOP_HEIGHT:
- virt_viewer_display_set_desktop_size(display,
- priv->desktopWidth,
- g_value_get_int(value));
- break;
- case PROP_NTH_DISPLAY:
- priv->nth_display = g_value_get_int(value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
+ VirtViewerDisplayPrivate *priv = display->priv;
+
+ switch (prop_id) {
+ case PROP_DESKTOP_WIDTH:
+ virt_viewer_display_set_desktop_size(display,
+ g_value_get_int(value),
+ priv->desktopHeight);
+ break;
+ case PROP_DESKTOP_HEIGHT:
+ virt_viewer_display_set_desktop_size(display,
+ priv->desktopWidth,
+ g_value_get_int(value));
+ break;
+ case PROP_NTH_DISPLAY:
+ priv->nth_display = g_value_get_int(value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
virt_viewer_display_get_property(GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
- VirtViewerDisplayPrivate *priv = display->priv;
-
- switch (prop_id) {
- case PROP_DESKTOP_WIDTH:
- g_value_set_int(value, priv->desktopWidth);
- break;
- case PROP_DESKTOP_HEIGHT:
- g_value_set_int(value, priv->desktopHeight);
- break;
- case PROP_NTH_DISPLAY:
- g_value_set_int(value, priv->nth_display);
- break;
- case PROP_SHOW_HINT:
- g_value_set_int(value, priv->show_hint);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
+ VirtViewerDisplayPrivate *priv = display->priv;
+
+ switch (prop_id) {
+ case PROP_DESKTOP_WIDTH:
+ g_value_set_int(value, priv->desktopWidth);
+ break;
+ case PROP_DESKTOP_HEIGHT:
+ g_value_set_int(value, priv->desktopHeight);
+ break;
+ case PROP_NTH_DISPLAY:
+ g_value_set_int(value, priv->nth_display);
+ break;
+ case PROP_SHOW_HINT:
+ g_value_set_int(value, priv->show_hint);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
virt_viewer_display_grab_focus(GtkWidget *widget)
{
- GtkBin *bin = GTK_BIN(widget);
+ GtkBin *bin = GTK_BIN(widget);
- gtk_widget_grab_focus(gtk_bin_get_child(bin));
+ gtk_widget_grab_focus(gtk_bin_get_child(bin));
}
static gboolean
virt_viewer_display_idle(gpointer opaque)
{
- VirtViewerDisplay *display = opaque;
- VirtViewerDisplayPrivate *priv = display->priv;
- if (!priv->dirty)
- gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display));
- return FALSE;
+ VirtViewerDisplay *display = opaque;
+ VirtViewerDisplayPrivate *priv = display->priv;
+ if (!priv->dirty)
+ gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display));
+ return FALSE;
}
static void
virt_viewer_display_size_request(GtkWidget *widget,
- GtkRequisition *requisition)
+ GtkRequisition *requisition)
{
- VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
- VirtViewerDisplayPrivate *priv = display->priv;
- int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget));
-
- requisition->width = border_width * 2;
- requisition->height = border_width * 2;
-
- if (priv->dirty) {
- if (priv->zoom)
- requisition->width += priv->desktopWidth * priv->zoom_level / 100;
- else
- requisition->width += priv->desktopWidth;
- } else {
- requisition->width += 50;
- }
- if (priv->dirty) {
- if (priv->zoom)
- requisition->height += priv->desktopHeight * priv->zoom_level / 100;
- else
- requisition->height += priv->desktopHeight;
- } else {
- requisition->height += 50;
- }
-
- DEBUG_LOG("Display size request %dx%d (desktop %dx%d)",
- requisition->width, requisition->height,
- priv->desktopWidth, priv->desktopHeight);
+ VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
+ VirtViewerDisplayPrivate *priv = display->priv;
+ int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget));
+
+ requisition->width = border_width * 2;
+ requisition->height = border_width * 2;
+
+ if (priv->dirty) {
+ if (priv->zoom)
+ requisition->width += priv->desktopWidth * priv->zoom_level / 100;
+ else
+ requisition->width += priv->desktopWidth;
+ } else {
+ requisition->width += 50;
+ }
+ if (priv->dirty) {
+ if (priv->zoom)
+ requisition->height += priv->desktopHeight * priv->zoom_level / 100;
+ else
+ requisition->height += priv->desktopHeight;
+ } else {
+ requisition->height += 50;
+ }
+
+ DEBUG_LOG("Display size request %dx%d (desktop %dx%d)",
+ requisition->width, requisition->height,
+ priv->desktopWidth, priv->desktopHeight);
}
#if GTK_CHECK_VERSION(3, 0, 0)
static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
- int *minwidth,
- int *defwidth)
+ int *minwidth,
+ int *defwidth)
{
- GtkRequisition req;
+ GtkRequisition req;
- virt_viewer_display_size_request(widget, &req);
+ virt_viewer_display_size_request(widget, &req);
- *minwidth = *defwidth = req.width;
+ *minwidth = *defwidth = req.width;
}
static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
- int *minheight,
- int *defheight)
+ int *minheight,
+ int *defheight)
{
- GtkRequisition req;
+ GtkRequisition req;
- virt_viewer_display_size_request(widget, &req);
+ virt_viewer_display_size_request(widget, &req);
- *minheight = *defheight = req.height;
+ *minheight = *defheight = req.height;
}
#endif
static void
virt_viewer_display_size_allocate(GtkWidget *widget,
- GtkAllocation *allocation)
+ GtkAllocation *allocation)
{
- GtkBin *bin = GTK_BIN(widget);
- VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
- VirtViewerDisplayPrivate *priv = display->priv;
- GtkAllocation child_allocation;
- gint width, height;
- gint border_width;
- double desktopAspect;
- double actualAspect;
- GtkWidget *child = gtk_bin_get_child(bin);
-
- DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height);
- gtk_widget_set_allocation(widget, allocation);
-
- desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight;
-
- if (child &&
- gtk_widget_get_visible(child)) {
- if (!priv->maintain_aspect_ratio) {
- gtk_widget_size_allocate(child, allocation);
- goto end;
- }
-
- border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
-
- width = MAX(1, allocation->width - 2 * border_width);
- height = MAX(1, allocation->height - 2 * border_width);
- actualAspect = (double)width / (double)height;
-
- if (actualAspect > desktopAspect) {
- child_allocation.width = height * desktopAspect;
- child_allocation.height = height;
- } else {
- child_allocation.width = width;
- child_allocation.height = width / desktopAspect;
- }
-
- child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
- child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
-
- DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height);
- gtk_widget_size_allocate(child, &child_allocation);
- }
-
-end:
- /* This unsets the size request, so that the user can
- * manually resize the window smaller again
- */
- if (priv->dirty) {
- g_idle_add(virt_viewer_display_idle, widget);
- priv->dirty = FALSE;
- }
+ GtkBin *bin = GTK_BIN(widget);
+ VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
+ VirtViewerDisplayPrivate *priv = display->priv;
+ GtkAllocation child_allocation;
+ gint width, height;
+ gint border_width;
+ double desktopAspect;
+ double actualAspect;
+ GtkWidget *child = gtk_bin_get_child(bin);
+
+ DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height);
+ gtk_widget_set_allocation(widget, allocation);
+
+ desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight;
+
+ if (child &&
+ gtk_widget_get_visible(child)) {
+ if (!priv->maintain_aspect_ratio) {
+ gtk_widget_size_allocate(child, allocation);
+ goto end;
+ }
+
+ border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
+
+ width = MAX(1, allocation->width - 2 * border_width);
+ height = MAX(1, allocation->height - 2 * border_width);
+ actualAspect = (double)width / (double)height;
+
+ if (actualAspect > desktopAspect) {
+ child_allocation.width = height * desktopAspect;
+ child_allocation.height = height;
+ } else {
+ child_allocation.width = width;
+ child_allocation.height = width / desktopAspect;
+ }
+
+ child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
+ child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
+
+ DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height);
+ gtk_widget_size_allocate(child, &child_allocation);
+ }
+
+ end:
+ /* This unsets the size request, so that the user can
+ * manually resize the window smaller again
+ */
+ if (priv->dirty) {
+ g_idle_add(virt_viewer_display_idle, widget);
+ priv->dirty = FALSE;
+ }
}
void virt_viewer_display_set_maintain_aspect_ratio(VirtViewerDisplay *display,
- gboolean maintain)
+ gboolean maintain)
{
- g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
+ g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
- display->priv->maintain_aspect_ratio = maintain;
+ display->priv->maintain_aspect_ratio = maintain;
}
void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display,
- guint width,
- guint height)
+ guint width,
+ guint height)
{
- VirtViewerDisplayPrivate *priv = display->priv;
+ VirtViewerDisplayPrivate *priv = display->priv;
- if (width == priv->desktopWidth && height == priv->desktopHeight)
- return;
+ if (width == priv->desktopWidth && height == priv->desktopHeight)
+ return;
- priv->desktopWidth = width;
- priv->desktopHeight = height;
- priv->dirty = TRUE;
+ priv->desktopWidth = width;
+ priv->desktopHeight = height;
+ priv->dirty = TRUE;
- gtk_widget_queue_resize(GTK_WIDGET(display));
- g_signal_emit_by_name(display, "display-desktop-resize");
+ gtk_widget_queue_resize(GTK_WIDGET(display));
+ g_signal_emit_by_name(display, "display-desktop-resize");
}
void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
- guint *width,
- guint *height)
+ guint *width,
+ guint *height)
{
- VirtViewerDisplayPrivate *priv = display->priv;
+ VirtViewerDisplayPrivate *priv = display->priv;
- *width = priv->desktopWidth;
- *height = priv->desktopHeight;
+ *width = priv->desktopWidth;
+ *height = priv->desktopHeight;
}
void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
- guint zoom)
+ guint zoom)
{
- VirtViewerDisplayPrivate *priv = display->priv;
- GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
-
- if (zoom < 10)
- zoom = 10;
- if (zoom > 400)
- zoom = 400;
- priv->zoom_level = zoom;
-
- if (child && gtk_widget_get_visible(child)) {
- priv->dirty = TRUE;
- gtk_widget_queue_resize(GTK_WIDGET(display));
- }
+ VirtViewerDisplayPrivate *priv = display->priv;
+ GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
+
+ if (zoom < 10)
+ zoom = 10;
+ if (zoom > 400)
+ zoom = 400;
+ priv->zoom_level = zoom;
+
+ if (child && gtk_widget_get_visible(child)) {
+ priv->dirty = TRUE;
+ gtk_widget_queue_resize(GTK_WIDGET(display));
+ }
}
void virt_viewer_display_set_zoom(VirtViewerDisplay *display,
- gboolean zoom)
+ gboolean zoom)
{
- VirtViewerDisplayPrivate *priv = display->priv;
- GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
-
- priv->zoom = zoom;
- if (child && gtk_widget_get_visible(child)) {
- priv->dirty = TRUE;
- gtk_widget_queue_resize(GTK_WIDGET(display));
- }
+ VirtViewerDisplayPrivate *priv = display->priv;
+ GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
+
+ priv->zoom = zoom;
+ if (child && gtk_widget_get_visible(child)) {
+ priv->dirty = TRUE;
+ gtk_widget_queue_resize(GTK_WIDGET(display));
+ }
}
void virt_viewer_display_send_keys(VirtViewerDisplay *display,
- const guint *keyvals, int nkeyvals)
+ const guint *keyvals, int nkeyvals)
{
- g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
+ g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
- VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals);
+ VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals);
}
GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL);
+ g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL);
- return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display);
+ return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display);
}
void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, gint hint)
{
- VirtViewerDisplayPrivate *priv;
- g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
+ VirtViewerDisplayPrivate *priv;
+ g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
- priv = self->priv;
- if (priv->show_hint == hint)
- return;
+ priv = self->priv;
+ if (priv->show_hint == hint)
+ return;
- priv->show_hint = hint;
- g_object_notify(G_OBJECT(self), "show-hint");
+ priv->show_hint = hint;
+ g_object_notify(G_OBJECT(self), "show-hint");
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-display.h b/src/virt-viewer-display.h
index 49365ff..ea82936 100644
--- a/src/virt-viewer-display.h
+++ b/src/virt-viewer-display.h
@@ -30,20 +30,20 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type()
-#define VIRT_VIEWER_DISPLAY(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay))
+#define VIRT_VIEWER_DISPLAY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay))
-#define VIRT_VIEWER_DISPLAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
+#define VIRT_VIEWER_DISPLAY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
#define VIRT_VIEWER_IS_DISPLAY(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY))
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY))
#define VIRT_VIEWER_IS_DISPLAY_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY))
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY))
-#define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
+#define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
typedef struct _VirtViewerDisplay VirtViewerDisplay;
typedef struct _VirtViewerDisplayClass VirtViewerDisplayClass;
@@ -52,32 +52,32 @@ typedef struct _VirtViewerDisplayPrivate VirtViewerDisplayPrivate;
typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel;
enum {
- VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE = 0,
- VIRT_VIEWER_DISPLAY_SHOW_HINT_READY,
+ VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE = 0,
+ VIRT_VIEWER_DISPLAY_SHOW_HINT_READY,
};
/* perhaps this become an interface, and be pushed in gtkvnc and spice? */
struct _VirtViewerDisplay {
- GtkBin parent;
+ GtkBin parent;
- VirtViewerDisplayPrivate *priv;
+ VirtViewerDisplayPrivate *priv;
};
struct _VirtViewerDisplayClass {
- GtkBinClass parent_class;
+ GtkBinClass parent_class;
- /* virtual methods */
- void (*send_keys)(VirtViewerDisplay* display,
- const guint *keyvals, int nkeyvals);
- GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay* display);
+ /* virtual methods */
+ void (*send_keys)(VirtViewerDisplay* display,
+ const guint *keyvals, int nkeyvals);
+ GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay* display);
- /* signals */
- void (*display_pointer_grab)(VirtViewerDisplay *display);
- void (*display_pointer_ungrab)(VirtViewerDisplay *display);
- void (*display_keyboard_grab)(VirtViewerDisplay *display);
- void (*display_keyboard_ungrab)(VirtViewerDisplay *display);
+ /* signals */
+ void (*display_pointer_grab)(VirtViewerDisplay *display);
+ void (*display_pointer_ungrab)(VirtViewerDisplay *display);
+ void (*display_keyboard_grab)(VirtViewerDisplay *display);
+ void (*display_keyboard_ungrab)(VirtViewerDisplay *display);
- void (*display_desktop_resize)(VirtViewerDisplay *display);
+ void (*display_desktop_resize)(VirtViewerDisplay *display);
};
GType virt_viewer_display_get_type(void);
@@ -87,20 +87,20 @@ GtkWidget *virt_viewer_display_new(void);
void virt_viewer_display_set_maintain_aspect_ratio(VirtViewerDisplay *display,
gboolean maintain);
void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display,
- guint width,
- guint height);
+ guint width,
+ guint height);
void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
- guint *width,
- guint *height);
+ guint *width,
+ guint *height);
void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
- guint zoom);
+ guint zoom);
void virt_viewer_display_set_zoom(VirtViewerDisplay *display,
- gboolean zoom);
+ gboolean zoom);
void virt_viewer_display_send_keys(VirtViewerDisplay *display,
- const guint *keyvals, int nkeyvals);
+ const guint *keyvals, int nkeyvals);
GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display);
void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, gint hint);
@@ -109,8 +109,8 @@ G_END_DECLS
#endif /* _VIRT_VIEWER_DISPLAY_H */
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-events.c b/src/virt-viewer-events.c
index 87df739..c0fa068 100644
--- a/src/virt-viewer-events.c
+++ b/src/virt-viewer-events.c
@@ -48,8 +48,8 @@ static struct virt_viewer_events_handle **handles = NULL;
static gboolean
virt_viewer_events_dispatch_handle(GIOChannel *source G_GNUC_UNUSED,
- GIOCondition condition,
- gpointer opaque)
+ GIOCondition condition,
+ gpointer opaque)
{
struct virt_viewer_events_handle *data = opaque;
int events = 0;
@@ -73,10 +73,10 @@ virt_viewer_events_dispatch_handle(GIOChannel *source G_GNUC_UNUSED,
static
int virt_viewer_events_add_handle(int fd,
- int events,
- virEventHandleCallback cb,
- void *opaque,
- virFreeCallback ff)
+ int events,
+ virEventHandleCallback cb,
+ void *opaque,
+ virFreeCallback ff)
{
struct virt_viewer_events_handle *data;
GIOCondition cond = 0;
@@ -123,7 +123,7 @@ virt_viewer_events_find_handle(int watch)
static void
virt_viewer_events_update_handle(int watch,
- int events)
+ int events)
{
struct virt_viewer_events_handle *data = virt_viewer_events_find_handle(watch);
@@ -227,9 +227,9 @@ virt_viewer_events_dispatch_timeout(void *opaque)
static int
virt_viewer_events_add_timeout(int interval,
- virEventTimeoutCallback cb,
- void *opaque,
- virFreeCallback ff)
+ virEventTimeoutCallback cb,
+ void *opaque,
+ virFreeCallback ff)
{
struct virt_viewer_events_timeout *data;
@@ -269,7 +269,7 @@ virt_viewer_events_find_timeout(int timer)
static void
virt_viewer_events_update_timeout(int timer,
- int interval)
+ int interval)
{
struct virt_viewer_events_timeout *data = virt_viewer_events_find_timeout(timer);
@@ -346,3 +346,10 @@ void virt_viewer_events_register(void) {
virt_viewer_events_remove_timeout);
}
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/virt-viewer-events.h b/src/virt-viewer-events.h
index 44ff8d7..09653cd 100644
--- a/src/virt-viewer-events.h
+++ b/src/virt-viewer-events.h
@@ -28,3 +28,10 @@
void virt_viewer_events_register(void);
#endif
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/virt-viewer-main.c b/src/virt-viewer-main.c
index bb967bb..99b4d6f 100644
--- a/src/virt-viewer-main.c
+++ b/src/virt-viewer-main.c
@@ -35,121 +35,120 @@
static void virt_viewer_version(void)
{
- g_print(_("%s version %s\n"), PACKAGE, VERSION);
+ g_print(_("%s version %s\n"), PACKAGE, VERSION);
- exit(0);
+ exit(0);
}
int main(int argc, char **argv)
{
- GOptionContext *context;
- GError *error = NULL;
- int ret = 1;
- char *uri = NULL;
- int zoom = 100;
- gchar **args = NULL;
- gboolean verbose = FALSE;
- gboolean debug = FALSE;
- gboolean direct = FALSE;
- gboolean attach = FALSE;
- gboolean waitvm = FALSE;
- gboolean reconnect = FALSE;
- gboolean fullscreen = FALSE;
- VirtViewer *viewer = NULL;
- const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
- const GOptionEntry options [] = {
- { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
- virt_viewer_version, N_("Display version information"), NULL },
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- N_("Display verbose information"), NULL },
- { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
- N_("Direct connection with no automatic tunnels"), NULL },
- { "attach", 'a', 0, G_OPTION_ARG_NONE, &attach,
- N_("Attach to the local display using libvirt"), NULL },
- { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri,
- N_("Connect to hypervisor"), "URI"},
- { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm,
- N_("Wait for domain to start"), NULL },
- { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect,
- N_("Reconnect to domain upon restart"), NULL },
- { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
- N_("Zoom level of window, in percentage"), "ZOOM" },
- { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
- N_("Display debugging information"), NULL },
- { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
- N_("Open in full screen mode"), NULL },
- { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
- NULL, "DOMAIN-NAME|ID|UUID" },
- { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
- };
-
- setlocale(LC_ALL, "");
- bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- textdomain(GETTEXT_PACKAGE);
-
- g_set_application_name(_("Virt Viewer"));
-
- /* Setup command line options */
- context = g_option_context_new (_("- Virtual machine graphical console"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
+ GOptionContext *context;
+ GError *error = NULL;
+ int ret = 1;
+ char *uri = NULL;
+ int zoom = 100;
+ gchar **args = NULL;
+ gboolean verbose = FALSE;
+ gboolean debug = FALSE;
+ gboolean direct = FALSE;
+ gboolean attach = FALSE;
+ gboolean waitvm = FALSE;
+ gboolean reconnect = FALSE;
+ gboolean fullscreen = FALSE;
+ VirtViewer *viewer = NULL;
+ const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
+ const GOptionEntry options [] = {
+ { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
+ virt_viewer_version, N_("Display version information"), NULL },
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ N_("Display verbose information"), NULL },
+ { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
+ N_("Direct connection with no automatic tunnels"), NULL },
+ { "attach", 'a', 0, G_OPTION_ARG_NONE, &attach,
+ N_("Attach to the local display using libvirt"), NULL },
+ { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri,
+ N_("Connect to hypervisor"), "URI"},
+ { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm,
+ N_("Wait for domain to start"), NULL },
+ { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect,
+ N_("Reconnect to domain upon restart"), NULL },
+ { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
+ N_("Zoom level of window, in percentage"), "ZOOM" },
+ { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
+ N_("Display debugging information"), NULL },
+ { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
+ N_("Open in full screen mode"), NULL },
+ { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
+ NULL, "DOMAIN-NAME|ID|UUID" },
+ { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
+ };
+
+ setlocale(LC_ALL, "");
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ g_set_application_name(_("Virt Viewer"));
+
+ /* Setup command line options */
+ context = g_option_context_new (_("- Virtual machine graphical console"));
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_add_group (context, gtk_get_option_group (TRUE));
#ifdef HAVE_GTK_VNC
- g_option_context_add_group (context, vnc_display_get_option_group ());
+ g_option_context_add_group (context, vnc_display_get_option_group ());
#endif
#ifdef HAVE_SPICE_GTK
- g_option_context_add_group (context, spice_get_option_group ());
+ g_option_context_add_group (context, spice_get_option_group ());
#endif
- g_option_context_parse (context, &argc, &argv, &error);
- if (error) {
- g_printerr("%s\n%s\n",
- error->message,
- gettext(help_msg));
- g_error_free(error);
- goto cleanup;
- }
+ g_option_context_parse (context, &argc, &argv, &error);
+ if (error) {
+ g_printerr("%s\n%s\n",
+ error->message,
+ gettext(help_msg));
+ g_error_free(error);
+ goto cleanup;
+ }
- g_option_context_free(context);
+ g_option_context_free(context);
- if (!args || (g_strv_length(args) != 1)) {
- g_printerr(_("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg);
- goto cleanup;
- }
+ if (!args || (g_strv_length(args) != 1)) {
+ g_printerr(_("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg);
+ goto cleanup;
+ }
- if (zoom < 10 || zoom > 200) {
- g_printerr(_("Zoom level must be within 10-200\n"));
- goto cleanup;
- }
+ if (zoom < 10 || zoom > 200) {
+ g_printerr(_("Zoom level must be within 10-200\n"));
+ goto cleanup;
+ }
- virt_viewer_app_set_debug(debug);
+ virt_viewer_app_set_debug(debug);
- viewer = virt_viewer_new(uri, args[0], zoom, direct, attach, waitvm, reconnect, verbose, NULL);
- if (viewer == NULL)
- goto cleanup;
+ viewer = virt_viewer_new(uri, args[0], zoom, direct, attach, waitvm, reconnect, verbose, NULL);
+ if (viewer == NULL)
+ goto cleanup;
- g_object_set(viewer, "fullscreen", fullscreen, NULL);
- if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer)))
- goto cleanup;
+ g_object_set(viewer, "fullscreen", fullscreen, NULL);
+ if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer)))
+ goto cleanup;
- gtk_main();
+ gtk_main();
- ret = 0;
+ ret = 0;
-cleanup:
- if (viewer)
- g_object_unref(viewer);
- g_free(uri);
- g_strfreev(args);
+ cleanup:
+ if (viewer)
+ g_object_unref(viewer);
+ g_free(uri);
+ g_strfreev(args);
- return ret;
+ return ret;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-notebook.c b/src/virt-viewer-notebook.c
index b4e09ec..f1a5b5c 100644
--- a/src/virt-viewer-notebook.c
+++ b/src/virt-viewer-notebook.c
@@ -26,124 +26,123 @@
G_DEFINE_TYPE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK)
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate))
+#define GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate))
struct _VirtViewerNotebookPrivate {
- GtkWidget *status;
+ GtkWidget *status;
};
static void
virt_viewer_notebook_get_property (GObject *object, guint property_id,
- GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- switch (property_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_notebook_set_property (GObject *object, guint property_id,
- const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- switch (property_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_notebook_dispose (GObject *object)
{
- G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object);
+ G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object);
}
static void
virt_viewer_notebook_class_init (VirtViewerNotebookClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate));
+ g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate));
- object_class->get_property = virt_viewer_notebook_get_property;
- object_class->set_property = virt_viewer_notebook_set_property;
- object_class->dispose = virt_viewer_notebook_dispose;
+ object_class->get_property = virt_viewer_notebook_get_property;
+ object_class->set_property = virt_viewer_notebook_set_property;
+ object_class->dispose = virt_viewer_notebook_dispose;
}
static void
virt_viewer_notebook_init (VirtViewerNotebook *self)
{
- VirtViewerNotebookPrivate *priv;
- GdkColor color;
-
- self->priv = GET_PRIVATE(self);
- priv = self->priv;
-
- priv->status = gtk_label_new("");
- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE);
- gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE);
- gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL);
- gdk_color_parse("white", &color);
- gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color);
+ VirtViewerNotebookPrivate *priv;
+ GdkColor color;
+
+ self->priv = GET_PRIVATE(self);
+ priv = self->priv;
+
+ priv->status = gtk_label_new("");
+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE);
+ gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE);
+ gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL);
+ gdk_color_parse("white", &color);
+ gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color);
}
void
virt_viewer_notebook_show_status_va(VirtViewerNotebook *self, const gchar *fmt, va_list args)
{
- VirtViewerNotebookPrivate *priv;
- gchar *text;
-
- DEBUG_LOG("notebook show status %p", self);
- g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
-
- text = g_strdup_vprintf(fmt, args);
- priv = self->priv;
- gtk_label_set_text(GTK_LABEL(priv->status), text);
- gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0);
- gtk_widget_show_all(GTK_WIDGET(self));
- g_free(text);
+ VirtViewerNotebookPrivate *priv;
+ gchar *text;
+
+ DEBUG_LOG("notebook show status %p", self);
+ g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
+
+ text = g_strdup_vprintf(fmt, args);
+ priv = self->priv;
+ gtk_label_set_text(GTK_LABEL(priv->status), text);
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0);
+ gtk_widget_show_all(GTK_WIDGET(self));
+ g_free(text);
}
void
virt_viewer_notebook_show_status(VirtViewerNotebook *self, const gchar *fmt, ...)
{
- va_list args;
+ va_list args;
- g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
+ g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
- va_start(args, fmt);
- virt_viewer_notebook_show_status_va(self, fmt, args);
- va_end(args);
+ va_start(args, fmt);
+ virt_viewer_notebook_show_status_va(self, fmt, args);
+ va_end(args);
}
void
virt_viewer_notebook_show_display(VirtViewerNotebook *self)
{
- GtkWidget *display;
+ GtkWidget *display;
- DEBUG_LOG("notebook show display %p", self);
- g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
+ DEBUG_LOG("notebook show display %p", self);
+ g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
- display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1);
- g_warn_if_fail(display != NULL);
- gtk_widget_grab_focus(display);
+ display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1);
+ g_warn_if_fail(display != NULL);
+ gtk_widget_grab_focus(display);
- gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1);
- gtk_widget_show_all(GTK_WIDGET(self));
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1);
+ gtk_widget_show_all(GTK_WIDGET(self));
}
VirtViewerNotebook*
virt_viewer_notebook_new (void)
{
- return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL);
+ return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL);
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-notebook.h b/src/virt-viewer-notebook.h
index 0d2b0ce..b349f61 100644
--- a/src/virt-viewer-notebook.h
+++ b/src/virt-viewer-notebook.h
@@ -31,30 +31,30 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_NOTEBOOK virt_viewer_notebook_get_type()
-#define VIRT_VIEWER_NOTEBOOK(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook))
+#define VIRT_VIEWER_NOTEBOOK(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook))
-#define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
+#define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
-#define VIRT_VIEWER_IS_NOTEBOOK(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK))
+#define VIRT_VIEWER_IS_NOTEBOOK(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK))
-#define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK))
+#define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK))
-#define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
+#define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
typedef struct _VirtViewerNotebookPrivate VirtViewerNotebookPrivate;
typedef struct {
- GtkNotebook parent;
- VirtViewerNotebookPrivate *priv;
+ GtkNotebook parent;
+ VirtViewerNotebookPrivate *priv;
} VirtViewerNotebook;
typedef struct {
- GtkNotebookClass parent_class;
+ GtkNotebookClass parent_class;
} VirtViewerNotebookClass;
GType virt_viewer_notebook_get_type (void);
@@ -67,12 +67,10 @@ void virt_viewer_notebook_show_display(VirtViewerNotebook *nb);
G_END_DECLS
#endif /* _VIRT_VIEWER_NOTEBOOK */
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
index a39ea07..709f3ed 100644
--- a/src/virt-viewer-session-spice.c
+++ b/src/virt-viewer-session-spice.c
@@ -36,16 +36,16 @@ G_DEFINE_TYPE (VirtViewerSessionSpice, virt_viewer_session_spice, VIRT_VIEWER_TY
struct _VirtViewerSessionSpicePrivate {
- SpiceSession *session;
- SpiceGtkSession *gtk_session;
- SpiceAudio *audio;
+ SpiceSession *session;
+ SpiceGtkSession *gtk_session;
+ SpiceAudio *audio;
};
#define VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpicePrivate))
enum {
- PROP_0,
- PROP_SPICE_SESSION,
+ PROP_0,
+ PROP_SPICE_SESSION,
};
@@ -57,391 +57,390 @@ static gboolean virt_viewer_session_spice_channel_open_fd(VirtViewerSession *ses
static gboolean virt_viewer_session_spice_has_usb(VirtViewerSession *session);
static void virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session, GtkWindow *parent);
static void virt_viewer_session_spice_channel_new(SpiceSession *s,
- SpiceChannel *channel,
- VirtViewerSession *session);
+ SpiceChannel *channel,
+ VirtViewerSession *session);
static void virt_viewer_session_spice_channel_destroy(SpiceSession *s,
- SpiceChannel *channel,
- VirtViewerSession *session);
+ SpiceChannel *channel,
+ VirtViewerSession *session);
static void
virt_viewer_session_spice_get_property(GObject *object, guint property_id,
- GValue *value, GParamSpec *pspec)
+ GValue *value, GParamSpec *pspec)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(object);
- VirtViewerSessionSpicePrivate *priv = self->priv;
-
- switch (property_id) {
- case PROP_SPICE_SESSION:
- g_value_set_object(value, priv->session);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(object);
+ VirtViewerSessionSpicePrivate *priv = self->priv;
+
+ switch (property_id) {
+ case PROP_SPICE_SESSION:
+ g_value_set_object(value, priv->session);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_session_spice_set_property(GObject *object, guint property_id,
- const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- switch (property_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_session_spice_dispose(GObject *obj)
{
- VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj);
+ VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj);
- if (spice->priv->session) {
- spice_session_disconnect(spice->priv->session);
- g_object_unref(spice->priv->session);
- }
- if (spice->priv->audio)
- g_object_unref(spice->priv->audio);
+ if (spice->priv->session) {
+ spice_session_disconnect(spice->priv->session);
+ g_object_unref(spice->priv->session);
+ }
+ if (spice->priv->audio)
+ g_object_unref(spice->priv->audio);
- G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->finalize(obj);
+ G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->finalize(obj);
}
static void
virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
{
- VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
- GObjectClass *oclass = G_OBJECT_CLASS(klass);
-
- oclass->get_property = virt_viewer_session_spice_get_property;
- oclass->set_property = virt_viewer_session_spice_set_property;
- oclass->dispose = virt_viewer_session_spice_dispose;
-
- dclass->close = virt_viewer_session_spice_close;
- dclass->open_fd = virt_viewer_session_spice_open_fd;
- dclass->open_host = virt_viewer_session_spice_open_host;
- dclass->open_uri = virt_viewer_session_spice_open_uri;
- dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd;
- dclass->has_usb = virt_viewer_session_spice_has_usb;
- dclass->usb_device_selection = virt_viewer_session_spice_usb_device_selection;
-
- g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate));
-
- g_object_class_install_property(oclass,
- PROP_SPICE_SESSION,
- g_param_spec_object("spice-session",
- "Spice session",
- "Spice session",
- SPICE_TYPE_SESSION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
+ GObjectClass *oclass = G_OBJECT_CLASS(klass);
+
+ oclass->get_property = virt_viewer_session_spice_get_property;
+ oclass->set_property = virt_viewer_session_spice_set_property;
+ oclass->dispose = virt_viewer_session_spice_dispose;
+
+ dclass->close = virt_viewer_session_spice_close;
+ dclass->open_fd = virt_viewer_session_spice_open_fd;
+ dclass->open_host = virt_viewer_session_spice_open_host;
+ dclass->open_uri = virt_viewer_session_spice_open_uri;
+ dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd;
+ dclass->has_usb = virt_viewer_session_spice_has_usb;
+ dclass->usb_device_selection = virt_viewer_session_spice_usb_device_selection;
+
+ g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate));
+
+ g_object_class_install_property(oclass,
+ PROP_SPICE_SESSION,
+ g_param_spec_object("spice-session",
+ "Spice session",
+ "Spice session",
+ SPICE_TYPE_SESSION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
}
static void
virt_viewer_session_spice_init(VirtViewerSessionSpice *self G_GNUC_UNUSED)
{
- self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self);
+ self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self);
}
static void
usb_connect_failed(GObject *object G_GNUC_UNUSED,
- SpiceUsbDevice *device G_GNUC_UNUSED,
- GError *error, VirtViewerSessionSpice *self)
+ SpiceUsbDevice *device G_GNUC_UNUSED,
+ GError *error, VirtViewerSessionSpice *self)
{
- if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- return;
+ if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ return;
- g_signal_emit_by_name(self, "session-usb-failed", error->message);
+ g_signal_emit_by_name(self, "session-usb-failed", error->message);
}
static void
create_spice_session(VirtViewerSessionSpice *self)
{
- SpiceUsbDeviceManager *manager;
+ SpiceUsbDeviceManager *manager;
- g_return_if_fail(self != NULL);
- g_return_if_fail(self->priv->session == NULL);
+ g_return_if_fail(self != NULL);
+ g_return_if_fail(self->priv->session == NULL);
- self->priv->session = spice_session_new();
- spice_set_session_option(self->priv->session);
+ self->priv->session = spice_session_new();
+ spice_set_session_option(self->priv->session);
- self->priv->gtk_session = spice_gtk_session_get(self->priv->session);
- g_object_set(self->priv->gtk_session, "auto-clipboard", TRUE, NULL);
+ self->priv->gtk_session = spice_gtk_session_get(self->priv->session);
+ g_object_set(self->priv->gtk_session, "auto-clipboard", TRUE, NULL);
- g_signal_connect(self->priv->session, "channel-new",
- G_CALLBACK(virt_viewer_session_spice_channel_new), self);
- g_signal_connect(self->priv->session, "channel-destroy",
- G_CALLBACK(virt_viewer_session_spice_channel_destroy), self);
+ g_signal_connect(self->priv->session, "channel-new",
+ G_CALLBACK(virt_viewer_session_spice_channel_new), self);
+ g_signal_connect(self->priv->session, "channel-destroy",
+ G_CALLBACK(virt_viewer_session_spice_channel_destroy), self);
- manager = spice_usb_device_manager_get(self->priv->session, NULL);
- if (manager)
- g_signal_connect(manager, "auto-connect-failed",
- G_CALLBACK(usb_connect_failed), self);
+ manager = spice_usb_device_manager_get(self->priv->session, NULL);
+ if (manager)
+ g_signal_connect(manager, "auto-connect-failed",
+ G_CALLBACK(usb_connect_failed), self);
- g_object_bind_property(self, "auto-usbredir",
- self->priv->gtk_session, "auto-usbredir",
- G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+ g_object_bind_property(self, "auto-usbredir",
+ self->priv->gtk_session, "auto-usbredir",
+ G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
}
static void
virt_viewer_session_spice_close(VirtViewerSession *session)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- g_return_if_fail(self != NULL);
+ g_return_if_fail(self != NULL);
- virt_viewer_session_clear_displays(session);
+ virt_viewer_session_clear_displays(session);
- if (self->priv->session) {
- spice_session_disconnect(self->priv->session);
- g_object_unref(self->priv->session);
- self->priv->session = NULL;
- self->priv->gtk_session = NULL;
+ if (self->priv->session) {
+ spice_session_disconnect(self->priv->session);
+ g_object_unref(self->priv->session);
+ self->priv->session = NULL;
+ self->priv->gtk_session = NULL;
- if (self->priv->audio)
- g_object_unref(self->priv->audio);
- self->priv->audio = NULL;
- }
+ if (self->priv->audio)
+ g_object_unref(self->priv->audio);
+ self->priv->audio = NULL;
+ }
- /* FIXME: version 0.7 of spice-gtk allows reuse of session */
- create_spice_session(self);
+ /* FIXME: version 0.7 of spice-gtk allows reuse of session */
+ create_spice_session(self);
}
static gboolean
virt_viewer_session_spice_open_host(VirtViewerSession *session,
- char *host,
- char *port)
+ char *host,
+ char *port)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- g_return_val_if_fail(self != NULL, FALSE);
- g_return_val_if_fail(self->priv->session != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self->priv->session != NULL, FALSE);
- g_object_set(self->priv->session,
- "host", host,
- "port", port,
- NULL);
+ g_object_set(self->priv->session,
+ "host", host,
+ "port", port,
+ NULL);
- return spice_session_connect(self->priv->session);
+ return spice_session_connect(self->priv->session);
}
static gboolean
virt_viewer_session_spice_open_uri(VirtViewerSession *session,
- char *uri)
+ char *uri)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- g_return_val_if_fail(self != NULL, FALSE);
- g_return_val_if_fail(self->priv->session != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self->priv->session != NULL, FALSE);
- g_object_set(self->priv->session, "uri", uri, NULL);
+ g_object_set(self->priv->session, "uri", uri, NULL);
- return spice_session_connect(self->priv->session);
+ return spice_session_connect(self->priv->session);
}
static gboolean
virt_viewer_session_spice_open_fd(VirtViewerSession *session,
- int fd)
+ int fd)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
- return spice_session_open_fd(self->priv->session, fd);
+ return spice_session_open_fd(self->priv->session, fd);
}
static gboolean
virt_viewer_session_spice_channel_open_fd(VirtViewerSession *session,
- VirtViewerSessionChannel *channel,
- int fd)
+ VirtViewerSessionChannel *channel,
+ int fd)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
- return spice_channel_open_fd(SPICE_CHANNEL(channel), fd);
+ return spice_channel_open_fd(SPICE_CHANNEL(channel), fd);
}
static void
virt_viewer_session_spice_channel_open_fd_request(SpiceChannel *channel,
- gint tls G_GNUC_UNUSED,
- VirtViewerSession *session)
+ gint tls G_GNUC_UNUSED,
+ VirtViewerSession *session)
{
- g_signal_emit_by_name(session, "session-channel-open", channel);
+ g_signal_emit_by_name(session, "session-channel-open", channel);
}
static void
virt_viewer_session_spice_main_channel_event(SpiceChannel *channel G_GNUC_UNUSED,
- SpiceChannelEvent event,
- VirtViewerSession *session)
+ SpiceChannelEvent event,
+ VirtViewerSession *session)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- char *password = NULL;
-
- g_return_if_fail(self != NULL);
-
- switch (event) {
- case SPICE_CHANNEL_OPENED:
- DEBUG_LOG("main channel: opened");
- break;
- case SPICE_CHANNEL_CLOSED:
- DEBUG_LOG("main channel: closed");
- g_signal_emit_by_name(session, "session-disconnected");
- break;
- case SPICE_CHANNEL_ERROR_CONNECT:
- DEBUG_LOG("main channel: failed to connect");
- g_signal_emit_by_name(session, "session-disconnected");
- break;
- case SPICE_CHANNEL_ERROR_AUTH:
- DEBUG_LOG("main channel: auth failure (wrong password?)");
- int ret = virt_viewer_auth_collect_credentials("SPICE",
- NULL,
- NULL, &password);
- if (ret < 0) {
- g_signal_emit_by_name(session, "session-cancelled");
- } else {
- g_object_set(self->priv->session, "password", password, NULL);
- spice_session_connect(self->priv->session);
- }
- break;
- default:
- g_message("unhandled spice main channel event: %d", event);
- g_signal_emit_by_name(session, "session-disconnected");
- break;
- }
-
- g_free(password);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ char *password = NULL;
+
+ g_return_if_fail(self != NULL);
+
+ switch (event) {
+ case SPICE_CHANNEL_OPENED:
+ DEBUG_LOG("main channel: opened");
+ break;
+ case SPICE_CHANNEL_CLOSED:
+ DEBUG_LOG("main channel: closed");
+ g_signal_emit_by_name(session, "session-disconnected");
+ break;
+ case SPICE_CHANNEL_ERROR_CONNECT:
+ DEBUG_LOG("main channel: failed to connect");
+ g_signal_emit_by_name(session, "session-disconnected");
+ break;
+ case SPICE_CHANNEL_ERROR_AUTH:
+ DEBUG_LOG("main channel: auth failure (wrong password?)");
+ int ret = virt_viewer_auth_collect_credentials("SPICE",
+ NULL,
+ NULL, &password);
+ if (ret < 0) {
+ g_signal_emit_by_name(session, "session-cancelled");
+ } else {
+ g_object_set(self->priv->session, "password", password, NULL);
+ spice_session_connect(self->priv->session);
+ }
+ break;
+ default:
+ g_message("unhandled spice main channel event: %d", event);
+ g_signal_emit_by_name(session, "session-disconnected");
+ break;
+ }
+
+ g_free(password);
}
static gboolean
virt_viewer_session_spice_has_usb(VirtViewerSession *session)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- VirtViewerSessionSpicePrivate *priv = self->priv;
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpicePrivate *priv = self->priv;
- return spice_usb_device_manager_get(priv->session, NULL) &&
- spice_session_has_channel_type(priv->session,
- SPICE_CHANNEL_USBREDIR);
+ return spice_usb_device_manager_get(priv->session, NULL) &&
+ spice_session_has_channel_type(priv->session,
+ SPICE_CHANNEL_USBREDIR);
}
static void
virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session,
- GtkWindow *parent)
+ GtkWindow *parent)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- VirtViewerSessionSpicePrivate *priv = self->priv;
- GtkWidget *dialog, *area, *usb_device_widget;
-
- /* Create the widgets */
- dialog = gtk_dialog_new_with_buttons(
- _("Select USB devices for redirection"), parent,
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
- area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
-
- usb_device_widget = spice_usb_device_widget_new(priv->session,
- "%s %s");
- g_signal_connect(usb_device_widget, "connect-failed",
- G_CALLBACK(usb_connect_failed), self);
- gtk_box_pack_start(GTK_BOX(area), usb_device_widget, TRUE, TRUE, 5);
-
- /* show and run */
- gtk_widget_show_all(dialog);
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ VirtViewerSessionSpicePrivate *priv = self->priv;
+ GtkWidget *dialog, *area, *usb_device_widget;
+
+ /* Create the widgets */
+ dialog = gtk_dialog_new_with_buttons(
+ _("Select USB devices for redirection"), parent,
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
+ area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+
+ usb_device_widget = spice_usb_device_widget_new(priv->session,
+ "%s %s");
+ g_signal_connect(usb_device_widget, "connect-failed",
+ G_CALLBACK(usb_connect_failed), self);
+ gtk_box_pack_start(GTK_BOX(area), usb_device_widget, TRUE, TRUE, 5);
+
+ /* show and run */
+ gtk_widget_show_all(dialog);
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
}
static void
virt_viewer_session_spice_channel_new(SpiceSession *s,
- SpiceChannel *channel,
- VirtViewerSession *session)
+ SpiceChannel *channel,
+ VirtViewerSession *session)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- int id;
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ int id;
- g_return_if_fail(self != NULL);
+ g_return_if_fail(self != NULL);
- g_signal_connect(channel, "open-fd",
- G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self);
+ g_signal_connect(channel, "open-fd",
+ G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self);
- g_object_get(channel, "channel-id", &id, NULL);
+ g_object_get(channel, "channel-id", &id, NULL);
- if (SPICE_IS_MAIN_CHANNEL(channel)) {
- g_signal_connect(channel, "channel-event",
- G_CALLBACK(virt_viewer_session_spice_main_channel_event), self);
- }
+ if (SPICE_IS_MAIN_CHANNEL(channel)) {
+ g_signal_connect(channel, "channel-event",
+ G_CALLBACK(virt_viewer_session_spice_main_channel_event), self);
+ }
- if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
- GtkWidget *display;
+ if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
+ GtkWidget *display;
- g_signal_emit_by_name(session, "session-connected");
+ g_signal_emit_by_name(session, "session-connected");
- DEBUG_LOG("new session channel (#%d)", id);
- display = virt_viewer_display_spice_new(channel,
- spice_display_new(s, id));
+ DEBUG_LOG("new session channel (#%d)", id);
+ display = virt_viewer_display_spice_new(channel,
+ spice_display_new(s, id));
- virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
- VIRT_VIEWER_DISPLAY(display));
+ virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
+ VIRT_VIEWER_DISPLAY(display));
- g_signal_emit_by_name(session, "session-initialized");
- }
+ g_signal_emit_by_name(session, "session-initialized");
+ }
- if (SPICE_IS_INPUTS_CHANNEL(channel)) {
- DEBUG_LOG("new inputs channel");
- }
+ if (SPICE_IS_INPUTS_CHANNEL(channel)) {
+ DEBUG_LOG("new inputs channel");
+ }
- if (SPICE_IS_PLAYBACK_CHANNEL(channel)) {
- DEBUG_LOG("new audio channel");
- if (self->priv->audio != NULL)
- return;
- self->priv->audio = spice_audio_new(s, NULL, NULL);
- }
+ if (SPICE_IS_PLAYBACK_CHANNEL(channel)) {
+ DEBUG_LOG("new audio channel");
+ if (self->priv->audio != NULL)
+ return;
+ self->priv->audio = spice_audio_new(s, NULL, NULL);
+ }
}
static void
virt_viewer_session_spice_channel_destroy(G_GNUC_UNUSED SpiceSession *s,
- SpiceChannel *channel,
- VirtViewerSession *session)
+ SpiceChannel *channel,
+ VirtViewerSession *session)
{
- VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
- int id;
+ VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
+ int id;
- g_return_if_fail(self != NULL);
+ g_return_if_fail(self != NULL);
- g_object_get(channel, "channel-id", &id, NULL);
- if (SPICE_IS_MAIN_CHANNEL(channel)) {
- DEBUG_LOG("zap main channel");
- }
+ g_object_get(channel, "channel-id", &id, NULL);
+ if (SPICE_IS_MAIN_CHANNEL(channel)) {
+ DEBUG_LOG("zap main channel");
+ }
- if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
- DEBUG_LOG("zap session channel (#%d)", id);
- }
+ if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
+ DEBUG_LOG("zap session channel (#%d)", id);
+ }
- if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) {
- DEBUG_LOG("zap audio channel");
- g_object_unref(self->priv->audio);
- self->priv->audio = NULL;
- }
+ if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) {
+ DEBUG_LOG("zap audio channel");
+ g_object_unref(self->priv->audio);
+ self->priv->audio = NULL;
+ }
}
VirtViewerSession *
virt_viewer_session_spice_new(void)
{
- VirtViewerSessionSpice *self;
+ VirtViewerSessionSpice *self;
- self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, NULL);
+ self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, NULL);
- create_spice_session(self);
+ create_spice_session(self);
- return VIRT_VIEWER_SESSION(self);
+ return VIRT_VIEWER_SESSION(self);
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session-spice.h b/src/virt-viewer-session-spice.h
index 8926940..192c549 100644
--- a/src/virt-viewer-session-spice.h
+++ b/src/virt-viewer-session-spice.h
@@ -34,33 +34,33 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_SESSION_SPICE virt_viewer_session_spice_get_type()
-#define VIRT_VIEWER_SESSION_SPICE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice))
+#define VIRT_VIEWER_SESSION_SPICE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice))
-#define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
+#define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
-#define VIRT_VIEWER_IS_SESSION_SPICE(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE))
+#define VIRT_VIEWER_IS_SESSION_SPICE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE))
-#define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE))
+#define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE))
-#define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
+#define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
typedef struct _VirtViewerSessionSpice VirtViewerSessionSpice;
typedef struct _VirtViewerSessionSpiceClass VirtViewerSessionSpiceClass;
typedef struct _VirtViewerSessionSpicePrivate VirtViewerSessionSpicePrivate;
struct _VirtViewerSessionSpice {
- VirtViewerSession parent;
+ VirtViewerSession parent;
- VirtViewerSessionSpicePrivate *priv;
+ VirtViewerSessionSpicePrivate *priv;
};
struct _VirtViewerSessionSpiceClass {
- VirtViewerSessionClass parent_class;
+ VirtViewerSessionClass parent_class;
};
GType virt_viewer_session_spice_get_type(void);
@@ -70,11 +70,10 @@ VirtViewerSession* virt_viewer_session_spice_new(void);
G_END_DECLS
#endif /* _VIRT_VIEWER_SESSION_SPICE_H */
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c
index 7f660ea..19116dd 100644
--- a/src/virt-viewer-session-vnc.c
+++ b/src/virt-viewer-session-vnc.c
@@ -32,8 +32,8 @@
G_DEFINE_TYPE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION)
struct _VirtViewerSessionVncPrivate {
- /* XXX we should really just have a VncConnection */
- VncDisplay *vnc;
+ /* XXX we should really just have a VncConnection */
+ VncDisplay *vnc;
};
#define VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncPrivate))
@@ -43,243 +43,240 @@ static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, int
static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, char *host, char *port);
static gboolean virt_viewer_session_vnc_open_uri(VirtViewerSession* session, char *uri);
static gboolean virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session,
- VirtViewerSessionChannel* channel, int fd);
+ VirtViewerSessionChannel* channel, int fd);
static void
virt_viewer_session_vnc_finalize(GObject *obj)
{
- VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj);
+ VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj);
- if (vnc->priv->vnc) {
- vnc_display_close(vnc->priv->vnc);
- g_object_unref(vnc->priv->vnc);
- }
+ if (vnc->priv->vnc) {
+ vnc_display_close(vnc->priv->vnc);
+ g_object_unref(vnc->priv->vnc);
+ }
- G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj);
+ G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj);
}
static void
virt_viewer_session_vnc_class_init(VirtViewerSessionVncClass *klass)
{
- VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
- GObjectClass *oclass = G_OBJECT_CLASS(klass);
+ VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
+ GObjectClass *oclass = G_OBJECT_CLASS(klass);
- oclass->finalize = virt_viewer_session_vnc_finalize;
+ oclass->finalize = virt_viewer_session_vnc_finalize;
- dclass->close = virt_viewer_session_vnc_close;
- dclass->open_fd = virt_viewer_session_vnc_open_fd;
- dclass->open_host = virt_viewer_session_vnc_open_host;
- dclass->open_uri = virt_viewer_session_vnc_open_uri;
- dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd;
+ dclass->close = virt_viewer_session_vnc_close;
+ dclass->open_fd = virt_viewer_session_vnc_open_fd;
+ dclass->open_host = virt_viewer_session_vnc_open_host;
+ dclass->open_uri = virt_viewer_session_vnc_open_uri;
+ dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd;
- g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate));
+ g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate));
}
static void
virt_viewer_session_vnc_init(VirtViewerSessionVnc *self G_GNUC_UNUSED)
{
- self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self);
+ self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self);
}
static void
virt_viewer_session_vnc_connected(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerSessionVnc *session)
+ VirtViewerSessionVnc *session)
{
- GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
- g_signal_emit_by_name(session, "session-connected");
- virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
- VIRT_VIEWER_DISPLAY_SHOW_HINT_READY);
- virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
- VIRT_VIEWER_DISPLAY(display));
+ GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
+ g_signal_emit_by_name(session, "session-connected");
+ virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
+ VIRT_VIEWER_DISPLAY_SHOW_HINT_READY);
+ virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
+ VIRT_VIEWER_DISPLAY(display));
}
static void
virt_viewer_session_vnc_disconnected(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerSessionVnc *session)
+ VirtViewerSessionVnc *session)
{
- g_signal_emit_by_name(session, "session-disconnected");
- /* TODO perhaps? */
- /* virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(session->priv->vnc), */
- /* VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE); */
+ g_signal_emit_by_name(session, "session-disconnected");
+ /* TODO perhaps? */
+ /* virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(session->priv->vnc), */
+ /* VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE); */
}
static void
virt_viewer_session_vnc_initialized(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerSessionVnc *session)
+ VirtViewerSessionVnc *session)
{
- g_signal_emit_by_name(session, "session-initialized");
+ g_signal_emit_by_name(session, "session-initialized");
}
static void
virt_viewer_session_vnc_cut_text(VncDisplay *vnc G_GNUC_UNUSED,
- const char *text,
- VirtViewerSession *session)
+ const char *text,
+ VirtViewerSession *session)
{
- g_signal_emit_by_name(session, "session-cut-text", text);
+ g_signal_emit_by_name(session, "session-cut-text", text);
}
static void
virt_viewer_session_vnc_bell(VncDisplay *vnc G_GNUC_UNUSED,
- VirtViewerSession *session)
+ VirtViewerSession *session)
{
- g_signal_emit_by_name(session, "session-bell");
+ g_signal_emit_by_name(session, "session-bell");
}
static void
virt_viewer_session_vnc_auth_unsupported(VncDisplay *vnc G_GNUC_UNUSED,
- unsigned int authType,
- VirtViewerSession *session)
+ unsigned int authType,
+ VirtViewerSession *session)
{
- char *msg = g_strdup_printf(_("Unsupported authentication type %d"),
- authType);
- g_signal_emit_by_name(session, "session-auth-failed", msg);
- g_free(msg);
+ char *msg = g_strdup_printf(_("Unsupported authentication type %d"),
+ authType);
+ g_signal_emit_by_name(session, "session-auth-failed", msg);
+ g_free(msg);
}
static void
virt_viewer_session_vnc_auth_failure(VncDisplay *vnc G_GNUC_UNUSED,
- const char *reason,
- VirtViewerSession *session)
+ const char *reason,
+ VirtViewerSession *session)
{
- g_signal_emit_by_name(session, "session-auth-refused", reason);
+ g_signal_emit_by_name(session, "session-auth-refused", reason);
}
static gboolean
virt_viewer_session_vnc_open_fd(VirtViewerSession* session,
- int fd)
+ int fd)
{
- VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
+ VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
- g_return_val_if_fail(self != NULL, FALSE);
- g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
- return vnc_display_open_fd(self->priv->vnc, fd);
+ return vnc_display_open_fd(self->priv->vnc, fd);
}
static gboolean
virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session G_GNUC_UNUSED,
- VirtViewerSessionChannel* channel G_GNUC_UNUSED,
- int fd G_GNUC_UNUSED)
+ VirtViewerSessionChannel* channel G_GNUC_UNUSED,
+ int fd G_GNUC_UNUSED)
{
- g_warning("channel_open_fd is not supported by VNC");
- return FALSE;
+ g_warning("channel_open_fd is not supported by VNC");
+ return FALSE;
}
static gboolean
virt_viewer_session_vnc_open_host(VirtViewerSession* session,
- char *host,
- char *port)
+ char *host,
+ char *port)
{
- VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
+ VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
- g_return_val_if_fail(self != NULL, FALSE);
- g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
- return vnc_display_open_host(self->priv->vnc, host, port);
+ return vnc_display_open_host(self->priv->vnc, host, port);
}
static gboolean
virt_viewer_session_vnc_open_uri(VirtViewerSession* session,
- char *uristr)
+ char *uristr)
{
- VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
- xmlURIPtr uri = NULL;
- gchar *portstr;
- gboolean ret;
+ VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
+ xmlURIPtr uri = NULL;
+ gchar *portstr;
+ gboolean ret;
- g_return_val_if_fail(self != NULL, FALSE);
- g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
+ g_return_val_if_fail(self != NULL, FALSE);
+ g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
- if (!(uri = xmlParseURI(uristr)))
- return FALSE;
+ if (!(uri = xmlParseURI(uristr)))
+ return FALSE;
- portstr = g_strdup_printf("%d", uri->port);
+ portstr = g_strdup_printf("%d", uri->port);
- ret = vnc_display_open_host(self->priv->vnc, uri->server, portstr);
- g_free(portstr);
- xmlFreeURI(uri);
- return ret;
+ ret = vnc_display_open_host(self->priv->vnc, uri->server, portstr);
+ g_free(portstr);
+ xmlFreeURI(uri);
+ return ret;
}
static void
virt_viewer_session_vnc_close(VirtViewerSession* session)
{
- VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
+ VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
- g_return_if_fail(self != NULL);
+ g_return_if_fail(self != NULL);
- if (self->priv->vnc != NULL) {
- virt_viewer_session_clear_displays(session);
- vnc_display_close(self->priv->vnc);
- g_object_unref(self->priv->vnc);
- }
+ if (self->priv->vnc != NULL) {
+ virt_viewer_session_clear_displays(session);
+ vnc_display_close(self->priv->vnc);
+ g_object_unref(self->priv->vnc);
+ }
- self->priv->vnc = VNC_DISPLAY(vnc_display_new());
+ self->priv->vnc = VNC_DISPLAY(vnc_display_new());
- g_signal_connect(self->priv->vnc, "vnc-connected",
- G_CALLBACK(virt_viewer_session_vnc_connected), session);
- g_signal_connect(self->priv->vnc, "vnc-initialized",
- G_CALLBACK(virt_viewer_session_vnc_initialized), session);
- g_signal_connect(self->priv->vnc, "vnc-disconnected",
- G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
+ g_signal_connect(self->priv->vnc, "vnc-connected",
+ G_CALLBACK(virt_viewer_session_vnc_connected), session);
+ g_signal_connect(self->priv->vnc, "vnc-initialized",
+ G_CALLBACK(virt_viewer_session_vnc_initialized), session);
+ g_signal_connect(self->priv->vnc, "vnc-disconnected",
+ G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
- g_signal_connect(self->priv->vnc, "vnc-bell",
- G_CALLBACK(virt_viewer_session_vnc_bell), session);
- g_signal_connect(self->priv->vnc, "vnc-auth-failure",
- G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
- g_signal_connect(self->priv->vnc, "vnc-auth-unsupported",
- G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
- g_signal_connect(self->priv->vnc, "vnc-server-cut-text",
- G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
+ g_signal_connect(self->priv->vnc, "vnc-bell",
+ G_CALLBACK(virt_viewer_session_vnc_bell), session);
+ g_signal_connect(self->priv->vnc, "vnc-auth-failure",
+ G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
+ g_signal_connect(self->priv->vnc, "vnc-auth-unsupported",
+ G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
+ g_signal_connect(self->priv->vnc, "vnc-server-cut-text",
+ G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
- g_signal_connect(self->priv->vnc, "vnc-auth-credential",
- G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
+ g_signal_connect(self->priv->vnc, "vnc-auth-credential",
+ G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
- }
+}
VirtViewerSession *
virt_viewer_session_vnc_new(void)
{
- VirtViewerSessionVnc *session;
+ VirtViewerSessionVnc *session;
- session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL);
+ session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL);
- session->priv->vnc = VNC_DISPLAY(vnc_display_new());
+ session->priv->vnc = VNC_DISPLAY(vnc_display_new());
- g_signal_connect(session->priv->vnc, "vnc-connected",
- G_CALLBACK(virt_viewer_session_vnc_connected), session);
- g_signal_connect(session->priv->vnc, "vnc-initialized",
- G_CALLBACK(virt_viewer_session_vnc_initialized), session);
- g_signal_connect(session->priv->vnc, "vnc-disconnected",
- G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
+ g_signal_connect(session->priv->vnc, "vnc-connected",
+ G_CALLBACK(virt_viewer_session_vnc_connected), session);
+ g_signal_connect(session->priv->vnc, "vnc-initialized",
+ G_CALLBACK(virt_viewer_session_vnc_initialized), session);
+ g_signal_connect(session->priv->vnc, "vnc-disconnected",
+ G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
- g_signal_connect(session->priv->vnc, "vnc-bell",
- G_CALLBACK(virt_viewer_session_vnc_bell), session);
- g_signal_connect(session->priv->vnc, "vnc-auth-failure",
- G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
- g_signal_connect(session->priv->vnc, "vnc-auth-unsupported",
- G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
- g_signal_connect(session->priv->vnc, "vnc-server-cut-text",
- G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
+ g_signal_connect(session->priv->vnc, "vnc-bell",
+ G_CALLBACK(virt_viewer_session_vnc_bell), session);
+ g_signal_connect(session->priv->vnc, "vnc-auth-failure",
+ G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
+ g_signal_connect(session->priv->vnc, "vnc-auth-unsupported",
+ G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
+ g_signal_connect(session->priv->vnc, "vnc-server-cut-text",
+ G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
- g_signal_connect(session->priv->vnc, "vnc-auth-credential",
- G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
+ g_signal_connect(session->priv->vnc, "vnc-auth-credential",
+ G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
- return VIRT_VIEWER_SESSION(session);
+ return VIRT_VIEWER_SESSION(session);
}
-
-
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session-vnc.h b/src/virt-viewer-session-vnc.h
index 2684e45..81b0a80 100644
--- a/src/virt-viewer-session-vnc.h
+++ b/src/virt-viewer-session-vnc.h
@@ -33,33 +33,33 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_SESSION_VNC virt_viewer_session_vnc_get_type()
-#define VIRT_VIEWER_SESSION_VNC(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc))
+#define VIRT_VIEWER_SESSION_VNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc))
-#define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
+#define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
-#define VIRT_VIEWER_IS_SESSION_VNC(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC))
+#define VIRT_VIEWER_IS_SESSION_VNC(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC))
-#define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC))
+#define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC))
-#define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
+#define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
typedef struct _VirtViewerSessionVnc VirtViewerSessionVnc;
typedef struct _VirtViewerSessionVncClass VirtViewerSessionVncClass;
typedef struct _VirtViewerSessionVncPrivate VirtViewerSessionVncPrivate;
struct _VirtViewerSessionVnc {
- VirtViewerSession parent;
+ VirtViewerSession parent;
- VirtViewerSessionVncPrivate *priv;
+ VirtViewerSessionVncPrivate *priv;
};
struct _VirtViewerSessionVncClass {
- VirtViewerSessionClass parent_class;
+ VirtViewerSessionClass parent_class;
};
GType virt_viewer_session_vnc_get_type(void);
@@ -69,11 +69,10 @@ VirtViewerSession *virt_viewer_session_vnc_new(void);
G_END_DECLS
#endif /* _VIRT_VIEWER_SESSION_VNC_H */
-
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c
index 7ed6333..ae3dcb1 100644
--- a/src/virt-viewer-session.c
+++ b/src/virt-viewer-session.c
@@ -34,355 +34,354 @@
struct _VirtViewerSessionPrivate
{
- GList *displays;
+ GList *displays;
- gboolean auto_usbredir;
+ gboolean auto_usbredir;
};
G_DEFINE_ABSTRACT_TYPE(VirtViewerSession, virt_viewer_session, G_TYPE_OBJECT)
enum {
- PROP_0,
+ PROP_0,
- PROP_AUTO_USBREDIR,
+ PROP_AUTO_USBREDIR,
};
static void
virt_viewer_session_finalize(GObject *obj)
{
- VirtViewerSession *session = VIRT_VIEWER_SESSION(obj);
- GList *tmp = session->priv->displays;
+ VirtViewerSession *session = VIRT_VIEWER_SESSION(obj);
+ GList *tmp = session->priv->displays;
- while (tmp) {
- g_object_unref(tmp->data);
- tmp = tmp->next;
- }
- g_list_free(session->priv->displays);
+ while (tmp) {
+ g_object_unref(tmp->data);
+ tmp = tmp->next;
+ }
+ g_list_free(session->priv->displays);
- G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj);
+ G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj);
}
static void
virt_viewer_session_set_property(GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
-
- switch (prop_id) {
- case PROP_AUTO_USBREDIR:
- virt_viewer_session_set_auto_usbredir(self, g_value_get_boolean(value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
- break;
- }
+ VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
+
+ switch (prop_id) {
+ case PROP_AUTO_USBREDIR:
+ virt_viewer_session_set_auto_usbredir(self, g_value_get_boolean(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ break;
+ }
}
static void
virt_viewer_session_get_property(GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
-
- switch (prop_id) {
- case PROP_AUTO_USBREDIR:
- g_value_set_boolean(value, virt_viewer_session_get_auto_usbredir(self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
- break;
- }
+ VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
+
+ switch (prop_id) {
+ case PROP_AUTO_USBREDIR:
+ g_value_set_boolean(value, virt_viewer_session_get_auto_usbredir(self));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ break;
+ }
}
static void
virt_viewer_session_class_init(VirtViewerSessionClass *class)
{
- GObjectClass *object_class = G_OBJECT_CLASS(class);
-
- object_class->set_property = virt_viewer_session_set_property;
- object_class->get_property = virt_viewer_session_get_property;
- object_class->finalize = virt_viewer_session_finalize;
-
- g_object_class_install_property(object_class,
- PROP_AUTO_USBREDIR,
- g_param_spec_boolean("auto-usbredir",
- "USB redirection",
- "USB redirection",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- g_signal_new("session-connected",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("session-initialized",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("session-disconnected",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("session-channel-open",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- G_TYPE_OBJECT);
-
- g_signal_new("session-auth-refused",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
-
- g_signal_new("session-auth-failed",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
-
- g_signal_new("session-usb-failed",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
-
- g_signal_new("session-display-added",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- VIRT_VIEWER_TYPE_DISPLAY);
-
- g_signal_new("session-display-removed",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE,
- 1,
- VIRT_VIEWER_TYPE_DISPLAY);
-
- g_signal_new("session-cut-text",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
-
- g_signal_new("session-bell",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_signal_new("session-cancelled",
- G_OBJECT_CLASS_TYPE(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate));
+ GObjectClass *object_class = G_OBJECT_CLASS(class);
+
+ object_class->set_property = virt_viewer_session_set_property;
+ object_class->get_property = virt_viewer_session_get_property;
+ object_class->finalize = virt_viewer_session_finalize;
+
+ g_object_class_install_property(object_class,
+ PROP_AUTO_USBREDIR,
+ g_param_spec_boolean("auto-usbredir",
+ "USB redirection",
+ "USB redirection",
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+
+ g_signal_new("session-connected",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("session-initialized",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("session-disconnected",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("session-channel-open",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_OBJECT);
+
+ g_signal_new("session-auth-refused",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ g_signal_new("session-auth-failed",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ g_signal_new("session-usb-failed",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ g_signal_new("session-display-added",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ VIRT_VIEWER_TYPE_DISPLAY);
+
+ g_signal_new("session-display-removed",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ VIRT_VIEWER_TYPE_DISPLAY);
+
+ g_signal_new("session-cut-text",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+
+ g_signal_new("session-bell",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_signal_new("session-cancelled",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate));
}
static void
virt_viewer_session_init(VirtViewerSession *session)
{
- session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
+ session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
}
GtkWidget*
virt_viewer_session_new(void)
{
- return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL);
+ return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL);
}
void virt_viewer_session_add_display(VirtViewerSession *session,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- session->priv->displays = g_list_append(session->priv->displays, display);
- g_object_ref(display);
- g_signal_emit_by_name(session, "session-display-added", display);
+ session->priv->displays = g_list_append(session->priv->displays, display);
+ g_object_ref(display);
+ g_signal_emit_by_name(session, "session-display-added", display);
}
void virt_viewer_session_remove_display(VirtViewerSession *session,
- VirtViewerDisplay *display)
+ VirtViewerDisplay *display)
{
- if (!g_list_find(session->priv->displays, display))
- return;
+ if (!g_list_find(session->priv->displays, display))
+ return;
- session->priv->displays = g_list_remove(session->priv->displays, display);
- g_signal_emit_by_name(session, "session-display-removed", display);
- g_object_unref(display);
+ session->priv->displays = g_list_remove(session->priv->displays, display);
+ g_signal_emit_by_name(session, "session-display-removed", display);
+ g_object_unref(display);
}
void virt_viewer_session_clear_displays(VirtViewerSession *session)
{
- GList *tmp = session->priv->displays;
-
- while (tmp) {
- g_signal_emit_by_name(session, "session-display-removed", tmp->data);
- g_object_unref(tmp->data);
- tmp = tmp->next;
- }
- g_list_free(session->priv->displays);
- session->priv->displays = NULL;
+ GList *tmp = session->priv->displays;
+
+ while (tmp) {
+ g_signal_emit_by_name(session, "session-display-removed", tmp->data);
+ g_object_unref(tmp->data);
+ tmp = tmp->next;
+ }
+ g_list_free(session->priv->displays);
+ session->priv->displays = NULL;
}
void virt_viewer_session_close(VirtViewerSession *session)
{
- g_return_if_fail(VIRT_VIEWER_IS_SESSION(session));
+ g_return_if_fail(VIRT_VIEWER_IS_SESSION(session));
- VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session);
+ VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session);
}
gboolean virt_viewer_session_open_fd(VirtViewerSession *session, int fd)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
- return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd);
+ return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd);
}
gboolean virt_viewer_session_open_host(VirtViewerSession *session, char *host, char *port)
{
- VirtViewerSessionClass *klass;
+ VirtViewerSessionClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
- klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
- return klass->open_host(session, host, port);
+ klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
+ return klass->open_host(session, host, port);
}
gboolean virt_viewer_session_open_uri(VirtViewerSession *session, gchar *uri)
{
- VirtViewerSessionClass *klass;
+ VirtViewerSessionClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
- klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
- g_return_val_if_fail(klass->open_uri != NULL, FALSE);
+ klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
+ g_return_val_if_fail(klass->open_uri != NULL, FALSE);
- return klass->open_uri(session, uri);
+ return klass->open_uri(session, uri);
}
gboolean virt_viewer_session_channel_open_fd(VirtViewerSession *session,
- VirtViewerSessionChannel *channel, int fd)
+ VirtViewerSessionChannel *channel, int fd)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
- return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd);
+ return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd);
}
void virt_viewer_session_set_auto_usbredir(VirtViewerSession *self, gboolean auto_usbredir)
{
- g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
+ g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
- if (self->priv->auto_usbredir == auto_usbredir)
- return;
+ if (self->priv->auto_usbredir == auto_usbredir)
+ return;
- self->priv->auto_usbredir = auto_usbredir;
- g_object_notify(G_OBJECT(self), "auto-usbredir");
+ self->priv->auto_usbredir = auto_usbredir;
+ g_object_notify(G_OBJECT(self), "auto-usbredir");
}
gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
- return self->priv->auto_usbredir;
+ return self->priv->auto_usbredir;
}
gboolean virt_viewer_session_has_usb(VirtViewerSession *self)
{
- VirtViewerSessionClass *klass;
+ VirtViewerSessionClass *klass;
- g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
+ g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
- klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
- if (klass->has_usb == NULL)
- return FALSE;
+ klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
+ if (klass->has_usb == NULL)
+ return FALSE;
- return klass->has_usb(self);
+ return klass->has_usb(self);
}
void virt_viewer_session_usb_device_selection(VirtViewerSession *self,
- GtkWindow *parent)
+ GtkWindow *parent)
{
- VirtViewerSessionClass *klass;
+ VirtViewerSessionClass *klass;
- g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
+ g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
- klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
- g_return_if_fail(klass->usb_device_selection != NULL);
+ klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
+ g_return_if_fail(klass->usb_device_selection != NULL);
- klass->usb_device_selection(self, parent);
+ klass->usb_device_selection(self, parent);
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * indent-tabs-mode: t
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h
index f02c1ee..c33603e 100644
--- a/src/virt-viewer-session.h
+++ b/src/virt-viewer-session.h
@@ -32,20 +32,20 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_SESSION virt_viewer_session_get_type()
-#define VIRT_VIEWER_SESSION(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession))
+#define VIRT_VIEWER_SESSION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession))
-#define VIRT_VIEWER_SESSION_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
+#define VIRT_VIEWER_SESSION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
#define VIRT_VIEWER_IS_SESSION(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION))
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION))
#define VIRT_VIEWER_IS_SESSION_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION))
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION))
-#define VIRT_VIEWER_SESSION_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
+#define VIRT_VIEWER_SESSION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
typedef struct _VirtViewerSession VirtViewerSession;
typedef struct _VirtViewerSessionClass VirtViewerSessionClass;
@@ -56,41 +56,41 @@ typedef struct _VirtViewerSessionChannel VirtViewerSessionChannel;
/* perhaps this become an interface, and be pushed in gtkvnc and spice? */
struct _VirtViewerSession {
- GObject parent;
+ GObject parent;
- VirtViewerSessionPrivate *priv;
+ VirtViewerSessionPrivate *priv;
};
struct _VirtViewerSessionClass {
- GObjectClass parent_class;
-
- /* virtual methods */
- void (* close) (VirtViewerSession* session);
- gboolean (* open_fd) (VirtViewerSession* session, int fd);
- gboolean (* open_host) (VirtViewerSession* session, char *host, char *port);
- gboolean (* open_uri) (VirtViewerSession* session, char *uri);
- gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd);
- gboolean (* has_usb) (VirtViewerSession* session);
- void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent);
-
- /* signals */
- void (*session_connected)(VirtViewerSession *session);
- void (*session_initialized)(VirtViewerSession *session);
- void (*session_disconnected)(VirtViewerSession *session);
- void (*session_auth_refused)(VirtViewerSession *session, const char *msg);
- void (*session_auth_failed)(VirtViewerSession *session, const char *msg);
- void (*session_usb_failed)(VirtViewerSession *session, const char *msg);
-
- void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel);
-
- void (*session_display_added)(VirtViewerSession *session,
- VirtViewerDisplay *display);
- void (*session_display_removed)(VirtViewerSession *session,
- VirtViewerDisplay *display);
-
- void (*session_cut_text)(VirtViewerSession *session, const char *str);
- void (*session_bell)(VirtViewerSession *session);
- void (*session_cancelled)(VirtViewerSession *session);
+ GObjectClass parent_class;
+
+ /* virtual methods */
+ void (* close) (VirtViewerSession* session);
+ gboolean (* open_fd) (VirtViewerSession* session, int fd);
+ gboolean (* open_host) (VirtViewerSession* session, char *host, char *port);
+ gboolean (* open_uri) (VirtViewerSession* session, char *uri);
+ gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd);
+ gboolean (* has_usb) (VirtViewerSession* session);
+ void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent);
+
+ /* signals */
+ void (*session_connected)(VirtViewerSession *session);
+ void (*session_initialized)(VirtViewerSession *session);
+ void (*session_disconnected)(VirtViewerSession *session);
+ void (*session_auth_refused)(VirtViewerSession *session, const char *msg);
+ void (*session_auth_failed)(VirtViewerSession *session, const char *msg);
+ void (*session_usb_failed)(VirtViewerSession *session, const char *msg);
+
+ void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel);
+
+ void (*session_display_added)(VirtViewerSession *session,
+ VirtViewerDisplay *display);
+ void (*session_display_removed)(VirtViewerSession *session,
+ VirtViewerDisplay *display);
+
+ void (*session_cut_text)(VirtViewerSession *session, const char *str);
+ void (*session_bell)(VirtViewerSession *session);
+ void (*session_cancelled)(VirtViewerSession *session);
};
GType virt_viewer_session_get_type(void);
@@ -98,9 +98,9 @@ GType virt_viewer_session_get_type(void);
GtkWidget *virt_viewer_session_new(void);
void virt_viewer_session_add_display(VirtViewerSession *session,
- VirtViewerDisplay *display);
+ VirtViewerDisplay *display);
void virt_viewer_session_remove_display(VirtViewerSession *session,
- VirtViewerDisplay *display);
+ VirtViewerDisplay *display);
void virt_viewer_session_clear_displays(VirtViewerSession *session);
void virt_viewer_session_close(VirtViewerSession* session);
@@ -108,7 +108,7 @@ gboolean virt_viewer_session_open_fd(VirtViewerSession* session, int fd);
gboolean virt_viewer_session_open_host(VirtViewerSession* session, char *host, char *port);
GObject* virt_viewer_session_get(VirtViewerSession* session);
gboolean virt_viewer_session_channel_open_fd(VirtViewerSession* session,
- VirtViewerSessionChannel* channel, int fd);
+ VirtViewerSessionChannel* channel, int fd);
gboolean virt_viewer_session_open_uri(VirtViewerSession *session, gchar *uri);
void virt_viewer_session_set_auto_usbredir(VirtViewerSession* session, gboolean auto_usbredir);
@@ -116,15 +116,16 @@ gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession* session);
gboolean virt_viewer_session_has_usb(VirtViewerSession *self);
void virt_viewer_session_usb_device_selection(VirtViewerSession *self,
- GtkWindow *parent);
+ GtkWindow *parent);
G_END_DECLS
#endif /* _VIRT_VIEWER_SESSION_H */
+
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
index 5037564..fa37b62 100644
--- a/src/virt-viewer-util.c
+++ b/src/virt-viewer-util.c
@@ -34,42 +34,42 @@
GtkBuilder *virt_viewer_util_load_ui(const char *name)
{
- struct stat sb;
- GtkBuilder *builder;
- GError *error = NULL;
-
- builder = gtk_builder_new();
- if (stat(name, &sb) >= 0) {
- gtk_builder_add_from_file(builder, name, &error);
- } else {
- const gchar * const * dirs = g_get_system_data_dirs();
- g_return_val_if_fail(dirs != NULL, NULL);
-
- while (dirs[0] != NULL) {
- gchar *path = g_build_filename(dirs[0], PACKAGE, "ui", name, NULL);
- if (gtk_builder_add_from_file(builder, path, NULL) != 0) {
- g_free(path);
- break;
- }
- g_free(path);
- dirs++;
- }
- if (dirs[0] == NULL)
- goto failed;
- }
-
- if (error) {
- g_error("Cannot load UI description %s: %s", name,
- error->message);
- g_clear_error(&error);
- goto failed;
+ struct stat sb;
+ GtkBuilder *builder;
+ GError *error = NULL;
+
+ builder = gtk_builder_new();
+ if (stat(name, &sb) >= 0) {
+ gtk_builder_add_from_file(builder, name, &error);
+ } else {
+ const gchar * const * dirs = g_get_system_data_dirs();
+ g_return_val_if_fail(dirs != NULL, NULL);
+
+ while (dirs[0] != NULL) {
+ gchar *path = g_build_filename(dirs[0], PACKAGE, "ui", name, NULL);
+ if (gtk_builder_add_from_file(builder, path, NULL) != 0) {
+ g_free(path);
+ break;
+ }
+ g_free(path);
+ dirs++;
}
-
- return builder;
-failed:
- g_error("failed to find UI description file");
- g_object_unref(builder);
- return NULL;
+ if (dirs[0] == NULL)
+ goto failed;
+ }
+
+ if (error) {
+ g_error("Cannot load UI description %s: %s", name,
+ error->message);
+ g_clear_error(&error);
+ goto failed;
+ }
+
+ return builder;
+ failed:
+ g_error("failed to find UI description file");
+ g_object_unref(builder);
+ return NULL;
}
int
@@ -80,57 +80,57 @@ virt_viewer_util_extract_host(const char *uristr,
char **user,
int *port)
{
- xmlURIPtr uri;
- char *offset;
-
- if (uristr == NULL ||
- !g_ascii_strcasecmp(uristr, "xen"))
- uristr = "xen:///";
-
- uri = xmlParseURI(uristr);
- g_return_val_if_fail(uri != NULL, 1);
-
- if (host) {
- if (!uri || !uri->server)
- *host = g_strdup("localhost");
- else
- *host = g_strdup(uri->server);
- }
-
- if (user) {
- if (uri->user)
- *user = g_strdup(uri->user);
- else
- *user = NULL;
- }
-
- if (port)
- *port = uri->port;
-
- offset = strchr(uri->scheme, '+');
-
- if (transport) {
- if (offset)
- *transport = g_strdup(offset+1);
- else
- *transport = NULL;
- }
-
- if (scheme) {
- if (offset)
- *scheme = g_strndup(uri->scheme, offset - uri->scheme);
- else
- *scheme = g_strdup(uri->scheme);
- }
-
- xmlFreeURI(uri);
- return 0;
+ xmlURIPtr uri;
+ char *offset;
+
+ if (uristr == NULL ||
+ !g_ascii_strcasecmp(uristr, "xen"))
+ uristr = "xen:///";
+
+ uri = xmlParseURI(uristr);
+ g_return_val_if_fail(uri != NULL, 1);
+
+ if (host) {
+ if (!uri || !uri->server)
+ *host = g_strdup("localhost");
+ else
+ *host = g_strdup(uri->server);
+ }
+
+ if (user) {
+ if (uri->user)
+ *user = g_strdup(uri->user);
+ else
+ *user = NULL;
+ }
+
+ if (port)
+ *port = uri->port;
+
+ offset = strchr(uri->scheme, '+');
+
+ if (transport) {
+ if (offset)
+ *transport = g_strdup(offset+1);
+ else
+ *transport = NULL;
+ }
+
+ if (scheme) {
+ if (offset)
+ *scheme = g_strndup(uri->scheme, offset - uri->scheme);
+ else
+ *scheme = g_strdup(uri->scheme);
+ }
+
+ xmlFreeURI(uri);
+ return 0;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-util.h b/src/virt-viewer-util.h
index 034ab8f..e0249f4 100644
--- a/src/virt-viewer-util.h
+++ b/src/virt-viewer-util.h
@@ -41,3 +41,11 @@ int virt_viewer_util_extract_host(const char *uristr,
int *port);
#endif
+
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 1a13e16..437deb1 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -61,49 +61,49 @@ static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self);
G_DEFINE_TYPE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT)
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate))
+#define GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate))
enum {
- PROP_0,
- PROP_WINDOW,
- PROP_DISPLAY,
- PROP_SUBTITLE,
- PROP_CONTAINER,
- PROP_APP,
+ PROP_0,
+ PROP_WINDOW,
+ PROP_DISPLAY,
+ PROP_SUBTITLE,
+ PROP_CONTAINER,
+ PROP_APP,
};
enum menuNums {
- FILE_MENU,
- VIEW_MENU,
- SEND_KEY_MENU,
- HELP_MENU,
- LAST_MENU // sentinel
+ FILE_MENU,
+ VIEW_MENU,
+ SEND_KEY_MENU,
+ HELP_MENU,
+ LAST_MENU // sentinel
};
struct _VirtViewerWindowPrivate {
- VirtViewerApp *app;
- GtkContainer *container; /* if any, then there is no window */
-
- GtkBuilder *builder;
- GtkWidget *window;
- GtkWidget *layout;
- GtkWidget *toolbar;
- VirtViewerNotebook *notebook;
- VirtViewerDisplay *display;
-
- gboolean accel_enabled;
- GValue accel_setting;
- GSList *accel_list;
- int accel_menu_sig[LAST_MENU];
- gboolean grabbed;
- gboolean before_saved;
- GdkRectangle before_fullscreen;
-
- gint zoomlevel;
- gboolean auto_resize;
- gboolean fullscreen;
- gchar *subtitle;
+ VirtViewerApp *app;
+ GtkContainer *container; /* if any, then there is no window */
+
+ GtkBuilder *builder;
+ GtkWidget *window;
+ GtkWidget *layout;
+ GtkWidget *toolbar;
+ VirtViewerNotebook *notebook;
+ VirtViewerDisplay *display;
+
+ gboolean accel_enabled;
+ GValue accel_setting;
+ GSList *accel_list;
+ int accel_menu_sig[LAST_MENU];
+ gboolean grabbed;
+ gboolean before_saved;
+ GdkRectangle before_fullscreen;
+
+ gint zoomlevel;
+ gboolean auto_resize;
+ gboolean fullscreen;
+ gchar *subtitle;
};
#if GTK_CHECK_VERSION(3, 0, 0)
@@ -128,248 +128,248 @@ struct _VirtViewerWindowPrivate {
static void
virt_viewer_window_get_property (GObject *object, guint property_id,
- GValue *value, GParamSpec *pspec)
+ GValue *value, GParamSpec *pspec)
{
- VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
+ VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
- switch (property_id) {
- case PROP_SUBTITLE:
- g_value_set_string(value, priv->subtitle);
- break;
+ switch (property_id) {
+ case PROP_SUBTITLE:
+ g_value_set_string(value, priv->subtitle);
+ break;
- case PROP_WINDOW:
- g_value_set_object(value, priv->window);
- break;
+ case PROP_WINDOW:
+ g_value_set_object(value, priv->window);
+ break;
- case PROP_DISPLAY:
- g_value_set_object(value, priv->display);
- break;
+ case PROP_DISPLAY:
+ g_value_set_object(value, priv->display);
+ break;
- case PROP_CONTAINER:
- g_value_set_object(value, priv->container);
- break;
+ case PROP_CONTAINER:
+ g_value_set_object(value, priv->container);
+ break;
- case PROP_APP:
- g_value_set_object(value, priv->app);
- break;
+ case PROP_APP:
+ g_value_set_object(value, priv->app);
+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_window_set_property (GObject *object, guint property_id,
- const GValue *value, GParamSpec *pspec)
+ const GValue *value, GParamSpec *pspec)
{
- VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
+ VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
- switch (property_id) {
- case PROP_SUBTITLE:
- g_free(priv->subtitle);
- priv->subtitle = g_value_dup_string(value);
- virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(object));
- break;
+ switch (property_id) {
+ case PROP_SUBTITLE:
+ g_free(priv->subtitle);
+ priv->subtitle = g_value_dup_string(value);
+ virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(object));
+ break;
- case PROP_CONTAINER:
- g_return_if_fail(priv->container == NULL);
- priv->container = g_value_dup_object(value);
- break;
+ case PROP_CONTAINER:
+ g_return_if_fail(priv->container == NULL);
+ priv->container = g_value_dup_object(value);
+ break;
- case PROP_APP:
- g_return_if_fail(priv->app == NULL);
- priv->app = g_value_dup_object(value);
- break;
+ case PROP_APP:
+ g_return_if_fail(priv->app == NULL);
+ priv->app = g_value_dup_object(value);
+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_window_dispose (GObject *object)
{
- VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
- G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object);
+ VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
+ G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object);
- if (priv->display) {
- g_object_unref(priv->display);
- priv->display = NULL;
- }
+ if (priv->display) {
+ g_object_unref(priv->display);
+ priv->display = NULL;
+ }
- if (priv->app) {
- g_object_unref(priv->app);
- priv->app = NULL;
- }
+ if (priv->app) {
+ g_object_unref(priv->app);
+ priv->app = NULL;
+ }
- g_free(priv->subtitle);
- priv->subtitle = NULL;
+ g_free(priv->subtitle);
+ priv->subtitle = NULL;
}
static void
virt_viewer_window_class_init (VirtViewerWindowClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate));
-
- object_class->get_property = virt_viewer_window_get_property;
- object_class->set_property = virt_viewer_window_set_property;
- object_class->dispose = virt_viewer_window_dispose;
-
- g_object_class_install_property(object_class,
- PROP_SUBTITLE,
- g_param_spec_string("subtitle",
- "Subtitle",
- "Window subtitle",
- "",
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_WINDOW,
- g_param_spec_object("window",
- "Window",
- "GtkWindow",
- GTK_TYPE_WIDGET,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_DISPLAY,
- g_param_spec_object("display",
- "Display",
- "VirtDisplay",
- VIRT_VIEWER_TYPE_DISPLAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_CONTAINER,
- g_param_spec_object("container",
- "Container",
- "Container widget",
- VIRT_VIEWER_TYPE_DISPLAY,
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property(object_class,
- PROP_APP,
- g_param_spec_object("app",
- "App",
- "VirtViewerApp",
- VIRT_VIEWER_TYPE_APP,
- G_PARAM_READABLE |
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate));
+
+ object_class->get_property = virt_viewer_window_get_property;
+ object_class->set_property = virt_viewer_window_set_property;
+ object_class->dispose = virt_viewer_window_dispose;
+
+ g_object_class_install_property(object_class,
+ PROP_SUBTITLE,
+ g_param_spec_string("subtitle",
+ "Subtitle",
+ "Window subtitle",
+ "",
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_WINDOW,
+ g_param_spec_object("window",
+ "Window",
+ "GtkWindow",
+ GTK_TYPE_WIDGET,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_DISPLAY,
+ g_param_spec_object("display",
+ "Display",
+ "VirtDisplay",
+ VIRT_VIEWER_TYPE_DISPLAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_CONTAINER,
+ g_param_spec_object("container",
+ "Container",
+ "Container widget",
+ VIRT_VIEWER_TYPE_DISPLAY,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property(object_class,
+ PROP_APP,
+ g_param_spec_object("app",
+ "App",
+ "VirtViewerApp",
+ VIRT_VIEWER_TYPE_APP,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
static void
virt_viewer_window_init (VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv;
- GtkWidget *vbox;
- GtkWidget *menu;
- GdkColor color;
- GSList *accels;
+ VirtViewerWindowPrivate *priv;
+ GtkWidget *vbox;
+ GtkWidget *menu;
+ GdkColor color;
+ GSList *accels;
- self->priv = GET_PRIVATE(self);
- priv = self->priv;
+ self->priv = GET_PRIVATE(self);
+ priv = self->priv;
- priv->auto_resize = TRUE;
- g_value_init(&priv->accel_setting, G_TYPE_STRING);
+ priv->auto_resize = TRUE;
+ g_value_init(&priv->accel_setting, G_TYPE_STRING);
- priv->notebook = virt_viewer_notebook_new();
- priv->builder = virt_viewer_util_load_ui("virt-viewer.xml");
+ priv->notebook = virt_viewer_notebook_new();
+ priv->builder = virt_viewer_util_load_ui("virt-viewer.xml");
- menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize"));
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
+ menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize"));
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
- gtk_builder_connect_signals(priv->builder, self);
+ gtk_builder_connect_signals(priv->builder, self);
- vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box"));
- virt_viewer_window_toolbar_setup(self);
+ vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box"));
+ virt_viewer_window_toolbar_setup(self);
- gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0);
- gdk_color_parse("black", &color);
- gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color);
+ gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0);
+ gdk_color_parse("black", &color);
+ gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color);
- priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer"));
+ priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer"));
- virt_viewer_window_update_title(self);
- gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE);
+ virt_viewer_window_update_title(self);
+ gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE);
#if GTK_CHECK_VERSION(3, 0, 0)
- gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE);
+ gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE);
#endif
- priv->accel_enabled = TRUE;
+ priv->accel_enabled = TRUE;
- accels = gtk_accel_groups_from_object(G_OBJECT(priv->window));
- for ( ; accels ; accels = accels->next) {
- priv->accel_list = g_slist_append(priv->accel_list, accels->data);
- g_object_ref(G_OBJECT(accels->data));
- }
+ accels = gtk_accel_groups_from_object(G_OBJECT(priv->window));
+ for ( ; accels ; accels = accels->next) {
+ priv->accel_list = g_slist_append(priv->accel_list, accels->data);
+ g_object_ref(G_OBJECT(accels->data));
+ }
- priv->zoomlevel = 100;
+ priv->zoomlevel = 100;
}
static void
virt_viewer_window_desktop_resize(VirtViewerDisplay *display G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
- if (priv->auto_resize && priv->window && !priv->fullscreen)
- virt_viewer_window_resize(self);
+ VirtViewerWindowPrivate *priv = self->priv;
+ if (priv->auto_resize && priv->window && !priv->fullscreen)
+ virt_viewer_window_resize(self);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
+ VirtViewerWindowPrivate *priv = self->priv;
- if (priv->zoomlevel > 10)
- priv->zoomlevel -= 10;
+ if (priv->zoomlevel > 10)
+ priv->zoomlevel -= 10;
- if (!priv->display)
- return;
+ if (!priv->display)
+ return;
- gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
- if (priv->display)
- virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
+ gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
+ if (priv->display)
+ virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
+ VirtViewerWindowPrivate *priv = self->priv;
- if (priv->zoomlevel < 400)
- priv->zoomlevel += 10;
+ if (priv->zoomlevel < 400)
+ priv->zoomlevel += 10;
- if (!priv->display)
- return;
+ if (!priv->display)
+ return;
- gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
- if (priv->display)
- virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
+ gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
+ if (priv->display)
+ virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
- gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
- priv->zoomlevel = 100;
+ VirtViewerWindowPrivate *priv = self->priv;
+ gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
+ priv->zoomlevel = 100;
- if (priv->display)
- virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
+ if (priv->display)
+ virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
}
/*
@@ -381,576 +381,575 @@ virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
static void
virt_viewer_window_resize(VirtViewerWindow *self)
{
- GdkRectangle fullscreen;
- GdkScreen *screen;
- int width, height;
- double desktopAspect;
- double screenAspect;
- guint desktopWidth;
- guint desktopHeight;
- VirtViewerWindowPrivate *priv = self->priv;
-
- DEBUG_LOG("Preparing main window resize");
- if (!priv->display) {
- DEBUG_LOG("Skipping inactive resize");
- return;
- }
-
- gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
-
- virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
- &desktopWidth, &desktopHeight);
-
- screen = gtk_widget_get_screen(priv->window);
- gdk_screen_get_monitor_geometry(screen,
- gdk_screen_get_monitor_at_window
- (screen, gtk_widget_get_window(priv->window)),
- &fullscreen);
-
- desktopAspect = (double)desktopWidth / (double)desktopHeight;
- screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128);
-
- if ((desktopWidth > (fullscreen.width - 128)) ||
- (desktopHeight > (fullscreen.height - 128))) {
- /* Doesn't fit native res, so go as large as possible
- maintaining aspect ratio */
- if (screenAspect > desktopAspect) {
- width = desktopHeight * desktopAspect;
- height = desktopHeight;
- } else {
- width = desktopWidth;
- height = desktopWidth / desktopAspect;
- }
- } else {
- width = desktopWidth;
- height = desktopHeight;
- }
-
- DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d",
- width, height, desktopWidth, desktopHeight,
- fullscreen.width, fullscreen.height);
-
- virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
- width, height);
+ GdkRectangle fullscreen;
+ GdkScreen *screen;
+ int width, height;
+ double desktopAspect;
+ double screenAspect;
+ guint desktopWidth;
+ guint desktopHeight;
+ VirtViewerWindowPrivate *priv = self->priv;
+
+ DEBUG_LOG("Preparing main window resize");
+ if (!priv->display) {
+ DEBUG_LOG("Skipping inactive resize");
+ return;
+ }
+
+ gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
+
+ virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
+ &desktopWidth, &desktopHeight);
+
+ screen = gtk_widget_get_screen(priv->window);
+ gdk_screen_get_monitor_geometry(screen,
+ gdk_screen_get_monitor_at_window
+ (screen, gtk_widget_get_window(priv->window)),
+ &fullscreen);
+
+ desktopAspect = (double)desktopWidth / (double)desktopHeight;
+ screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128);
+
+ if ((desktopWidth > (fullscreen.width - 128)) ||
+ (desktopHeight > (fullscreen.height - 128))) {
+ /* Doesn't fit native res, so go as large as possible
+ maintaining aspect ratio */
+ if (screenAspect > desktopAspect) {
+ width = desktopHeight * desktopAspect;
+ height = desktopHeight;
+ } else {
+ width = desktopWidth;
+ height = desktopWidth / desktopAspect;
+ }
+ } else {
+ width = desktopWidth;
+ height = desktopHeight;
+ }
+
+ DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d",
+ width, height, desktopWidth, desktopHeight,
+ fullscreen.width, fullscreen.height);
+
+ virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
+ width, height);
}
void
virt_viewer_window_leave_fullscreen(VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
- GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
- GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
+ VirtViewerWindowPrivate *priv = self->priv;
+ GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
+ GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
- if (!priv->fullscreen)
- return;
+ if (!priv->fullscreen)
+ return;
- gtk_check_menu_item_set_active(check, FALSE);
- priv->fullscreen = FALSE;
- ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
- gtk_widget_show(menu);
- gtk_widget_hide(priv->toolbar);
+ gtk_check_menu_item_set_active(check, FALSE);
+ priv->fullscreen = FALSE;
+ ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
+ gtk_widget_show(menu);
+ gtk_widget_hide(priv->toolbar);
#ifdef G_OS_WIN32
- gtk_widget_set_size_request(GTK_WIDGET(priv->window), -1, -1);
+ gtk_widget_set_size_request(GTK_WIDGET(priv->window), -1, -1);
#endif
- gtk_window_unfullscreen(GTK_WINDOW(priv->window));
+ gtk_window_unfullscreen(GTK_WINDOW(priv->window));
- if (priv->before_saved) {
- gtk_window_move(GTK_WINDOW(priv->window),
- priv->before_fullscreen.x,
- priv->before_fullscreen.y);
- gtk_window_resize(GTK_WINDOW(priv->window),
- priv->before_fullscreen.width,
- priv->before_fullscreen.height);
- priv->before_saved = FALSE;
- }
+ if (priv->before_saved) {
+ gtk_window_move(GTK_WINDOW(priv->window),
+ priv->before_fullscreen.x,
+ priv->before_fullscreen.y);
+ gtk_window_resize(GTK_WINDOW(priv->window),
+ priv->before_fullscreen.width,
+ priv->before_fullscreen.height);
+ priv->before_saved = FALSE;
+ }
}
void
virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y)
{
- VirtViewerWindowPrivate *priv = self->priv;
- GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
- GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
-
- if (!priv->before_saved) {
- gtk_window_get_position(GTK_WINDOW(priv->window),
- &priv->before_fullscreen.x,
- &priv->before_fullscreen.y);
- gtk_window_get_size(GTK_WINDOW(priv->window),
- &priv->before_fullscreen.width,
- &priv->before_fullscreen.height);
- priv->before_saved = TRUE;
- }
-
- if (!priv->fullscreen) {
- gtk_check_menu_item_set_active(check, TRUE);
- priv->fullscreen = TRUE;
- gtk_widget_hide(menu);
- gtk_widget_show(priv->toolbar);
- ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE);
- ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout));
- }
-
- if (move)
- gtk_window_move(GTK_WINDOW(priv->window), x, y);
-
- gtk_window_fullscreen(GTK_WINDOW(priv->window));
+ VirtViewerWindowPrivate *priv = self->priv;
+ GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
+ GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
+
+ if (!priv->before_saved) {
+ gtk_window_get_position(GTK_WINDOW(priv->window),
+ &priv->before_fullscreen.x,
+ &priv->before_fullscreen.y);
+ gtk_window_get_size(GTK_WINDOW(priv->window),
+ &priv->before_fullscreen.width,
+ &priv->before_fullscreen.height);
+ priv->before_saved = TRUE;
+ }
+
+ if (!priv->fullscreen) {
+ gtk_check_menu_item_set_active(check, TRUE);
+ priv->fullscreen = TRUE;
+ gtk_widget_hide(menu);
+ gtk_widget_show(priv->toolbar);
+ ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE);
+ ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout));
+ }
+
+ if (move)
+ gtk_window_move(GTK_WINDOW(priv->window), x, y);
+
+ gtk_window_fullscreen(GTK_WINDOW(priv->window));
#ifdef G_OS_WIN32
- /* on windows, fullscreen doesn't always hide the taskbar
- See https://bugzilla.gnome.org/show_bug.cgi?id=652049 */
- gtk_widget_set_size_request(GTK_WIDGET(priv->window),
- gdk_screen_width(),
- gdk_screen_height());
+ /* on windows, fullscreen doesn't always hide the taskbar
+ See https://bugzilla.gnome.org/show_bug.cgi?id=652049 */
+ gtk_widget_set_size_request(GTK_WIDGET(priv->window),
+ gdk_screen_width(),
+ gdk_screen_height());
#endif
}
#define MAX_KEY_COMBO 3
-struct keyComboDef {
- guint keys[MAX_KEY_COMBO];
- guint nkeys;
- const char *label;
+struct keyComboDef {
+ guint keys[MAX_KEY_COMBO];
+ guint nkeys;
+ const char *label;
};
static const struct keyComboDef keyCombos[] = {
- { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"},
- { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"},
- { {}, 0, "" },
- { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F9 }, 3, "Ctrl+Alt+F_9"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F10 }, 3, "Ctrl+Alt+F1_0"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F11 }, 3, "Ctrl+Alt+F11"},
- { { GDK_Control_L, GDK_Alt_L, GDK_F12 }, 3, "Ctrl+Alt+F12"},
- { {}, 0, "" },
- { { GDK_Print }, 1, "_PrintScreen"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"},
+ { {}, 0, "" },
+ { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F9 }, 3, "Ctrl+Alt+F_9"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F10 }, 3, "Ctrl+Alt+F1_0"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F11 }, 3, "Ctrl+Alt+F11"},
+ { { GDK_Control_L, GDK_Alt_L, GDK_F12 }, 3, "Ctrl+Alt+F12"},
+ { {}, 0, "" },
+ { { GDK_Print }, 1, "_PrintScreen"},
};
G_MODULE_EXPORT void
virt_viewer_window_menu_send(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- int i;
- GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu));
- const char *text = gtk_label_get_label(GTK_LABEL(label));
- VirtViewerWindowPrivate *priv = self->priv;
+ int i;
+ GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu));
+ const char *text = gtk_label_get_label(GTK_LABEL(label));
+ VirtViewerWindowPrivate *priv = self->priv;
- for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) {
- if (!strcmp(text, keyCombos[i].label)) {
- DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label)));
- virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display),
- keyCombos[i].keys,
- keyCombos[i].nkeys);
- return;
- }
- }
- DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label)));
+ for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) {
+ if (!strcmp(text, keyCombos[i].label)) {
+ DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label)));
+ virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display),
+ keyCombos[i].keys,
+ keyCombos[i].nkeys);
+ return;
+ }
+ }
+ DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label)));
}
static gboolean
virt_viewer_window_ignore_accel(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self G_GNUC_UNUSED)
+ VirtViewerWindow *self G_GNUC_UNUSED)
{
- /* ignore accelerator */
- return TRUE;
+ /* ignore accelerator */
+ return TRUE;
}
static const char * const menuNames[LAST_MENU] = {
- "menu-file", "menu-view", "menu-send", "menu-help"
+ "menu-file", "menu-view", "menu-send", "menu-help"
};
void
virt_viewer_window_disable_modifiers(VirtViewerWindow *self)
{
- GtkSettings *settings = gtk_settings_get_default();
- VirtViewerWindowPrivate *priv = self->priv;
- GValue empty;
- GSList *accels;
- int i;
+ GtkSettings *settings = gtk_settings_get_default();
+ VirtViewerWindowPrivate *priv = self->priv;
+ GValue empty;
+ GSList *accels;
+ int i;
- if (!priv->window)
- return;
+ if (!priv->window)
+ return;
- if (!priv->accel_enabled)
- return;
+ if (!priv->accel_enabled)
+ return;
- /* This stops F10 activating menu bar */
- memset(&empty, 0, sizeof empty);
- g_value_init(&empty, G_TYPE_STRING);
- g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
- g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty);
+ /* This stops F10 activating menu bar */
+ memset(&empty, 0, sizeof empty);
+ g_value_init(&empty, G_TYPE_STRING);
+ g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
+ g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty);
- /* This stops global accelerators like Ctrl+Q == Quit */
- for (accels = priv->accel_list ; accels ; accels = accels->next) {
- gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data);
- }
+ /* This stops global accelerators like Ctrl+Q == Quit */
+ for (accels = priv->accel_list ; accels ; accels = accels->next) {
+ gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data);
+ }
- /* This stops menu bar shortcuts like Alt+F == File */
- for (i = 0 ; i < LAST_MENU ; i++) {
- GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
- priv->accel_menu_sig[i] =
- g_signal_connect(menu, "mnemonic-activate",
- G_CALLBACK(virt_viewer_window_ignore_accel), self);
- }
+ /* This stops menu bar shortcuts like Alt+F == File */
+ for (i = 0 ; i < LAST_MENU ; i++) {
+ GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
+ priv->accel_menu_sig[i] =
+ g_signal_connect(menu, "mnemonic-activate",
+ G_CALLBACK(virt_viewer_window_ignore_accel), self);
+ }
- priv->accel_enabled = FALSE;
+ priv->accel_enabled = FALSE;
}
void
virt_viewer_window_enable_modifiers(VirtViewerWindow *self)
{
- GtkSettings *settings = gtk_settings_get_default();
- VirtViewerWindowPrivate *priv = self->priv;
- GSList *accels;
- int i;
+ GtkSettings *settings = gtk_settings_get_default();
+ VirtViewerWindowPrivate *priv = self->priv;
+ GSList *accels;
+ int i;
- if (!priv->window)
- return;
+ if (!priv->window)
+ return;
- if (priv->accel_enabled)
- return;
+ if (priv->accel_enabled)
+ return;
- /* This allows F10 activating menu bar */
- g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
+ /* This allows F10 activating menu bar */
+ g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
- /* This allows global accelerators like Ctrl+Q == Quit */
- for (accels = priv->accel_list ; accels ; accels = accels->next) {
- gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data);
- }
+ /* This allows global accelerators like Ctrl+Q == Quit */
+ for (accels = priv->accel_list ; accels ; accels = accels->next) {
+ gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data);
+ }
- /* This allows menu bar shortcuts like Alt+F == File */
- for (i = 0 ; i < LAST_MENU ; i++) {
- GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
- g_signal_handler_disconnect(menu, priv->accel_menu_sig[i]);
- }
+ /* This allows menu bar shortcuts like Alt+F == File */
+ for (i = 0 ; i < LAST_MENU ; i++) {
+ GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
+ g_signal_handler_disconnect(menu, priv->accel_menu_sig[i]);
+ }
- priv->accel_enabled = TRUE;
+ priv->accel_enabled = TRUE;
}
G_MODULE_EXPORT gboolean
virt_viewer_window_delete(GtkWidget *src G_GNUC_UNUSED,
- void *dummy G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ void *dummy G_GNUC_UNUSED,
+ VirtViewerWindow *self)
{
- virt_viewer_app_window_set_visible(self->priv->app, self, FALSE);
- return TRUE;
+ virt_viewer_app_window_set_visible(self->priv->app, self, FALSE);
+ return TRUE;
}
G_MODULE_EXPORT void
virt_viewer_window_menu_file_quit(GtkWidget *src G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- virt_viewer_app_quit(self->priv->app);
+ virt_viewer_app_quit(self->priv->app);
}
static void
virt_viewer_window_toolbar_leave_fullscreen(GtkWidget *button G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- g_object_set(self->priv->app, "fullscreen", FALSE, NULL);
+ g_object_set(self->priv->app, "fullscreen", FALSE, NULL);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_view_fullscreen(GtkWidget *menu,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu));
+ gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu));
- g_object_set(self->priv->app, "fullscreen", fullscreen, NULL);
+ g_object_set(self->priv->app, "fullscreen", fullscreen, NULL);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_view_resize(GtkWidget *menu,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
+ VirtViewerWindowPrivate *priv = self->priv;
- if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) {
- priv->auto_resize = TRUE;
- if (!priv->fullscreen)
- virt_viewer_window_resize(self);
- } else {
- priv->auto_resize = FALSE;
- }
+ if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) {
+ priv->auto_resize = TRUE;
+ if (!priv->fullscreen)
+ virt_viewer_window_resize(self);
+ } else {
+ priv->auto_resize = FALSE;
+ }
}
static void
virt_viewer_window_save_screenshot(VirtViewerWindow *self,
- const char *file)
+ const char *file)
{
- VirtViewerWindowPrivate *priv = self->priv;
- GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display));
+ VirtViewerWindowPrivate *priv = self->priv;
+ GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display));
- gdk_pixbuf_save(pix, file, "png", NULL,
- "tEXt::Generator App", PACKAGE, NULL);
- g_object_unref(pix);
+ gdk_pixbuf_save(pix, file, "png", NULL,
+ "tEXt::Generator App", PACKAGE, NULL);
+ g_object_unref(pix);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_file_screenshot(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- GtkWidget *dialog;
- VirtViewerWindowPrivate *priv = self->priv;
+ GtkWidget *dialog;
+ VirtViewerWindowPrivate *priv = self->priv;
- g_return_if_fail(priv->display != NULL);
+ g_return_if_fail(priv->display != NULL);
- dialog = gtk_file_chooser_dialog_new ("Save screenshot",
- NULL,
- GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
+ dialog = gtk_file_chooser_dialog_new ("Save screenshot",
+ NULL,
+ GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
- //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving);
- //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot");
+ //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving);
+ //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot");
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
- char *filename;
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+ char *filename;
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
- virt_viewer_window_save_screenshot(self, filename);
- g_free (filename);
- }
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+ virt_viewer_window_save_screenshot(self, filename);
+ g_free (filename);
+ }
- gtk_widget_destroy (dialog);
+ gtk_widget_destroy (dialog);
}
G_MODULE_EXPORT void
virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- virt_viewer_app_usb_device_selection(self->priv->app,
- GTK_WINDOW(self->priv->window));
+ virt_viewer_app_usb_device_selection(self->priv->app,
+ GTK_WINDOW(self->priv->window));
}
G_MODULE_EXPORT void
virt_viewer_window_menu_help_about(GtkWidget *menu G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml");
+ GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml");
- GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about"));
- gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
+ GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about"));
+ gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
- gtk_builder_connect_signals(about, self);
+ gtk_builder_connect_signals(about, self);
- gtk_widget_show_all(dialog);
+ gtk_widget_show_all(dialog);
- g_object_unref(G_OBJECT(about));
+ g_object_unref(G_OBJECT(about));
}
static void
virt_viewer_window_toolbar_setup(VirtViewerWindow *self)
{
- GtkWidget *button;
- VirtViewerWindowPrivate *priv = self->priv;
-
- priv->toolbar = gtk_toolbar_new();
- gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE);
- gtk_widget_set_no_show_all(priv->toolbar, TRUE);
- gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ);
-
- /* Close connection */
- button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE));
- gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect"));
- gtk_widget_show(GTK_WIDGET(button));
- gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0);
- g_signal_connect(button, "clicked", G_CALLBACK(gtk_main_quit), NULL);
-
- /* Leave fullscreen */
- button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN));
- gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen"));
- gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen"));
- gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE);
- gtk_widget_show(GTK_WIDGET(button));
- gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
- g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self);
-
- priv->layout = ViewAutoDrawer_New();
-
- ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
- ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar);
- ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook));
- ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1);
- ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE);
- ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1);
- ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0);
- gtk_widget_show(priv->layout);
+ GtkWidget *button;
+ VirtViewerWindowPrivate *priv = self->priv;
+
+ priv->toolbar = gtk_toolbar_new();
+ gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE);
+ gtk_widget_set_no_show_all(priv->toolbar, TRUE);
+ gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ);
+
+ /* Close connection */
+ button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE));
+ gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect"));
+ gtk_widget_show(GTK_WIDGET(button));
+ gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0);
+ g_signal_connect(button, "clicked", G_CALLBACK(gtk_main_quit), NULL);
+
+ /* Leave fullscreen */
+ button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN));
+ gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen"));
+ gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen"));
+ gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE);
+ gtk_widget_show(GTK_WIDGET(button));
+ gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
+ g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self);
+
+ priv->layout = ViewAutoDrawer_New();
+
+ ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
+ ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar);
+ ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook));
+ ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1);
+ ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE);
+ ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1);
+ ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0);
+ gtk_widget_show(priv->layout);
}
VirtViewerNotebook*
virt_viewer_window_get_notebook (VirtViewerWindow *self)
{
- return VIRT_VIEWER_NOTEBOOK(self->priv->notebook);
+ return VIRT_VIEWER_NOTEBOOK(self->priv->notebook);
}
GtkWindow*
virt_viewer_window_get_window (VirtViewerWindow *self)
{
- return GTK_WINDOW(self->priv->window);
+ return GTK_WINDOW(self->priv->window);
}
static void
virt_viewer_window_pointer_grab(VirtViewerDisplay *display G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
+ VirtViewerWindowPrivate *priv = self->priv;
- priv->grabbed = TRUE;
- virt_viewer_window_update_title(self);
+ priv->grabbed = TRUE;
+ virt_viewer_window_update_title(self);
}
static void
virt_viewer_window_pointer_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
+ VirtViewerWindowPrivate *priv = self->priv;
- priv->grabbed = FALSE;
- virt_viewer_window_update_title(self);
+ priv->grabbed = FALSE;
+ virt_viewer_window_update_title(self);
}
static void
virt_viewer_window_keyboard_grab(VirtViewerDisplay *display G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- virt_viewer_window_disable_modifiers(self);
+ virt_viewer_window_disable_modifiers(self);
}
static void
virt_viewer_window_keyboard_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED,
- VirtViewerWindow *self)
+ VirtViewerWindow *self)
{
- virt_viewer_window_enable_modifiers(self);
+ virt_viewer_window_enable_modifiers(self);
}
void
virt_viewer_window_update_title(VirtViewerWindow *self)
{
- VirtViewerWindowPrivate *priv = self->priv;
- char *title;
- const char *ungrab = NULL;
+ VirtViewerWindowPrivate *priv = self->priv;
+ char *title;
+ const char *ungrab = NULL;
- if (priv->grabbed)
- ungrab = _("(Press Ctrl+Alt to release pointer)");
+ if (priv->grabbed)
+ ungrab = _("(Press Ctrl+Alt to release pointer)");
- if (!ungrab && !priv->subtitle)
- title = g_strdup(g_get_application_name());
- else
- /* translators:
- * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> - <appname>"
- * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt Viewer"
- */
- title = g_strdup_printf(_("%s%s%s - %s"),
- /* translators: <ungrab empty> */
- ungrab ? ungrab : _(""),
- /* translators: <space> */
- ungrab && priv->subtitle ? _(" ") : _(""),
- priv->subtitle,
- g_get_application_name());
+ if (!ungrab && !priv->subtitle)
+ title = g_strdup(g_get_application_name());
+ else
+ /* translators:
+ * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> - <appname>"
+ * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt Viewer"
+ */
+ title = g_strdup_printf(_("%s%s%s - %s"),
+ /* translators: <ungrab empty> */
+ ungrab ? ungrab : _(""),
+ /* translators: <space> */
+ ungrab && priv->subtitle ? _(" ") : _(""),
+ priv->subtitle,
+ g_get_application_name());
- gtk_window_set_title(GTK_WINDOW(priv->window), title);
+ gtk_window_set_title(GTK_WINDOW(priv->window), title);
- g_free(title);
+ g_free(title);
}
void
virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean sensitive)
{
- VirtViewerWindowPrivate *priv;
- GtkWidget *menu;
+ VirtViewerWindowPrivate *priv;
+ GtkWidget *menu;
- g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
+ g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
- priv = self->priv;
- menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-file-usb-device-selection"));
- gtk_widget_set_sensitive(menu, sensitive);
+ priv = self->priv;
+ menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-file-usb-device-selection"));
+ gtk_widget_set_sensitive(menu, sensitive);
}
void
virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display)
{
- VirtViewerWindowPrivate *priv;
+ VirtViewerWindowPrivate *priv;
- g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
- g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display));
+ g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
+ g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display));
- priv = self->priv;
- if (priv->display) {
- gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1);
- g_object_unref(priv->display);
- priv->display = NULL;
- }
+ priv = self->priv;
+ if (priv->display) {
+ gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1);
+ g_object_unref(priv->display);
+ priv->display = NULL;
+ }
- if (display != NULL) {
- priv->display = g_object_ref(display);
+ if (display != NULL) {
+ priv->display = g_object_ref(display);
- virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
+ 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);
- gtk_widget_show_all(GTK_WIDGET(display));
+ gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL);
+ gtk_widget_show_all(GTK_WIDGET(display));
- g_signal_connect(display, "display-pointer-grab",
- G_CALLBACK(virt_viewer_window_pointer_grab), self);
- g_signal_connect(display, "display-pointer-ungrab",
- G_CALLBACK(virt_viewer_window_pointer_ungrab), self);
- g_signal_connect(display, "display-keyboard-grab",
- G_CALLBACK(virt_viewer_window_keyboard_grab), self);
- g_signal_connect(display, "display-keyboard-ungrab",
- G_CALLBACK(virt_viewer_window_keyboard_ungrab), self);
- g_signal_connect(display, "display-desktop-resize",
- G_CALLBACK(virt_viewer_window_desktop_resize), self);
- }
+ g_signal_connect(display, "display-pointer-grab",
+ G_CALLBACK(virt_viewer_window_pointer_grab), self);
+ g_signal_connect(display, "display-pointer-ungrab",
+ G_CALLBACK(virt_viewer_window_pointer_ungrab), self);
+ g_signal_connect(display, "display-keyboard-grab",
+ G_CALLBACK(virt_viewer_window_keyboard_grab), self);
+ g_signal_connect(display, "display-keyboard-ungrab",
+ G_CALLBACK(virt_viewer_window_keyboard_ungrab), self);
+ g_signal_connect(display, "display-desktop-resize",
+ G_CALLBACK(virt_viewer_window_desktop_resize), self);
+ }
}
void
virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level)
{
- g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
+ g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
- /* FIXME: turn into a dynamic property */
- self->priv->zoomlevel = zoom_level;
+ /* FIXME: turn into a dynamic property */
+ 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;
+ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), 100);
+ return self->priv->zoomlevel;
}
GtkMenuItem*
virt_viewer_window_get_menu_displays(VirtViewerWindow *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
+ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
- return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays"));
+ return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays"));
}
GtkBuilder*
virt_viewer_window_get_builder(VirtViewerWindow *self)
{
- g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
+ g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
- return self->priv->builder;
+ return self->priv->builder;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer-window.h b/src/virt-viewer-window.h
index e5c184f..4db3757 100644
--- a/src/virt-viewer-window.h
+++ b/src/virt-viewer-window.h
@@ -32,30 +32,30 @@ G_BEGIN_DECLS
#define VIRT_VIEWER_TYPE_WINDOW virt_viewer_window_get_type()
-#define VIRT_VIEWER_WINDOW(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow))
+#define VIRT_VIEWER_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow))
-#define VIRT_VIEWER_WINDOW_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
+#define VIRT_VIEWER_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
-#define VIRT_VIEWER_IS_WINDOW(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW))
+#define VIRT_VIEWER_IS_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW))
-#define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW))
+#define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW))
-#define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
+#define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
typedef struct _VirtViewerWindowPrivate VirtViewerWindowPrivate;
typedef struct {
- GObject parent;
- VirtViewerWindowPrivate *priv;
+ GObject parent;
+ VirtViewerWindowPrivate *priv;
} VirtViewerWindow;
typedef struct {
- GObjectClass parent_class;
+ GObjectClass parent_class;
} VirtViewerWindowClass;
GType virt_viewer_window_get_type (void);
@@ -75,11 +75,11 @@ GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *window);
G_END_DECLS
#endif /* _VIRT_VIEWER_WINDOW */
+
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer.c b/src/virt-viewer.c
index 9dc0ad8..31c4dd9 100644
--- a/src/virt-viewer.c
+++ b/src/virt-viewer.c
@@ -50,18 +50,18 @@
#include "virt-viewer-auth.h"
struct _VirtViewerPrivate {
- char *uri;
- virConnectPtr conn;
- virDomainPtr dom;
- char *domkey;
- gboolean withEvents;
- gboolean waitvm;
- gboolean reconnect;
+ char *uri;
+ virConnectPtr conn;
+ virDomainPtr dom;
+ char *domkey;
+ gboolean withEvents;
+ gboolean waitvm;
+ gboolean reconnect;
};
G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP)
-#define GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate))
+#define GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate))
static int virt_viewer_initial_connect(VirtViewerApp *self);
static gboolean virt_viewer_open_connection(VirtViewerApp *self, int *fd);
@@ -70,563 +70,562 @@ static gboolean virt_viewer_start(VirtViewerApp *self);
static void
virt_viewer_get_property (GObject *object, guint property_id,
- GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- switch (property_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_set_property (GObject *object, guint property_id,
- const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
+ const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
{
- switch (property_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
+ switch (property_id) {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
}
static void
virt_viewer_dispose (GObject *object)
{
- VirtViewer *self = VIRT_VIEWER(object);
- VirtViewerPrivate *priv = self->priv;
- if (priv->dom)
- virDomainFree(priv->dom);
- if (priv->conn)
- virConnectClose(priv->conn);
- G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object);
+ VirtViewer *self = VIRT_VIEWER(object);
+ VirtViewerPrivate *priv = self->priv;
+ if (priv->dom)
+ virDomainFree(priv->dom);
+ if (priv->conn)
+ virConnectClose(priv->conn);
+ G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object);
}
static void
virt_viewer_class_init (VirtViewerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
- g_type_class_add_private (klass, sizeof (VirtViewerPrivate));
+ g_type_class_add_private (klass, sizeof (VirtViewerPrivate));
- object_class->get_property = virt_viewer_get_property;
- object_class->set_property = virt_viewer_set_property;
- object_class->dispose = virt_viewer_dispose;
+ object_class->get_property = virt_viewer_get_property;
+ object_class->set_property = virt_viewer_set_property;
+ object_class->dispose = virt_viewer_dispose;
- app_class->initial_connect = virt_viewer_initial_connect;
- app_class->deactivated = virt_viewer_deactivated;
- app_class->open_connection = virt_viewer_open_connection;
- app_class->start = virt_viewer_start;
+ app_class->initial_connect = virt_viewer_initial_connect;
+ app_class->deactivated = virt_viewer_deactivated;
+ app_class->open_connection = virt_viewer_open_connection;
+ app_class->start = virt_viewer_start;
}
static void
virt_viewer_init(VirtViewer *self)
{
- self->priv = GET_PRIVATE(self);
+ self->priv = GET_PRIVATE(self);
}
static void
virt_viewer_deactivated(VirtViewerApp *app)
{
- VirtViewer *self = VIRT_VIEWER(app);
- VirtViewerPrivate *priv = self->priv;
-
- if (priv->dom) {
- virDomainFree(priv->dom);
- priv->dom = NULL;
- }
-
- if (priv->reconnect) {
- if (!priv->withEvents) {
- DEBUG_LOG("No domain events, falling back to polling");
- virt_viewer_app_start_reconnect_poll(app);
- }
-
- virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start"));
- virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey);
- } else {
- VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app);
- }
+ VirtViewer *self = VIRT_VIEWER(app);
+ VirtViewerPrivate *priv = self->priv;
+
+ if (priv->dom) {
+ virDomainFree(priv->dom);
+ priv->dom = NULL;
+ }
+
+ if (priv->reconnect) {
+ if (!priv->withEvents) {
+ DEBUG_LOG("No domain events, falling back to polling");
+ virt_viewer_app_start_reconnect_poll(app);
+ }
+
+ virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start"));
+ virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey);
+ } else {
+ VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app);
+ }
}
static int
virt_viewer_parse_uuid(const char *name,
- unsigned char *uuid)
+ unsigned char *uuid)
{
- int i;
-
- const char *cur = name;
- for (i = 0;i < 16;) {
- uuid[i] = 0;
- if (*cur == 0)
- return -1;
- if ((*cur == '-') || (*cur == ' ')) {
- cur++;
- continue;
- }
- if ((*cur >= '0') && (*cur <= '9'))
- uuid[i] = *cur - '0';
- else if ((*cur >= 'a') && (*cur <= 'f'))
- uuid[i] = *cur - 'a' + 10;
- else if ((*cur >= 'A') && (*cur <= 'F'))
- uuid[i] = *cur - 'A' + 10;
- else
- return -1;
- uuid[i] *= 16;
- cur++;
- if (*cur == 0)
- return -1;
- if ((*cur >= '0') && (*cur <= '9'))
- uuid[i] += *cur - '0';
- else if ((*cur >= 'a') && (*cur <= 'f'))
- uuid[i] += *cur - 'a' + 10;
- else if ((*cur >= 'A') && (*cur <= 'F'))
- uuid[i] += *cur - 'A' + 10;
- else
- return -1;
- i++;
- cur++;
- }
-
- return 0;
+ int i;
+
+ const char *cur = name;
+ for (i = 0;i < 16;) {
+ uuid[i] = 0;
+ if (*cur == 0)
+ return -1;
+ if ((*cur == '-') || (*cur == ' ')) {
+ cur++;
+ continue;
+ }
+ if ((*cur >= '0') && (*cur <= '9'))
+ uuid[i] = *cur - '0';
+ else if ((*cur >= 'a') && (*cur <= 'f'))
+ uuid[i] = *cur - 'a' + 10;
+ else if ((*cur >= 'A') && (*cur <= 'F'))
+ uuid[i] = *cur - 'A' + 10;
+ else
+ return -1;
+ uuid[i] *= 16;
+ cur++;
+ if (*cur == 0)
+ return -1;
+ if ((*cur >= '0') && (*cur <= '9'))
+ uuid[i] += *cur - '0';
+ else if ((*cur >= 'a') && (*cur <= 'f'))
+ uuid[i] += *cur - 'a' + 10;
+ else if ((*cur >= 'A') && (*cur <= 'F'))
+ uuid[i] += *cur - 'A' + 10;
+ else
+ return -1;
+ i++;
+ cur++;
+ }
+
+ return 0;
}
static virDomainPtr
virt_viewer_lookup_domain(VirtViewer *self)
{
- char *end;
- VirtViewerPrivate *priv = self->priv;
- int id = strtol(priv->domkey, &end, 10);
- virDomainPtr dom = NULL;
- unsigned char uuid[16];
-
- if (id >= 0 && end && !*end) {
- dom = virDomainLookupByID(priv->conn, id);
- }
- if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) {
- dom = virDomainLookupByUUID(priv->conn, uuid);
- }
- if (!dom) {
- dom = virDomainLookupByName(priv->conn, priv->domkey);
- }
- return dom;
+ char *end;
+ VirtViewerPrivate *priv = self->priv;
+ int id = strtol(priv->domkey, &end, 10);
+ virDomainPtr dom = NULL;
+ unsigned char uuid[16];
+
+ if (id >= 0 && end && !*end) {
+ dom = virDomainLookupByID(priv->conn, id);
+ }
+ if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) {
+ dom = virDomainLookupByUUID(priv->conn, uuid);
+ }
+ if (!dom) {
+ dom = virDomainLookupByName(priv->conn, priv->domkey);
+ }
+ return dom;
}
static int
virt_viewer_matches_domain(VirtViewer *self,
- virDomainPtr dom)
+ virDomainPtr dom)
{
- char *end;
- const char *name;
- VirtViewerPrivate *priv = self->priv;
- int id = strtol(priv->domkey, &end, 10);
- unsigned char wantuuid[16];
- unsigned char domuuid[16];
-
- if (id >= 0 && end && !*end) {
- if (virDomainGetID(dom) == id)
- return 1;
- }
- if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) {
- virDomainGetUUID(dom, domuuid);
- if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0)
- return 1;
- }
-
- name = virDomainGetName(dom);
- if (strcmp(name, priv->domkey) == 0)
- return 1;
-
- return 0;
+ char *end;
+ const char *name;
+ VirtViewerPrivate *priv = self->priv;
+ int id = strtol(priv->domkey, &end, 10);
+ unsigned char wantuuid[16];
+ unsigned char domuuid[16];
+
+ if (id >= 0 && end && !*end) {
+ if (virDomainGetID(dom) == id)
+ return 1;
+ }
+ if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) {
+ virDomainGetUUID(dom, domuuid);
+ if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0)
+ return 1;
+ }
+
+ name = virDomainGetName(dom);
+ if (strcmp(name, priv->domkey) == 0)
+ return 1;
+
+ return 0;
}
static char *
virt_viewer_extract_xpath_string(const gchar *xmldesc,
- const gchar *xpath)
+ const gchar *xpath)
{
- xmlDocPtr xml = NULL;
- xmlParserCtxtPtr pctxt = NULL;
- xmlXPathContextPtr ctxt = NULL;
- xmlXPathObjectPtr obj = NULL;
- char *port = NULL;
-
- pctxt = xmlNewParserCtxt();
- if (!pctxt || !pctxt->sax)
- goto error;
-
- xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL,
- XML_PARSE_NOENT | XML_PARSE_NONET |
- XML_PARSE_NOWARNING);
- if (!xml)
- goto error;
-
- ctxt = xmlXPathNewContext(xml);
- if (!ctxt)
- goto error;
-
- obj = xmlXPathEval((const xmlChar *)xpath, ctxt);
- if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0])
- goto error;
- if (!strcmp((const char*)obj->stringval, "-1"))
- goto error;
-
- port = g_strdup((const char*)obj->stringval);
- xmlXPathFreeObject(obj);
- obj = NULL;
+ xmlDocPtr xml = NULL;
+ xmlParserCtxtPtr pctxt = NULL;
+ xmlXPathContextPtr ctxt = NULL;
+ xmlXPathObjectPtr obj = NULL;
+ char *port = NULL;
+
+ pctxt = xmlNewParserCtxt();
+ if (!pctxt || !pctxt->sax)
+ goto error;
+
+ xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL,
+ XML_PARSE_NOENT | XML_PARSE_NONET |
+ XML_PARSE_NOWARNING);
+ if (!xml)
+ goto error;
+
+ ctxt = xmlXPathNewContext(xml);
+ if (!ctxt)
+ goto error;
+
+ obj = xmlXPathEval((const xmlChar *)xpath, ctxt);
+ if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0])
+ goto error;
+ if (!strcmp((const char*)obj->stringval, "-1"))
+ goto error;
+
+ port = g_strdup((const char*)obj->stringval);
+ xmlXPathFreeObject(obj);
+ obj = NULL;
error:
- if (obj)
- xmlXPathFreeObject(obj);
- if (ctxt)
- xmlXPathFreeContext(ctxt);
- if (xml)
- xmlFreeDoc(xml);
- if (pctxt)
- xmlFreeParserCtxt(pctxt);
- return port;
+ if (obj)
+ xmlXPathFreeObject(obj);
+ if (ctxt)
+ xmlXPathFreeContext(ctxt);
+ if (xml)
+ xmlFreeDoc(xml);
+ if (pctxt)
+ xmlFreeParserCtxt(pctxt);
+ return port;
}
static gboolean
virt_viewer_extract_connect_info(VirtViewer *self,
- virDomainPtr dom)
+ virDomainPtr dom)
{
- char *type = NULL;
- char *xpath = NULL;
- gboolean retval = FALSE;
- char *xmldesc = virDomainGetXMLDesc(dom, 0);
- VirtViewerPrivate *priv = self->priv;
- VirtViewerApp *app = VIRT_VIEWER_APP(self);
- gchar *gport = NULL;
- gchar *ghost = NULL;
- gchar *unixsock = NULL;
- gchar *host = NULL;
- gchar *transport = NULL;
- gchar *user = NULL;
- gint port = 0;
- gchar *uri = NULL;
-
- virt_viewer_app_free_connect_info(app);
-
- if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) {
- virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"),
- priv->domkey);
- goto cleanup;
- }
-
- if (virt_viewer_app_create_session(app, type) < 0)
- goto cleanup;
-
- xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type);
- if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
- free(xpath);
- xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type);
- if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
- virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"),
- priv->domkey);
- goto cleanup;
- }
- } else {
- free(xpath);
- xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type);
- ghost = virt_viewer_extract_xpath_string(xmldesc, xpath);
- if (ghost == NULL)
- ghost = g_strdup("localhost");
- }
-
- if (ghost && gport)
- DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport);
- else if (unixsock)
- DEBUG_LOG("Guest graphics address is %s", unixsock);
-
- uri = virConnectGetURI(priv->conn);
- if (virt_viewer_util_extract_host(uri, NULL, &host, &transport, &user, &port) < 0) {
- virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"),
- priv->domkey);
- goto cleanup;
- }
-
- /* If the XML listen attribute shows a wildcard address, we need to
- * throw that away since you obviously can't 'connect(2)' to that
- * from a remote host. Instead we fallback to the hostname used in
- * the libvirt URI. This isn't perfect but it is better than nothing
- */
- if (ghost &&
- (strcmp(ghost, "0.0.0.0") == 0 ||
- strcmp(ghost, "::") == 0)) {
- DEBUG_LOG("Guest graphics listen '%s' is a wildcard, replacing with '%s'",
- ghost, host);
- g_free(ghost);
- ghost = g_strdup(host);
- }
-
- virt_viewer_app_set_connect_info(app, host, ghost, gport, transport, unixsock, user, port, NULL);
-
- retval = TRUE;
+ char *type = NULL;
+ char *xpath = NULL;
+ gboolean retval = FALSE;
+ char *xmldesc = virDomainGetXMLDesc(dom, 0);
+ VirtViewerPrivate *priv = self->priv;
+ VirtViewerApp *app = VIRT_VIEWER_APP(self);
+ gchar *gport = NULL;
+ gchar *ghost = NULL;
+ gchar *unixsock = NULL;
+ gchar *host = NULL;
+ gchar *transport = NULL;
+ gchar *user = NULL;
+ gint port = 0;
+ gchar *uri = NULL;
+
+ virt_viewer_app_free_connect_info(app);
+
+ if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) {
+ virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"),
+ priv->domkey);
+ goto cleanup;
+ }
+
+ if (virt_viewer_app_create_session(app, type) < 0)
+ goto cleanup;
+
+ xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type);
+ if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
+ free(xpath);
+ xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type);
+ if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
+ virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"),
+ priv->domkey);
+ goto cleanup;
+ }
+ } else {
+ free(xpath);
+ xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type);
+ ghost = virt_viewer_extract_xpath_string(xmldesc, xpath);
+ if (ghost == NULL)
+ ghost = g_strdup("localhost");
+ }
+
+ if (ghost && gport)
+ DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport);
+ else if (unixsock)
+ DEBUG_LOG("Guest graphics address is %s", unixsock);
+
+ uri = virConnectGetURI(priv->conn);
+ if (virt_viewer_util_extract_host(uri, NULL, &host, &transport, &user, &port) < 0) {
+ virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"),
+ priv->domkey);
+ goto cleanup;
+ }
+
+ /* If the XML listen attribute shows a wildcard address, we need to
+ * throw that away since you obviously can't 'connect(2)' to that
+ * from a remote host. Instead we fallback to the hostname used in
+ * the libvirt URI. This isn't perfect but it is better than nothing
+ */
+ if (ghost &&
+ (strcmp(ghost, "0.0.0.0") == 0 ||
+ strcmp(ghost, "::") == 0)) {
+ DEBUG_LOG("Guest graphics listen '%s' is a wildcard, replacing with '%s'",
+ ghost, host);
+ g_free(ghost);
+ ghost = g_strdup(host);
+ }
+
+ virt_viewer_app_set_connect_info(app, host, ghost, gport, transport, unixsock, user, port, NULL);
+
+ retval = TRUE;
cleanup:
- g_free(gport);
- g_free(ghost);
- g_free(unixsock);
- g_free(host);
- g_free(transport);
- g_free(user);
- g_free(type);
- g_free(xpath);
- g_free(xmldesc);
- g_free(uri);
- return retval;
+ g_free(gport);
+ g_free(ghost);
+ g_free(unixsock);
+ g_free(host);
+ g_free(transport);
+ g_free(user);
+ g_free(type);
+ g_free(xpath);
+ g_free(xmldesc);
+ g_free(uri);
+ return retval;
}
static int
virt_viewer_update_display(VirtViewer *self, virDomainPtr dom)
{
- VirtViewerPrivate *priv = self->priv;
- VirtViewerApp *app = VIRT_VIEWER_APP(self);
+ VirtViewerPrivate *priv = self->priv;
+ VirtViewerApp *app = VIRT_VIEWER_APP(self);
- if (priv->dom)
- virDomainFree(priv->dom);
- priv->dom = dom;
- virDomainRef(priv->dom);
+ if (priv->dom)
+ virDomainFree(priv->dom);
+ priv->dom = dom;
+ virDomainRef(priv->dom);
- virt_viewer_app_trace(app, "Guest %s is running, determining display\n",
- priv->domkey);
+ virt_viewer_app_trace(app, "Guest %s is running, determining display\n",
+ priv->domkey);
- g_object_set(app, "title", virDomainGetName(dom), NULL);
+ g_object_set(app, "title", virDomainGetName(dom), NULL);
- if (!virt_viewer_app_has_session(app)) {
- if (!virt_viewer_extract_connect_info(self, dom))
- return -1;
- }
+ if (!virt_viewer_app_has_session(app)) {
+ if (!virt_viewer_extract_connect_info(self, dom))
+ return -1;
+ }
- return 0;
+ return 0;
}
static gboolean
virt_viewer_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd)
{
#if defined(HAVE_SOCKETPAIR)
- VirtViewer *viewer = VIRT_VIEWER(self);
- VirtViewerPrivate *priv = viewer->priv;
- int pair[2];
+ VirtViewer *viewer = VIRT_VIEWER(self);
+ VirtViewerPrivate *priv = viewer->priv;
+ int pair[2];
#endif
- *fd = -1;
+ *fd = -1;
#if defined(HAVE_SOCKETPAIR)
- if (!priv->dom)
- return TRUE;
-
- if (socketpair(PF_UNIX, SOCK_STREAM, 0, pair) < 0)
- return FALSE;
-
- if (virDomainOpenGraphics(priv->dom, 0, pair[0],
- VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) < 0) {
- virErrorPtr err = virGetLastError();
- DEBUG_LOG("Error %s", err && err->message ? err->message : "Unknown");
- close(pair[0]);
- close(pair[1]);
- return TRUE;
- }
- close(pair[0]);
- *fd = pair[1];
+ if (!priv->dom)
+ return TRUE;
+
+ if (socketpair(PF_UNIX, SOCK_STREAM, 0, pair) < 0)
+ return FALSE;
+
+ if (virDomainOpenGraphics(priv->dom, 0, pair[0],
+ VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) < 0) {
+ virErrorPtr err = virGetLastError();
+ DEBUG_LOG("Error %s", err && err->message ? err->message : "Unknown");
+ close(pair[0]);
+ close(pair[1]);
+ return TRUE;
+ }
+ close(pair[0]);
+ *fd = pair[1];
#endif
- return TRUE;
+ return TRUE;
}
static int
virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED,
- virDomainPtr dom,
- int event,
- int detail G_GNUC_UNUSED,
- void *opaque)
+ virDomainPtr dom,
+ int event,
+ int detail G_GNUC_UNUSED,
+ void *opaque)
{
- VirtViewer *self = opaque;
- VirtViewerApp *app = VIRT_VIEWER_APP(self);
+ VirtViewer *self = opaque;
+ VirtViewerApp *app = VIRT_VIEWER_APP(self);
- DEBUG_LOG("Got domain event %d %d", event, detail);
+ DEBUG_LOG("Got domain event %d %d", event, detail);
- if (!virt_viewer_matches_domain(self, dom))
- return 0;
+ if (!virt_viewer_matches_domain(self, dom))
+ return 0;
- switch (event) {
- case VIR_DOMAIN_EVENT_STOPPED:
- //virt_viewer_deactivate(self);
- break;
+ switch (event) {
+ case VIR_DOMAIN_EVENT_STOPPED:
+ //virt_viewer_deactivate(self);
+ break;
- case VIR_DOMAIN_EVENT_STARTED:
- virt_viewer_update_display(self, dom);
- virt_viewer_app_activate(app);
- break;
- }
+ case VIR_DOMAIN_EVENT_STARTED:
+ virt_viewer_update_display(self, dom);
+ virt_viewer_app_activate(app);
+ break;
+ }
- return 0;
+ return 0;
}
static int
virt_viewer_initial_connect(VirtViewerApp *app)
{
- virDomainPtr dom = NULL;
- virDomainInfo info;
- int ret = -1;
- VirtViewer *self = VIRT_VIEWER(app);
- VirtViewerPrivate *priv = self->priv;
-
- virt_viewer_app_show_status(app, _("Finding guest domain"));
- dom = virt_viewer_lookup_domain(self);
- if (!dom) {
- if (priv->waitvm) {
- virt_viewer_app_show_status(app, _("Waiting for guest domain to be created"));
- virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n",
- priv->domkey);
- goto done;
- } else {
- virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"),
- priv->domkey);
- DEBUG_LOG("Cannot find guest %s", priv->domkey);
- goto cleanup;
- }
- }
-
- virt_viewer_app_show_status(app, _("Checking guest domain status"));
- if (virDomainGetInfo(dom, &info) < 0) {
- DEBUG_LOG("Cannot get guest state");
- goto cleanup;
- }
-
- if (info.state == VIR_DOMAIN_SHUTOFF) {
- virt_viewer_app_show_status(app, _("Waiting for guest domain to start"));
- } else {
- ret = virt_viewer_update_display(self, dom);
- if (ret >= 0)
- ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app);
- if (ret < 0) {
- if (priv->waitvm) {
- virt_viewer_app_show_status(app, _("Waiting for guest domain to start server"));
- virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n",
- priv->domkey);
- } else {
- DEBUG_LOG("Failed to activate viewer");
- goto cleanup;
- }
- } else if (ret == 0) {
- DEBUG_LOG("Failed to activate viewer");
- ret = -1;
- goto cleanup;
- }
- }
+ virDomainPtr dom = NULL;
+ virDomainInfo info;
+ int ret = -1;
+ VirtViewer *self = VIRT_VIEWER(app);
+ VirtViewerPrivate *priv = self->priv;
+
+ virt_viewer_app_show_status(app, _("Finding guest domain"));
+ dom = virt_viewer_lookup_domain(self);
+ if (!dom) {
+ if (priv->waitvm) {
+ virt_viewer_app_show_status(app, _("Waiting for guest domain to be created"));
+ virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n",
+ priv->domkey);
+ goto done;
+ } else {
+ virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"),
+ priv->domkey);
+ DEBUG_LOG("Cannot find guest %s", priv->domkey);
+ goto cleanup;
+ }
+ }
+
+ virt_viewer_app_show_status(app, _("Checking guest domain status"));
+ if (virDomainGetInfo(dom, &info) < 0) {
+ DEBUG_LOG("Cannot get guest state");
+ goto cleanup;
+ }
+
+ if (info.state == VIR_DOMAIN_SHUTOFF) {
+ virt_viewer_app_show_status(app, _("Waiting for guest domain to start"));
+ } else {
+ ret = virt_viewer_update_display(self, dom);
+ if (ret >= 0)
+ ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app);
+ if (ret < 0) {
+ if (priv->waitvm) {
+ virt_viewer_app_show_status(app, _("Waiting for guest domain to start server"));
+ virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n",
+ priv->domkey);
+ } else {
+ DEBUG_LOG("Failed to activate viewer");
+ goto cleanup;
+ }
+ } else if (ret == 0) {
+ DEBUG_LOG("Failed to activate viewer");
+ ret = -1;
+ goto cleanup;
+ }
+ }
done:
- ret = 0;
+ ret = 0;
cleanup:
- if (dom)
- virDomainFree(dom);
- return ret;
+ if (dom)
+ virDomainFree(dom);
+ return ret;
}
static void
virt_viewer_error_func (void *data G_GNUC_UNUSED,
- virErrorPtr error G_GNUC_UNUSED)
+ virErrorPtr error G_GNUC_UNUSED)
{
- /* nada */
+ /* nada */
}
static gboolean
virt_viewer_start(VirtViewerApp *app)
{
- VirtViewer *self = VIRT_VIEWER(app);
- VirtViewerPrivate *priv = self->priv;
- int cred_types[] =
- { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE };
- virConnectAuth auth_libvirt = {
- .credtype = cred_types,
- .ncredtype = ARRAY_CARDINALITY(cred_types),
- .cb = virt_viewer_auth_libvirt_credentials,
- .cbdata = (void *)priv->uri,
- };
- int oflags = 0;
-
- if (!virt_viewer_app_get_attach(app))
- oflags |= VIR_CONNECT_RO;
-
- virt_viewer_events_register();
-
- virSetErrorFunc(NULL, virt_viewer_error_func);
-
- virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n",
- priv->uri ? priv->uri : "<null>");
- priv->conn = virConnectOpenAuth(priv->uri,
- //virConnectAuthPtrDefault,
- &auth_libvirt,
- oflags);
- if (!priv->conn) {
- virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"),
- priv->uri ? priv->uri : _("[none]"));
- return FALSE;
- }
-
- if (virt_viewer_app_initial_connect(app) < 0)
- return FALSE;
-
- if (virConnectDomainEventRegister(priv->conn,
- virt_viewer_domain_event,
- self,
- NULL) < 0)
- priv->withEvents = FALSE;
- else
- priv->withEvents = TRUE;
-
- if (!priv->withEvents &&
- !virt_viewer_app_is_active(app)) {
- DEBUG_LOG("No domain events, falling back to polling");
- virt_viewer_app_start_reconnect_poll(app);
- }
-
- return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app);
+ VirtViewer *self = VIRT_VIEWER(app);
+ VirtViewerPrivate *priv = self->priv;
+ int cred_types[] =
+ { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE };
+ virConnectAuth auth_libvirt = {
+ .credtype = cred_types,
+ .ncredtype = ARRAY_CARDINALITY(cred_types),
+ .cb = virt_viewer_auth_libvirt_credentials,
+ .cbdata = (void *)priv->uri,
+ };
+ int oflags = 0;
+
+ if (!virt_viewer_app_get_attach(app))
+ oflags |= VIR_CONNECT_RO;
+
+ virt_viewer_events_register();
+
+ virSetErrorFunc(NULL, virt_viewer_error_func);
+
+ virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n",
+ priv->uri ? priv->uri : "<null>");
+ priv->conn = virConnectOpenAuth(priv->uri,
+ //virConnectAuthPtrDefault,
+ &auth_libvirt,
+ oflags);
+ if (!priv->conn) {
+ virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"),
+ priv->uri ? priv->uri : _("[none]"));
+ return FALSE;
+ }
+
+ if (virt_viewer_app_initial_connect(app) < 0)
+ return FALSE;
+
+ if (virConnectDomainEventRegister(priv->conn,
+ virt_viewer_domain_event,
+ self,
+ NULL) < 0)
+ priv->withEvents = FALSE;
+ else
+ priv->withEvents = TRUE;
+
+ if (!priv->withEvents &&
+ !virt_viewer_app_is_active(app)) {
+ DEBUG_LOG("No domain events, falling back to polling");
+ virt_viewer_app_start_reconnect_poll(app);
+ }
+
+ return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app);
}
VirtViewer *
virt_viewer_new(const char *uri,
- const char *name,
- gint zoom,
- gboolean direct,
- gboolean attach,
- gboolean waitvm,
- gboolean reconnect,
- gboolean verbose,
- GtkWidget *container)
+ const char *name,
+ gint zoom,
+ gboolean direct,
+ gboolean attach,
+ gboolean waitvm,
+ gboolean reconnect,
+ gboolean verbose,
+ GtkWidget *container)
{
- VirtViewer *self;
- VirtViewerApp *app;
- VirtViewerPrivate *priv;
-
- self = g_object_new(VIRT_VIEWER_TYPE,
- "container", container,
- "verbose", verbose,
- "guest-name", name,
- NULL);
- app = VIRT_VIEWER_APP(self);
- priv = self->priv;
-
- /* Set initial title based on guest name arg, which can be a ID,
- * UUID, or NAME string. To be replaced with the real guest name later
- */
- g_object_set(app, "title", name, NULL);
- virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
- virt_viewer_app_set_direct(app, direct);
- virt_viewer_app_set_attach(app, attach);
-
- /* should probably be properties instead */
- priv->uri = g_strdup(uri);
- priv->domkey = g_strdup(name);
- priv->waitvm = waitvm;
- priv->reconnect = reconnect;
-
- return self;
+ VirtViewer *self;
+ VirtViewerApp *app;
+ VirtViewerPrivate *priv;
+
+ self = g_object_new(VIRT_VIEWER_TYPE,
+ "container", container,
+ "verbose", verbose,
+ "guest-name", name,
+ NULL);
+ app = VIRT_VIEWER_APP(self);
+ priv = self->priv;
+
+ /* Set initial title based on guest name arg, which can be a ID,
+ * UUID, or NAME string. To be replaced with the real guest name later
+ */
+ g_object_set(app, "title", name, NULL);
+ virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
+ virt_viewer_app_set_direct(app, direct);
+ virt_viewer_app_set_attach(app, attach);
+
+ /* should probably be properties instead */
+ priv->uri = g_strdup(uri);
+ priv->domkey = g_strdup(name);
+ priv->waitvm = waitvm;
+ priv->reconnect = reconnect;
+
+ return self;
}
/*
* Local variables:
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * indent-tabs-mode: t
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
*/
diff --git a/src/virt-viewer.h b/src/virt-viewer.h
index 02512ca..d36d7d6 100644
--- a/src/virt-viewer.h
+++ b/src/virt-viewer.h
@@ -38,27 +38,35 @@ G_BEGIN_DECLS
typedef struct _VirtViewerPrivate VirtViewerPrivate;
typedef struct {
- VirtViewerApp parent;
- VirtViewerPrivate *priv;
+ VirtViewerApp parent;
+ VirtViewerPrivate *priv;
} VirtViewer;
typedef struct {
- VirtViewerAppClass parent_class;
+ VirtViewerAppClass parent_class;
} VirtViewerClass;
GType virt_viewer_get_type (void);
VirtViewer *
virt_viewer_new(const char *uri,
- const char *name,
- gint zoom,
- gboolean direct,
- gboolean attach,
- gboolean waitvm,
- gboolean reconnect,
- gboolean verbose,
- GtkWidget *container);
+ const char *name,
+ gint zoom,
+ gboolean direct,
+ gboolean attach,
+ gboolean waitvm,
+ gboolean reconnect,
+ gboolean verbose,
+ GtkWidget *container);
G_END_DECLS
#endif /* VIRT_VIEWER_H */
+
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */