Как сделать, чтобы квадрат в окне, при ресайзе оставался квадратом, а окно ресайзилось строго по контуру дочернего квадрата? Т.е. также как ресайзится mpv c фильмом.
Нужно так: https://s9.postimg.org/iziggotdb/2017-07-19_09-27-47.png Также ресайзится (например) mpv c фильмом.
Если применить Gdk.WindowHints.ASPECT к окну, то все равно пояляются поля вокруг квадрата, т.к. aspect считается от размеров всего окна, вместе с заголовком, а не от области размещения дочернего виджета: https://s10.postimg.org/ki5me2gsp/2017-07-19_09-26-14.png
Вот код примера:
using Gtk;
int main (string[] args) {
Gtk.init (ref args);
var window = new Window ();
window.set_default_size (300, 300);
window.destroy.connect (Gtk.main_quit);
var geometry = new Gdk.Geometry();
geometry.min_aspect = 1.0;
geometry.max_aspect = 1.0;
window.set_geometry_hints (window, geometry, Gdk.WindowHints.ASPECT);
var aframe = new AspectFrame (null, 0.5f, 0.5f, 1.0f, false);
var button = new Button.with_label ("Button 1:1");
window.add (aframe);
aframe.add (button);
window.show_all ();
Gtk.main ();
return 0;
}