On Mon, Jul 16, 2012 at 06:57:41PM +0200, Marc-André Lureau wrote: > --- > src/virt-viewer-app.c | 2 +- > src/virt-viewer-display.c | 26 ++++++++++++++++---------- > src/virt-viewer-display.h | 11 ++++++----- > src/virt-viewer-window.c | 5 ++++- > 4 files changed, 27 insertions(+), 17 deletions(-) > > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c > index 1447ce7..b93a978 100644 > --- a/src/virt-viewer-app.c > +++ b/src/virt-viewer-app.c > @@ -619,7 +619,7 @@ display_show_hint(VirtViewerDisplay *display, > "show-hint", &hint, > NULL); > > - if (hint == VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE) { > + if (hint == 0) { > if (win != self->priv->main_window && > g_getenv("VIRT_VIEWER_HIDE")) > virt_viewer_window_hide(win); > diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c > index 6d6052b..43ec45e 100644 > --- a/src/virt-viewer-display.c > +++ b/src/virt-viewer-display.c > @@ -41,7 +41,7 @@ struct _VirtViewerDisplayPrivate > guint zoom_level; > gboolean zoom; > gint nth_display; > - gint show_hint; > + guint show_hint; > VirtViewerSession *session; > gboolean auto_resize; > }; > @@ -151,13 +151,12 @@ virt_viewer_display_class_init(VirtViewerDisplayClass *class) > > g_object_class_install_property(object_class, > PROP_SHOW_HINT, > - g_param_spec_int("show-hint", > - "Show hint", > - "Show state hint", > - 0, > - G_MAXINT32, > - 0, > - G_PARAM_READABLE)); > + g_param_spec_flags("show-hint", > + "Show hint", > + "Show state hint", > + VIRT_VIEWER_TYPE_DISPLAY_SHOW_HINT_FLAGS, > + 0, > + G_PARAM_READABLE)); > > g_object_class_install_property(object_class, > PROP_SESSION, > @@ -298,7 +297,7 @@ virt_viewer_display_get_property(GObject *object, > g_value_set_int(value, priv->nth_display); > break; > case PROP_SHOW_HINT: > - g_value_set_int(value, priv->show_hint); > + g_value_set_flags(value, priv->show_hint); > break; > case PROP_SESSION: > g_value_set_object(value, virt_viewer_display_get_session(display)); > @@ -530,7 +529,14 @@ GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display) > return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display); > } > > -void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, gint hint) > +guint virt_viewer_display_get_show_hint(VirtViewerDisplay *self) > +{ > + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), 0); > + > + return self->priv->show_hint; > +} > + > +void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint hint) > { > VirtViewerDisplayPrivate *priv; > g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); > diff --git a/src/virt-viewer-display.h b/src/virt-viewer-display.h > index ffbaf0e..225080d 100644 > --- a/src/virt-viewer-display.h > +++ b/src/virt-viewer-display.h > @@ -25,6 +25,7 @@ > #define _VIRT_VIEWER_DISPLAY_H > > #include <gtk/gtk.h> > +#include "virt-viewer-enums.h" > > G_BEGIN_DECLS > > @@ -54,10 +55,9 @@ typedef struct _VirtViewerDisplayPrivate VirtViewerDisplayPrivate; > > typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel; > > -enum { > - VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE = 0, > - VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, > -}; > +typedef enum { > + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY = 1 << 0, > +} VirtViewerDisplayShowHintFlags; I would have kept HINT_HIDE as the flag name as it's more expressive than _READY imo. Looks good either way. Christophe > > /* perhaps this become an interface, and be pushed in gtkvnc and spice? */ > struct _VirtViewerDisplay { > @@ -108,7 +108,8 @@ gboolean virt_viewer_display_get_zoom(VirtViewerDisplay *display); > void virt_viewer_display_send_keys(VirtViewerDisplay *display, > const guint *keyvals, int nkeyvals); > GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display); > -void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, gint hint); > +void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, guint hint); > +guint virt_viewer_display_get_show_hint(VirtViewerDisplay *display); > VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *display); > void virt_viewer_display_set_auto_resize(VirtViewerDisplay *display, gboolean auto_resize); > gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *display); > diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c > index 7b582a0..c873ebc 100644 > --- a/src/virt-viewer-window.c > +++ b/src/virt-viewer-window.c > @@ -1002,9 +1002,12 @@ display_show_hint(VirtViewerDisplay *display, > GParamSpec *pspec G_GNUC_UNUSED, > VirtViewerWindow *self) > { > - gboolean hint; > + guint hint; > > g_object_get(display, "show-hint", &hint, NULL); > + > + hint = (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY); > + > gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), hint); > gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), hint); > gtk_widget_set_sensitive(self->priv->toolbar_send_key, hint); > -- > 1.7.10.4 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list
Attachment:
pgp3_i8pfveFG.pgp
Description: PGP signature