mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2026-01-07 19:57:58 +00:00
Various cleanups for Glib/GTK and BZ 474213
This commit is contained in:
parent
64c4b4d3c3
commit
d5cee6df0c
26
src/main.c
26
src/main.c
@ -25,12 +25,15 @@
|
||||
#include <vncdisplay.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib/gi18n.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "viewer.h"
|
||||
|
||||
static void viewer_version(FILE *out)
|
||||
static void viewer_version(void)
|
||||
{
|
||||
fprintf(out, _("%s version %s\n"), PACKAGE, VERSION);
|
||||
g_print(_("%s version %s\n"), PACKAGE, VERSION);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
@ -41,7 +44,6 @@ int main(int argc, char **argv)
|
||||
int ret;
|
||||
char *uri = NULL;
|
||||
gchar **args = NULL;
|
||||
gboolean print_version = FALSE;
|
||||
gboolean verbose = FALSE;
|
||||
gboolean debug = FALSE;
|
||||
gboolean direct = FALSE;
|
||||
@ -49,8 +51,8 @@ int main(int argc, char **argv)
|
||||
gboolean reconnect = FALSE;
|
||||
const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
|
||||
const GOptionEntry options [] = {
|
||||
{ "version", 'V', 0, G_OPTION_ARG_NONE, &print_version,
|
||||
N_("display version information"), NULL },
|
||||
{ "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
|
||||
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,
|
||||
@ -80,16 +82,14 @@ int main(int argc, char **argv)
|
||||
g_option_context_add_group (context, vnc_display_get_option_group ());
|
||||
g_option_context_parse (context, &argc, &argv, &error);
|
||||
if (error) {
|
||||
g_print ("%s\n%s\n",
|
||||
error->message,
|
||||
gettext(help_msg));
|
||||
g_error_free (error);
|
||||
g_printerr("%s\n%s\n",
|
||||
error->message,
|
||||
gettext(help_msg));
|
||||
g_error_free(error);
|
||||
return 1;
|
||||
}
|
||||
if (print_version) {
|
||||
viewer_version(stdout);
|
||||
return 0;
|
||||
}
|
||||
|
||||
g_option_context_free(context);
|
||||
|
||||
if (!args || (g_strv_length(args) != 1)) {
|
||||
fprintf(stderr, _("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg);
|
||||
|
||||
61
src/viewer.c
61
src/viewer.c
@ -336,7 +336,7 @@ static void viewer_resize_desktop(GtkWidget *vnc G_GNUC_UNUSED, gint width, gint
|
||||
|
||||
static void viewer_set_title(VirtViewer *viewer, gboolean grabbed)
|
||||
{
|
||||
char title[1024];
|
||||
char *title;
|
||||
const char *subtitle;
|
||||
|
||||
if (!viewer->window)
|
||||
@ -347,10 +347,12 @@ static void viewer_set_title(VirtViewer *viewer, gboolean grabbed)
|
||||
else
|
||||
subtitle = "";
|
||||
|
||||
snprintf(title, sizeof(title), "%s%s - Virt Viewer",
|
||||
subtitle, viewer->domtitle);
|
||||
title = g_strdup_printf("%s%s - Virt Viewer",
|
||||
subtitle, viewer->domtitle);
|
||||
|
||||
gtk_window_set_title(GTK_WINDOW(viewer->window), title);
|
||||
|
||||
g_free(title);
|
||||
}
|
||||
|
||||
static gboolean viewer_ignore_accel(GtkWidget *menu G_GNUC_UNUSED,
|
||||
@ -389,8 +391,8 @@ static void viewer_disable_modifiers(VirtViewer *viewer)
|
||||
for (i = 0 ; i < LAST_MENU ; i++) {
|
||||
GtkWidget *menu = glade_xml_get_widget(viewer->glade, menuNames[i]);
|
||||
viewer->accelMenuSig[i] =
|
||||
g_signal_connect(GTK_OBJECT(menu), "mnemonic-activate",
|
||||
GTK_SIGNAL_FUNC(viewer_ignore_accel), viewer);
|
||||
g_signal_connect(menu, "mnemonic-activate",
|
||||
G_CALLBACK(viewer_ignore_accel), viewer);
|
||||
}
|
||||
|
||||
viewer->accelEnabled = FALSE;
|
||||
@ -420,8 +422,7 @@ static void viewer_enable_modifiers(VirtViewer *viewer)
|
||||
/* This allows menu bar shortcuts like Alt+F == File */
|
||||
for (i = 0 ; i < LAST_MENU ; i++) {
|
||||
GtkWidget *menu = glade_xml_get_widget(viewer->glade, menuNames[i]);
|
||||
g_signal_handler_disconnect(GTK_OBJECT(menu),
|
||||
viewer->accelMenuSig[i]);
|
||||
g_signal_handler_disconnect(menu, viewer->accelMenuSig[i]);
|
||||
}
|
||||
|
||||
viewer->accelEnabled = TRUE;
|
||||
@ -494,7 +495,7 @@ static void viewer_menu_send(GtkWidget *menu G_GNUC_UNUSED, VirtViewer *viewer)
|
||||
GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu));
|
||||
const char *text = gtk_label_get_label(GTK_LABEL(label));
|
||||
|
||||
for (i = 0 ; i < (sizeof(keyCombos)/sizeof(keyCombos[0])) ; i++) {
|
||||
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)));
|
||||
vnc_display_send_keys(VNC_DISPLAY(viewer->vnc),
|
||||
@ -1109,27 +1110,27 @@ viewer_start (const char *uri,
|
||||
vnc_display_set_force_size(VNC_DISPLAY(viewer->vnc), FALSE);
|
||||
vnc_display_set_scaling(VNC_DISPLAY(viewer->vnc), TRUE);
|
||||
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-connected",
|
||||
GTK_SIGNAL_FUNC(viewer_connected), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-initialized",
|
||||
GTK_SIGNAL_FUNC(viewer_initialized), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-disconnected",
|
||||
GTK_SIGNAL_FUNC(viewer_disconnected), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-connected",
|
||||
G_CALLBACK(viewer_connected), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-initialized",
|
||||
G_CALLBACK(viewer_initialized), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-disconnected",
|
||||
G_CALLBACK(viewer_disconnected), viewer);
|
||||
|
||||
/* When VNC desktop resizes, we have to resize the containing widget */
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-desktop-resize",
|
||||
GTK_SIGNAL_FUNC(viewer_resize_desktop), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-pointer-grab",
|
||||
GTK_SIGNAL_FUNC(viewer_mouse_grab), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-pointer-ungrab",
|
||||
GTK_SIGNAL_FUNC(viewer_mouse_ungrab), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-keyboard-grab",
|
||||
GTK_SIGNAL_FUNC(viewer_key_grab), viewer);
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-keyboard-ungrab",
|
||||
GTK_SIGNAL_FUNC(viewer_key_ungrab), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-desktop-resize",
|
||||
G_CALLBACK(viewer_resize_desktop), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-pointer-grab",
|
||||
G_CALLBACK(viewer_mouse_grab), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-pointer-ungrab",
|
||||
G_CALLBACK(viewer_mouse_ungrab), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-keyboard-grab",
|
||||
G_CALLBACK(viewer_key_grab), viewer);
|
||||
g_signal_connect(viewer->vnc, "vnc-keyboard-ungrab",
|
||||
G_CALLBACK(viewer_key_ungrab), viewer);
|
||||
|
||||
g_signal_connect(GTK_OBJECT(viewer->vnc), "vnc-auth-credential",
|
||||
GTK_SIGNAL_FUNC(viewer_auth_vnc_credentials), &viewer->vncAddress);
|
||||
g_signal_connect(viewer->vnc, "vnc-auth-credential",
|
||||
G_CALLBACK(viewer_auth_vnc_credentials), &viewer->vncAddress);
|
||||
|
||||
notebook = glade_xml_get_widget(viewer->glade, "notebook");
|
||||
|
||||
@ -1137,8 +1138,8 @@ viewer_start (const char *uri,
|
||||
align = glade_xml_get_widget(viewer->glade, "vnc-align");
|
||||
gtk_container_add(GTK_CONTAINER(align), viewer->vnc);
|
||||
|
||||
g_signal_connect(GTK_OBJECT(align), "size-allocate",
|
||||
GTK_SIGNAL_FUNC(viewer_resize_align), viewer);
|
||||
g_signal_connect(align, "size-allocate",
|
||||
G_CALLBACK(viewer_resize_align), viewer);
|
||||
|
||||
if (container) {
|
||||
viewer->container = container;
|
||||
@ -1149,8 +1150,8 @@ viewer_start (const char *uri,
|
||||
GSList *accels;
|
||||
viewer->container = window;
|
||||
viewer->window = window;
|
||||
g_signal_connect(GTK_OBJECT(window), "delete-event",
|
||||
GTK_SIGNAL_FUNC(viewer_shutdown), viewer);
|
||||
g_signal_connect(window, "delete-event",
|
||||
G_CALLBACK(viewer_shutdown), viewer);
|
||||
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
|
||||
viewer->accelEnabled = TRUE;
|
||||
accels = gtk_accel_groups_from_object(G_OBJECT(window));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user