[Spice-devel] [PATCH 3/9] gtk: move gtk session

Fabiano Fidêncio fidencio at redhat.com
Tue Feb 16 16:26:02 UTC 2016


On Tue, Feb 16, 2016 at 3:49 PM, Marc-André Lureau
<marcandre.lureau at gmail.com> wrote:
> Do not leak internals of SpiceGtkSession in our headers. This makes also
> the class final, which let us extend more easily without fear of
> breaking ABI.

Why do you need to change the UsbDeviceWidget as well?
This change should be in a different patch, IMHO.

>
> Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
> ---
>  src/spice-gtk-session-priv.h | 13 +++++++++++++
>  src/spice-gtk-session.h      | 33 ---------------------------------
>  src/usb-device-widget.c      | 16 ++++++++++++++++
>  src/usb-device-widget.h      | 36 ------------------------------------
>  4 files changed, 29 insertions(+), 69 deletions(-)
>
> diff --git a/src/spice-gtk-session-priv.h b/src/spice-gtk-session-priv.h
> index b2b6206..d7fe313 100644
> --- a/src/spice-gtk-session-priv.h
> +++ b/src/spice-gtk-session-priv.h
> @@ -22,6 +22,19 @@
>
>  G_BEGIN_DECLS
>
> +typedef struct _SpiceGtkSessionPrivate SpiceGtkSessionPrivate;
> +
> +struct _SpiceGtkSession
> +{
> +    GObject parent;
> +    SpiceGtkSessionPrivate *priv;
> +};
> +
> +struct _SpiceGtkSessionClass
> +{
> +    GObjectClass parent_class;
> +};
> +
>  void spice_gtk_session_request_auto_usbredir(SpiceGtkSession *self,
>                                               gboolean state);
>  gboolean spice_gtk_session_get_read_only(SpiceGtkSession *self);
> diff --git a/src/spice-gtk-session.h b/src/spice-gtk-session.h
> index 9a45d85..b04f4fc 100644
> --- a/src/spice-gtk-session.h
> +++ b/src/spice-gtk-session.h
> @@ -35,39 +35,6 @@ G_BEGIN_DECLS
>
>  typedef struct _SpiceGtkSession SpiceGtkSession;
>  typedef struct _SpiceGtkSessionClass SpiceGtkSessionClass;
> -typedef struct _SpiceGtkSessionPrivate SpiceGtkSessionPrivate;
> -
> -/**
> - * SpiceGtkSession:
> - *
> - * The #SpiceGtkSession struct is opaque and should not be accessed directly.
> - */
> -struct _SpiceGtkSession
> -{
> -    GObject parent;
> -    SpiceGtkSessionPrivate *priv;
> -    /* Do not add fields to this struct */
> -};
> -
> -/**
> - * SpiceGtkSessionClass:
> - * @parent_class: Parent class.
> - *
> - * Class structure for #SpiceGtkSession.
> - */
> -struct _SpiceGtkSessionClass
> -{
> -    GObjectClass parent_class;
> -
> -    /* signals */
> -
> -    /*< private >*/
> -    /*
> -     * If adding fields to this struct, remove corresponding
> -     * amount of padding to avoid changing overall struct size
> -     */
> -    gchar _spice_reserved[SPICE_RESERVED_PADDING];
> -};
>
>  GType spice_gtk_session_get_type(void);
>
> diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c
> index 59273f9..faa6c6d 100644
> --- a/src/usb-device-widget.c
> +++ b/src/usb-device-widget.c
> @@ -39,6 +39,22 @@
>   * add an UI to select USB devices to redirect (or unredirect).
>   */
>
> +struct _SpiceUsbDeviceWidget
> +{
> +    GtkVBox parent;
> +
> +    SpiceUsbDeviceWidgetPrivate *priv;
> +};
> +
> +struct _SpiceUsbDeviceWidgetClass
> +{
> +    GtkVBoxClass parent_class;
> +
> +    /* signals */
> +    void (*connect_failed) (SpiceUsbDeviceWidget *widget,
> +                            SpiceUsbDevice *device, GError *error);
> +};
> +
>  /* ------------------------------------------------------------------ */
>  /* Prototypes for callbacks  */
>  static void device_added_cb(SpiceUsbDeviceManager *manager,
> diff --git a/src/usb-device-widget.h b/src/usb-device-widget.h
> index 8ce91f2..a4ba638 100644
> --- a/src/usb-device-widget.h
> +++ b/src/usb-device-widget.h
> @@ -41,42 +41,6 @@ typedef struct _SpiceUsbDeviceWidget SpiceUsbDeviceWidget;
>  typedef struct _SpiceUsbDeviceWidgetClass SpiceUsbDeviceWidgetClass;
>  typedef struct _SpiceUsbDeviceWidgetPrivate SpiceUsbDeviceWidgetPrivate;
>
> -/**
> - * SpiceUsbDeviceWidget:
> - *
> - * The #SpiceUsbDeviceWidget struct is opaque and should not be accessed directly.
> - */
> -struct _SpiceUsbDeviceWidget
> -{
> -    GtkVBox parent;
> -
> -    /*< private >*/
> -    SpiceUsbDeviceWidgetPrivate *priv;
> -    /* Do not add fields to this struct */
> -};
> -
> -/**
> - * SpiceUsbDeviceWidgetClass:
> - * @parent_class: Parent class.
> - * @connect_failed: Signal class handler for the #SpiceUsbDeviceWidget::connect-failed signal.
> - *
> - * Class structure for #SpiceUsbDeviceWidget.
> - */
> -struct _SpiceUsbDeviceWidgetClass
> -{
> -    GtkVBoxClass parent_class;
> -
> -    /* signals */
> -    void (*connect_failed) (SpiceUsbDeviceWidget *widget,
> -                            SpiceUsbDevice *device, GError *error);
> -    /*< private >*/
> -    /*
> -     * If adding fields to this struct, remove corresponding
> -     * amount of padding to avoid changing overall struct size
> -     */
> -    gchar _spice_reserved[SPICE_RESERVED_PADDING];
> -};
> -
>  GType spice_usb_device_widget_get_type(void);
>  GtkWidget *spice_usb_device_widget_new(SpiceSession    *session,
>                                         const gchar     *device_format_string);
> --
> 2.5.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list