111 | 111 |
static void virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen);
|
112 | 112 |
static void virt_viewer_app_update_menu_displays(VirtViewerApp *self);
|
113 | 113 |
static void virt_viewer_update_smartcard_accels(VirtViewerApp *self);
|
|
114 |
static void virt_viewer_update_usbredir_accels(VirtViewerApp *self);
|
114 | 115 |
static void virt_viewer_app_add_option_entries(VirtViewerApp *self, GOptionContext *context, GOptionGroup *group);
|
115 | 116 |
static VirtViewerWindow *virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth);
|
116 | 117 |
|
|
164 | 165 |
GdkModifierType insert_smartcard_accel_mods;
|
165 | 166 |
guint remove_smartcard_accel_key;
|
166 | 167 |
GdkModifierType remove_smartcard_accel_mods;
|
|
168 |
gboolean usb_device_reset_accel_valid;
|
|
169 |
guint usb_device_reset_accel_key;
|
|
170 |
GdkModifierType usb_device_reset_accel_mods;
|
167 | 171 |
gboolean quit_on_disconnect;
|
168 | 172 |
gboolean supports_share_clipboard;
|
169 | 173 |
VirtViewerKeyMapping *keyMappings;
|
|
1270 | 1274 |
|
1271 | 1275 |
virt_viewer_app_set_usb_options_sensitive(self, has_usbredir);
|
1272 | 1276 |
virt_viewer_app_set_usb_reset_sensitive(self, has_usbredir);
|
|
1277 |
virt_viewer_update_usbredir_accels(self);
|
1273 | 1278 |
}
|
1274 | 1279 |
|
1275 | 1280 |
static void notify_software_reader_cb(GObject *gobject G_GNUC_UNUSED,
|
|
2128 | 2133 |
}
|
2129 | 2134 |
|
2130 | 2135 |
static void
|
|
2136 |
virt_viewer_set_usb_device_reset_accel(VirtViewerApp *self,
|
|
2137 |
guint accel_key,
|
|
2138 |
GdkModifierType accel_mods,
|
|
2139 |
gboolean overwrite)
|
|
2140 |
{
|
|
2141 |
VirtViewerAppPrivate *priv = self->priv;
|
|
2142 |
|
|
2143 |
if (overwrite || !priv->usb_device_reset_accel_valid) {
|
|
2144 |
priv->usb_device_reset_accel_valid = TRUE;
|
|
2145 |
priv->usb_device_reset_accel_key = accel_key;
|
|
2146 |
priv->usb_device_reset_accel_mods = accel_mods;
|
|
2147 |
}
|
|
2148 |
}
|
|
2149 |
|
|
2150 |
static void
|
|
2151 |
virt_viewer_update_usbredir_accels(VirtViewerApp *self)
|
|
2152 |
{
|
|
2153 |
gboolean has_usbredir;
|
|
2154 |
VirtViewerAppPrivate *priv = self->priv;
|
|
2155 |
|
|
2156 |
if (self->priv->session != NULL) {
|
|
2157 |
g_object_get(G_OBJECT(self->priv->session),
|
|
2158 |
"has-usbredir", &has_usbredir, NULL);
|
|
2159 |
} else {
|
|
2160 |
has_usbredir = FALSE;
|
|
2161 |
}
|
|
2162 |
|
|
2163 |
if (has_usbredir) {
|
|
2164 |
gtk_accel_map_change_entry("<virt-viewer>/file/usb-device-reset",
|
|
2165 |
priv->usb_device_reset_accel_key,
|
|
2166 |
priv->usb_device_reset_accel_mods,
|
|
2167 |
TRUE);
|
|
2168 |
} else {
|
|
2169 |
gtk_accel_map_change_entry("<virt-viewer>/file/usb-device-reset", 0, 0, TRUE);
|
|
2170 |
}
|
|
2171 |
}
|
|
2172 |
|
|
2173 |
static void
|
2131 | 2174 |
virt_viewer_app_on_application_startup(GApplication *app)
|
2132 | 2175 |
{
|
2133 | 2176 |
VirtViewerApp *self = VIRT_VIEWER_APP(app);
|
|
2162 | 2205 |
|
2163 | 2206 |
virt_viewer_set_insert_smartcard_accel(self, GDK_KEY_F8, GDK_SHIFT_MASK);
|
2164 | 2207 |
virt_viewer_set_remove_smartcard_accel(self, GDK_KEY_F9, GDK_SHIFT_MASK);
|
|
2208 |
virt_viewer_set_usb_device_reset_accel(self, GDK_KEY_r, GDK_SHIFT_MASK | GDK_CONTROL_MASK, FALSE);
|
|
2209 |
|
2165 | 2210 |
gtk_accel_map_add_entry("<virt-viewer>/view/toggle-fullscreen", GDK_KEY_F11, 0);
|
2166 | 2211 |
gtk_accel_map_add_entry("<virt-viewer>/view/release-cursor", GDK_KEY_F12, GDK_SHIFT_MASK);
|
2167 | 2212 |
gtk_accel_map_add_entry("<virt-viewer>/view/zoom-reset", GDK_KEY_0, GDK_CONTROL_MASK);
|
|
2413 | 2458 |
gtk_accel_map_change_entry("<virt-viewer>/send/secure-attention", 0, 0, TRUE);
|
2414 | 2459 |
virt_viewer_set_insert_smartcard_accel(self, 0, 0);
|
2415 | 2460 |
virt_viewer_set_remove_smartcard_accel(self, 0, 0);
|
|
2461 |
virt_viewer_set_usb_device_reset_accel(self, 0, 0, TRUE);
|
2416 | 2462 |
}
|
2417 | 2463 |
|
2418 | 2464 |
void
|
|
2470 | 2516 |
virt_viewer_set_insert_smartcard_accel(self, accel_key, accel_mods);
|
2471 | 2517 |
} else if (g_str_equal(*hotkey, "smartcard-remove")) {
|
2472 | 2518 |
virt_viewer_set_remove_smartcard_accel(self, accel_key, accel_mods);
|
|
2519 |
} else if (g_str_equal(*hotkey, "usb-device-reset")) {
|
|
2520 |
virt_viewer_set_usb_device_reset_accel(self, accel_key, accel_mods, TRUE);
|
2473 | 2521 |
} else {
|
2474 | 2522 |
g_warning("Unknown hotkey command %s", *hotkey);
|
2475 | 2523 |
}
|
|
2480 | 2528 |
|
2481 | 2529 |
virt_viewer_app_set_enable_accel(self, TRUE);
|
2482 | 2530 |
virt_viewer_update_smartcard_accels(self);
|
|
2531 |
virt_viewer_update_usbredir_accels(self);
|
2483 | 2532 |
}
|
2484 | 2533 |
|
2485 | 2534 |
void
|