display: make a function to queue the dirty display allocation trick

This commit is contained in:
Marc-André Lureau 2013-03-25 22:21:55 +01:00
parent 19b8be2c85
commit d99d943c90
2 changed files with 14 additions and 10 deletions

View File

@ -503,11 +503,21 @@ void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
}
void virt_viewer_display_queue_resize(VirtViewerDisplay *display)
{
VirtViewerDisplayPrivate *priv = display->priv;
GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
if (child && gtk_widget_get_visible(child)) {
priv->dirty = TRUE;
gtk_widget_queue_resize(GTK_WIDGET(display));
}
}
void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
guint zoom)
{
VirtViewerDisplayPrivate *priv = display->priv;
GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
if (zoom < 10)
zoom = 10;
@ -515,10 +525,7 @@ void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
zoom = 400;
priv->zoom_level = zoom;
if (child && gtk_widget_get_visible(child)) {
priv->dirty = TRUE;
gtk_widget_queue_resize(GTK_WIDGET(display));
}
virt_viewer_display_queue_resize(display);
}
@ -533,13 +540,9 @@ void virt_viewer_display_set_zoom(VirtViewerDisplay *display,
gboolean zoom)
{
VirtViewerDisplayPrivate *priv = display->priv;
GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
priv->zoom = zoom;
if (child && gtk_widget_get_visible(child)) {
priv->dirty = TRUE;
gtk_widget_queue_resize(GTK_WIDGET(display));
}
virt_viewer_display_queue_resize(display);
}

View File

@ -122,6 +122,7 @@ void virt_viewer_display_release_cursor(VirtViewerDisplay *display);
void virt_viewer_display_close(VirtViewerDisplay *display);
void virt_viewer_display_set_enabled(VirtViewerDisplay *display, gboolean enabled);
gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *display);
void virt_viewer_display_queue_resize(VirtViewerDisplay *display);
G_END_DECLS