summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Make status widget visible immediatelyMarc-André Lureau2012-07-231-0/+1
| | | | | | | | | | GtkNotebook will use the currently visible widget as default page. If we don't show status widget before we append the display, the current page will be on display. Quoting Gtk+ documentation: "Note that due to historical reasons, GtkNotebook refuses to switch to a page unless the child widget is visible. Therefore, it is recommended to show child widgets before adding them to a notebook."
* vnc: when session is disconnected, make the display as non-readyMarc-André Lureau2012-07-231-3/+3
|
* Simplify display flag handlingMarc-André Lureau2012-07-234-20/+13
|
* Add VirtViewerSession::session-display-updatedMarc-André Lureau2012-07-234-4/+34
| | | | | Rebuild menu when agent is connected. Only when the agent is running may a display be enabled/disabled.
* Make the display submenu insensitive if display can't be selectedMarc-André Lureau2012-07-231-1/+17
|
* spice: factor out main channel lookup codeMarc-André Lureau2012-07-231-5/+17
|
* Add VirtViewerDisplay::selectable propertyMarc-André Lureau2012-07-233-0/+41
| | | | | | | This property will be set when the display can be selected to be "enabled" and shown (this can involve creating/connecting an additional guest monitor, and may need guest agent cooperation for example).
* Add virt_viewer_window_get_display()Marc-André Lureau2012-07-232-2/+12
| | | | Getter used in following changes.
* Hook up handling of MonitorsMarc-André Lureau2012-07-233-19/+92
| | | | | | Rely on spice-gtk display channel monitors property to manage displays. The same display channel may now provide several monitors, the SpiceDisplay widget must be told which monitor to display
* Bump glib > 2.22, add compat fileMarc-André Lureau2012-07-232-0/+57
| | | | | We use API from 2.22, and some from further version. Add virt-glib-compat.h fallback file for those.
* Use SpiceDisplay:ready property instead of channel markMarc-André Lureau2012-07-231-23/+15
| | | | | | The display can now check several conditions before the display can be shown, use that instead of display mark, which was not high-level enough.
* Number display starting from 1Marc-André Lureau2012-07-231-1/+1
|
* Prevent from adding the same display several time in the sessionMarc-André Lureau2012-07-231-0/+3
| | | | | In virt_viewer_session_spice_display_monitors(), we (re)add the display unconditionnaly every time we receive a new MonitorConfig.
* Add a DISABLED display hintMarc-André Lureau2012-07-235-5/+56
| | | | | | | | This flag will help to track whether the display has been removed/closed and whether it really has a valid display. Ready in contrast, is used to "hide" temporarily the display (when starting or redrawing the display, to avoid artifacts)
* Use virt_viewer_connect_object() for displayMarc-André Lureau2012-07-232-14/+14
| | | | | | | When display is released, detach signal automatically. Fix various crash related to not cleaning up signal handlers properly, due to no longer 1-1 only relation between display widget and channel.
* Rebuild display menu when a window is added or removedMarc-André Lureau2012-07-231-0/+3
|
* Mark a menu string as translatableMarc-André Lureau2012-07-231-1/+1
|
* Run-time check values before doing bad computationMarc-André Lureau2012-07-232-1/+10
|
* Turn display:show-hint into flags typeMarc-André Lureau2012-07-234-18/+29
|
* Destroy dialog immediately after runMarc-André Lureau2012-07-231-1/+1
| | | | | If the parent is already destroyed, it looks like the dialog is destroyed too. This avoids a crash when calling app_quit().
* build: generate enums type boilerplateMarc-André Lureau2012-07-233-3/+121
|
* spice: disconnect signal handlers when either object is destroyedMarc-André Lureau2012-07-233-14/+135
| | | | | | | | | | | Use virt_viewer_signal_connect_object(), a copy of telepathy utility function tp_g_signal_connect_object(). This function will take care of removing signal handler if any of emitter or attached object are destroyed. The following patches will have this condition met, since there is no longer 1-1 relation between channel and display. The channels can continue to be around when some of the display are removed.
* spice: improve fullscreen=auto-confMarc-André Lureau2012-07-231-0/+4
| | | | | Do keep client monitor position, do not align monitors automatically. The align property is only available since v0.12.101.
* Revert "Fix virt_viewer_app_activate return value"Christophe Fergeau2012-06-151-7/+4
| | | | | | | This reverts commit 3ce6df7c309068f36e2602692da809a153ed5688. This commit broke virt-viewer which expects this function to return -1 or 0 on error, and a positive value on success in virt_viewer_initial_connect.
* Fix virt_viewer_app_activate return valueChristophe Fergeau2012-06-131-4/+7
| | | | | | | | VirtViewerApp::activate is expected to return -1 on errors. It calls the VirtViewerSession::open_* methods, which return FALSE on error. However, VirtViewerApp::activate directly returns these boolean instead of testing the returned value and properly returning -1 on errors. This caused errors in these open methodes to be ignored.
* Fix various memory leaksChristophe Fergeau2012-06-134-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ==25063== 59 bytes in 1 blocks are definitely lost in loss record 5,163 of 9,502 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) ==25063== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356) ==25063== by 0x41F40A: connected (remote-viewer-main.c:186) ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777) ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547) ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296) ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389) ==25063== by 0x41AA53: reemit_signal_VOID (virt-viewer-session-ovirt.c:211) ==25063== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840) ==25063== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207) ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389) ==25063== 14 bytes in 1 blocks are definitely lost in loss record 623 of 9,502 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82) ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199) ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509) ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535) ==25063== by 0x40CBAE: virt_viewer_app_update_pretty_address (virt-viewer-app.c:1538) ==25063== by 0x40FB55: virt_viewer_app_free_connect_info (virt-viewer-app.c:1707) ==25063== by 0x40FBE9: virt_viewer_app_dispose (virt-viewer-app.c:1291) ==25063== by 0x3DE40144F7: g_object_unref (gobject.c:2981) ==25063== by 0x40C31A: main (remote-viewer-main.c:336) ==25063== 10 bytes in 1 blocks are definitely lost in loss record 491 of 9,502 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82) ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199) ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509) ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535) ==25063== by 0x40DE36: window_update_menu_displays_cb (virt-viewer-app.c:1640) ==25063== by 0x3DE383833F: g_hash_table_foreach (ghash.c:1524) ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777) ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547) ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296) ==25063== by 0x3DE40287C1: g_signal_emit (gsignal.c:3352) ==25063== by 0x5772F95: gtk_widget_show (gtkwidget.c:3225) ==25063== 8,431 (72 direct, 8,359 indirect) bytes in 1 blocks are definitely lost in loss record 9,468 of 9,502 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003) ==25063== by 0x3DE3861C05: g_slice_alloc0 (gslice.c:1029) ==25063== by 0x3DE402F96F: g_type_create_instance (gtype.c:1872) ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849) ==25063== by 0x3DE4016260: g_object_newv (gobject.c:1632) ==25063== by 0x3DE40168AB: g_object_new (gobject.c:1542) ==25063== by 0x40C4BD: virt_viewer_util_load_ui (virt-viewer-util.c:41) ==25063== by 0x40C7EB: virt_viewer_auth_collect_credentials (virt-viewer-auth.c:43) ==25063== by 0x41B391: authenticate_cb (virt-viewer-session-ovirt.c:430) ==25063== by 0x3458C05E8F: ffi_call_unix64 (unix64.S:75) ==25063== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 3,962 of 9,502 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003) ==25063== by 0x3DE38629F2: g_slist_append (gslist.c:222) ==25063== by 0x41483C: virt_viewer_window_init (virt-viewer-window.c:323) ==25063== by 0x3DE402FA05: g_type_create_instance (gtype.c:1892) ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849) ==25063== by 0x3DE4015D70: g_object_newv (gobject.c:1713) ==25063== by 0x3DE401655F: g_object_new_valist (gobject.c:1830) ==25063== by 0x3DE4016893: g_object_new (gobject.c:1545) ==25063== by 0x40DA34: virt_viewer_app_window_new (virt-viewer-app.c:590) ==25063== by 0x40E300: virt_viewer_app_constructor (virt-viewer-app.c:1336) ==30355== 4 bytes in 1 blocks are definitely lost in loss record 53 of 9,267 ==30355== at 0x4A0884D: malloc (vg_replace_malloc.c:263) ==30355== by 0x3DE384D2BE: g_malloc (gmem.c:159) ==30355== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356) ==30355== by 0x3DE40360FC: value_copy_string (gvaluetypes.c:276) ==30355== by 0x3DE40340CA: g_value_transform (gvalue.c:535) ==30355== by 0x3FDAE621DD: gdk_screen_get_setting (gdkevents-x11.c:3022) ==30355== by 0x3FDB3C7415: gtk_settings_get_property (gtksettings.c:1152) ==30355== by 0x3DE4017A74: g_object_get_property (gobject.c:1289) ==30355== by 0x414991: virt_viewer_window_disable_modifiers (virt-viewer-window.c:616) ==30355== by 0x415922: virt_viewer_window_keyboard_grab (virt-viewer-window.c:931) ==30355== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840) ==30355== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207)
* Don't leak SPICE ticketChristophe Fergeau2012-06-131-0/+1
|
* spice: use weak references to display channelMarc-André Lureau2012-05-173-16/+15
| | | | | | | | | | | | Fix switch-host migration with Spice. spice-gtk doesn't like channels staying around when they should be destroyed/finalized, ie removed from session. spice-gtk should probably learned to handle better the case of non cooperating clients, and be able to dissociate a channel from a session without waiting for it to be disposed, but for now, the relation is quite tight.
* Avoid use of deprecated GTK3 pointer APIsv0.5.3Daniel P. Berrange2012-05-151-1/+12
| | | | | | | | The gtk_widget_get_pointer() API is deprecated in GTK3 since it is not aware of multiple pointers. Replace its usage in autoDrawer.c with GdkDeviceManager and friends Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Adapt to avoid use of deprecated GTK3 style & size APIsDaniel P. Berrange2012-05-151-2/+18
| | | | | | | | The GtkStyle API has been deprecated in favour of GtkStyleContext. Update ovBox.c to use the latter if building with GtK3. Also replace use of the gtk_widget_size_request API with gtk_widget_get_preferred_size. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* dist: ship .ico in tarballMarc-André Lureau2012-05-141-2/+2
| | | | | | | | | Some distros (a 4-letters) don't have icotool. Let's ship the .ico in the tarball. The build will fail if icoutil is not installed when building from git or when the .ico is absent. The error should be explicit.
* Avoid race condition when disposing of appDaniel P. Berrange2012-05-081-1/+7
| | | | | | | | | | | When disposing of the VirtViewerApp, we free the hash table containing the windows. This causes each window to be freed, which in turn causes the visibility callback to be invoked. This can then get NULL pointers from the self->priv->windows usage. Blank out priv->windows before unrefing the hashs and add a check to ensure priv->windows is non-NULL.
* Ensure windows are destroyed when display closesDaniel P. Berrange2012-05-044-1/+18
| | | | | | | | | | | When running virt-viewer with the --reconnect argument, when the session closes, the VirtViewerWindow instances were being freed, but not the GtkWindow itself. So the orphaned window stayed around doing nothing. The GtkBuilder instance was also leaked. Fix these two leaks & also add some debugging to help future troubleshooting
* Change 'OK' button to 'Close' button in USB device selectionDaniel P. Berrange2012-05-021-1/+1
| | | | | The USB device selection applies immediately, so the dialog should be using 'Close' instead of 'OK' for its primary button
* g_getenv returns a const stringChristophe Fergeau2012-04-271-1/+1
| | | | | | When switching from getenv to g_getenv, 'doms' declaration wasn't changed from char * to const char *, which causes a gcc warning.
* Replace getenv/setenv with g_getenv/g_setenv for Win32 portabilityDaniel P. Berrange2012-04-261-3/+3
|
* Add debugging when performing fullscreen auto-configurationDaniel P. Berrange2012-04-251-1/+8
|
* Really fix debug output on glib >= 2.31Daniel P. Berrange2012-04-251-0/+12
|
* Fix debug output on glib >= 2.31Daniel P. Berrange2012-04-251-0/+2
|
* Set the remote-viewer binary application nameDaniel P. Berrange2012-04-231-0/+2
| | | | | | | Currently the window titles for remote-view have 'remote-viewer' appended them. This is based off the argv[0] name. We should be setting the GLib application name though, so we can get a localized 'Remote Viewer' string in the titlebar
* Add support for raw IPv6 addresses in VNC & libvirt URIsDaniel P. Berrange2012-04-232-4/+27
| | | | | | Support vnc://[x:y:z:]:5901/ for raw IPv6 addresses in URIs, and qemu+ssh://root@[x:y:x:]:22/ for raw IPv6 addresses in libvirt URIs
* Fix scaling of window to avoid integer truncationDaniel P. Berrange2012-04-192-2/+5
| | | | | Use round() instead of integer truncation when scaling the window, to avoid floating point precision problems on i386
* Add a desktop file for launching remote-viewerDaniel P. Berrange2012-04-182-0/+11
| | | | | | Enable automagic handling of spice:// URLs in firefox by registering a desktop handler for remote-viewer with the SPICE URI scheme
* Fix automatic usb redir through controllerChristophe Fergeau2012-04-171-5/+5
| | | | | | | | | | | | | | | | | | remote-viewer is currently trying to use SpiceUsbDeviceManager::auto-connect to control whether USB devices should be automatically connected or not. However, this property is more or less an internal spice-gtk property which is toggled by SpiceGtkSession when the SPICE widget gets/loses focus. SpiceGtkSession has an "auto-usbredir" property which can be used by applications to enable/disable automatic usb redirection through SPICE. Since this property is helpfully bound to VirtViewerSession::auto-usbredir, use this when the controller is told to enable/disable USB redirection. Without this change, automatic USB redirection will always get reenabled as soon as there's a focus change since SpiceGtkSession::auto-usbredir defaults to be enabled in spice-gtk.
* Minor simplification/optimization of VirtViewerDisplayZeeshan Ali (Khattak)2012-04-051-9/+5
|
* Fix typo in variable names for Win32 command helperDaniel P. Berrange2012-04-041-2/+2
|
* Fix close of VNC displaysDaniel P. Berrange2012-04-047-3/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When clicking the close button on a virt-viewer window with a VNC session open, while the VNC session terminates, the window does not go away. The problem is that the virt_viewer_session_vnc_disconnected method never gets invoked. The close button triggers a call to virt_viewer_session_clear_displays which unrefs the VirtViewerDisplayVnc instance. This in turn triggers a call to gtk_container_destroy, which destroys all widgets it contains, ie the VncDisplay * object. With the VncDisplay object in its dispose phase, no signals will ever be emitted, thus the 'vnc-disconnected' signal never gets seen. The design issue is that VirtViewerDisplayVnc is assuming it owns the VncDisplay, whereas in fact the real owner is the VirtViewerSessionVnc object. The solution is to introduce a new virt_viewer_display_close method which can be used to de-parent the widget before VirtViewerDisplay is unref'd. The VirtViewerSessionVnc object also needs to hold a full ref on the VncDisplay object, not merely a floating reference * virt-viewer-display-spice.c, virt-viewer-display.c, virt-viewer-display.h: Add virt_viewer_display_close * virt-viewer-display-vnc.c: Deparent VNC widget in virt_viewer_display_close impl * virt-viewer-session-vnc.c: Improve logging * virt-viewer-session.c: Call virt_viewer_display_close before unrefing display * virt-viewer-window.c: Improve logging Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Propagate USB redirection controller messagesChristophe Fergeau2012-04-041-1/+16
|
* Add support for the SPICE properties disable-effects & color-depthYonit Halperin2012-04-031-1/+3
| | | | | Signed-off-by: Yonit Halperin <yhalperi@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* build-sys: fix Windows specific LDFLAGS on non-mingwChristophe Fergeau2012-04-031-1/+3
|