2d2d7ac Fix resizing problem with recent gtk versions

Authored and Committed by jjongsma 7 years ago
    Fix resizing problem with recent gtk versions
    
    When using client-side decorations, as well as in certain other
    situations (wayland, and windows in some cases), the window gradually
    resizes larger and larger.
    
    This is caused by a change in how gtk interprets the sizes passed to
    gtk_window_resize(), particularly when client-side decorations (CSD) are
    involved. For example, In the past this size was assumed to include the
    size of the CSD, but now it it assumes that the sizes only represent the
    size of the window's content, without any decorations. However,
    gtk_widget_get_preferred_size() (when called on a GtkWindow*), returns a
    size that includes the size of the CSD. So
    virt_viewer_window_queue_resize() was essentially growing the window by
    the size of the CSD every time it was called.
    
    To work around this issue, we need to calculate the preferred size of
    the window's child, not the size of the entire window (including CSD).
    Then we add the width of the window's border (just to be safe) and pass
    those values to gtk_window_resize().
    
        
file modified
+6 -2