This ensures that G_LOG_DOMAIN is used in all places, and in turns
highlights a bug in the test suite.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Following commit de5cd71, when the server closes the connection
(likely when qemu-kvm exits), a dialog is shown to the user.
This behavior change is not good for automatic tests that expect
virt-viewer to exit without any dialog.
This patch makes sure no dialog is shown for this error, by
checking if the VNC connection was already initialized.
Signed-off-by: Uri Lublin <uril@redhat.com>
If a user sets any hotkey, disable numpad hotkeys.
If a user does not set any hotkey and the default hotkeys
are enabled, then numpad hotkeys are enabled too.
This is a folloup for commits a40c8f4 and e89e82e + 8cc0667.
Currently setting (e.g. ctrl [123]) hotkeys for zoom (in/out/reset),
re-enable the default numpad hotkeys (ctrl [+-0]).
Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1791261
Suggested-by: Jakub Janků <jjanku@redhat.com>
Signed-off-by: Uri Lublin <uril@redhat.com>
Hotkeys should be disabled in kiosk mode. However, if no
"release-cursor" hotkey is specified, the default Ctrl+Alt
grab sequence keeps functioning even in kiosk mode.
That's because it's based on the spice/vnc functionality instead
of on the accelerators in virt-viewer.
That's especially problematic with spice, because the grab
sequence releases both the cursor and the keyboard. Thus the user
can escape from kiosk mode by pressing Ctrl+Alt followed by
Alt+Tab, for example.
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1893584
Signed-off-by: Jakub Janků <jjanku@redhat.com>
If a vv file is used or the hotkeys are customized using the
--hotkeys cmd option, all hotkeys that are not explicitly
requested get disabled, this includes the zomm hotkeys.
As a consequence, the labels for zoom actions in the menu
disappear. However, the user can still perform these actions
using the keys on the numpad which are handled separately.
To fix it, check that the normal zoom hotkeys are enabled
before enabling the keypad ones.
Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1791261
Signed-off-by: Jakub Janků <jjanku@redhat.com>
There is nothing that would disable any aspect of kiosk mode that would
ever need to be enabled with a call to virt_viewer_window_show. To the
contrary, "re-enabling" kiosk mode in virt_viwer_window_show can, in
certain cases, result in accels becoming disable despite the keyboard
being released.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Previously, enabling window modifiers would only add accel groups that
had presumably been disabled to the window in question. This was fragile
and caused bad behavior in cases when the criteria for whether or not an
accel group should be enabled changed between the time the groups were
disabled and re-enabled, potentially leading to certain groups never
being re-added. There is no harm in adding accel groups that are already
added to a window, so this change simply eliminates the unnecessary
check.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Adds a "USB device reset" default keyboard shortcut (ctrl+shift+r), as
well as the option to override this shortcut with the --hotkeys opt.
Updates documentation accordingly.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Adds a "USB device reset" option to the File menu. When selected, "USB
device reset" will disconnect and reconnect all currently connected USB
devices.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Error: DEADCODE (CWE-561): [#def1]
virt-viewer-9.0/src/virt-viewer-display-vte.c:164: assignment: Assigning: "scroll" = "NULL".
virt-viewer-9.0/src/virt-viewer-display-vte.c:188: null: At condition "scroll", the value of "scroll" must be "NULL".
virt-viewer-9.0/src/virt-viewer-display-vte.c:188: dead_error_condition: The condition "scroll" cannot be true.
virt-viewer-9.0/src/virt-viewer-display-vte.c:189: dead_error_begin: Execution cannot reach this statement: "gtk_container_add((GtkConta...".
virt-viewer-9.0/src/virt-viewer-display-vte.c:189: effectively_constant: Local variable "scroll" is assigned only once, to a constant value, making it effectively constant throughout its scope. If this is not the intent, examine the logic to see if there is a missing assignment that would make "scroll" not remain constant.
Reported in https://gitlab.com/virt-viewer/virt-viewer/-/issues/7.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
By default when connecting with VNC, an existing viewer will be kicked
off. This adds a --shared / -s flag which tells the server we are
willing the share the session with other clients.
This is wired up for VNC only.
https://bugzilla.redhat.com/show_bug.cgi?id=1060425
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Even if the view has search capabilities built-in, show the VM names
sorted so it is easier to visually search for them.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Add a new column in the list models for the VM selection dialog, and use
this new column to hold the tooltip of the items in the list.
At the moment nothing is set in the new column, so there is no behavior
change.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Add a new column in the list models for the VM selection dialog, and use
this new column to hold the key of the VM. This way, the first column
represents the UI representation of the VM without affecting the key.
At the moment the VM name is set for both, so there is no behavior
change.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
All the g_printerr does is printing the message of the GError with a
newline at the end. Hence, use a simple format string without the need
to translate it.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Currently there is a strings with four placeholders that represents
optional bits: the "press to release", a whitespace (!), the subtitle,
and the application title. This is suboptimal, because it hides the way
the title is composed, and makes it hard to properly translate.
Instead of this string puzzle, create separate strings for each case
(there are only four of them, and one is only the application title).
Each of the string has all the static text availale, with a proper
comment explaining the layout.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Give them a context to explain what is the "unknown thing", so it is
possible to provide proper translations.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Turn the menu labels into GTK accelerator strings, so we can parse them
to convert them into a proper user representation.
There is a small behaviour change: the menu items do not have mnemonics
anymore by default.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Switch the homepage URL to https, and synchronize the label with the
URL. Also, do not make the label translatable, as it is pointless (it is
only a URL).
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Use the standard gpl-2-0 license type of GtkAboutDialog, instead of the
custom license text: this way, the dialog will show a translated text
with the license type, and a link to the full license text.
As side change due to the editing of this file in glade 3.36: set the
logo icon name to "virt-viewer", even if at runtime a logo/image will be
loaded. glade needs a logo set, either as icon name or as pixmap.
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Instead of showing just a generic error with a list of files group
files by error and show them.
This solves https://bugzilla.redhat.com/show_bug.cgi?id=1753563
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
The default key accelerator to release mouse if left control and
left alt but the current description is "Ctrl+Alt", change to
"Ctrl_L+Alt_L" to avoid misunderstanding.
This solves https://bugzilla.redhat.com/show_bug.cgi?id=1548371
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Do not leak memory in case of task cancelled.
Quote "msg" in case it contains some no-xml character that could
came from translated strings.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Make "modifiers" static, potentially avoids a copy to stack.
Use G_N_ELEMENTS also to allocate keys, as in the next loop
allowing to easily change "modifiers" size.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Instead of a fail simply reply that there are no ISO files.
Message text was suggested by Radek Duda who reported the issue.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Now that we support both ISO and DATA storage domain types, we need to
make sure that the files are listed correctly. In this case we give the
domains of ISO type the precedence over DATA ones.
This change extends previous commit bbda3aa which made it possible for
storage domains of type DATA to be considered valid.
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Unlike the StorageDomain objects of ISO type, the DATA ones require a
specific API recently added to libgovirt to support them. This commit
makes use of those new functions under #ifdef guards and adds proper a
check to configure.ac.
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1847223
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
This prevents the silent overwriting of the file, and still makes sure the user knows why we don't proceed.
Fix BZ#1752514
Signed-off-by: Julien Ropé <jrope@redhat.com>
The current code is using a single event handler for leave/enter and
looking at the mouse coordinates to decide whether it entered or left
the widget. This logic is completely broken when the window is
mimimized, because the mouse coordinates of the leave event are still
within the window boundary.
Switch to just have a separate handler for enter/leave events and stop
looking at mouse coordinates entirely.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
The project primary git repo has moved from pagure.io to
gitlab.com/virt-viewer/virt-viewer. We want users to submit
code contributions, bug reports and support questions to the
gitlab project, not the mailing list, nor bugzilla, nor the
virt-manager.org site.
We're still using virt-manager.org for hosting downloads of
source and pagure.io for MSIs, but we'll aim to change that
too.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
The error code returned by virt_viewer_session_open_fd() and
virt_viewer_session_channel_open_fd() were not checked. The file
descriptor passed to them could then be left opened even if the function
failed, causing a leak of resources.
This was reported by a Coverity scan, logged under
https://bugzilla.redhat.com/show_bug.cgi?id=1655792
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Julien Ropé <jrope@redhat.com>