mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-26 02:00:33 +00:00
preview: fix minimal size
We need some minial size, otherwise we can enlarge, but not shrink the window.
This commit is contained in:
parent
449342ba30
commit
a432c367e7
2 changed files with 15 additions and 11 deletions
|
@ -147,6 +147,7 @@ public class MediaInfo.Info : Box
|
|||
// add widgets
|
||||
preview = new Preview ();
|
||||
preview.draw.connect (on_preview_draw);
|
||||
preview.size_allocate.connect (on_preview_size_allocate);
|
||||
pack_start (preview, false, false, 0);
|
||||
|
||||
info_area = new ScrolledWindow (null, null);
|
||||
|
@ -718,9 +719,9 @@ public class MediaInfo.Info : Box
|
|||
|
||||
// signal handlers
|
||||
|
||||
/*
|
||||
private void on_size_allocate (Widget widget, Gtk.Allocation box)
|
||||
private void on_preview_size_allocate (Widget widget, Gtk.Allocation box)
|
||||
{
|
||||
/*
|
||||
Gtk.Allocation alloc;
|
||||
get_allocation (out alloc);
|
||||
debug ("size_allocate: %d x %d", alloc.width, alloc.height);
|
||||
|
@ -728,13 +729,12 @@ public class MediaInfo.Info : Box
|
|||
Gtk.Requisition requisition;
|
||||
info_area.get_child ().get_preferred_size (null, out requisition);
|
||||
debug ("info_area: %d x %d", requisition.width, requisition.height);
|
||||
int frame_height = (int)(box.width / video_ratio);
|
||||
debug ("video_area: %d x %d", box.width, frame_height);
|
||||
debug ("video_area: %d x %d", box.width, box.height);
|
||||
|
||||
int max_h = alloc.height - frame_height;
|
||||
int max_h = alloc.height - box.height;
|
||||
info_area.set_min_content_height (int.min (requisition.height, max_h));
|
||||
*/
|
||||
}
|
||||
*/
|
||||
|
||||
private bool on_preview_draw (Widget widget, Cairo.Context cr)
|
||||
{
|
||||
|
|
|
@ -67,7 +67,8 @@ public class MediaInfo.Preview : DrawingArea {
|
|||
|
||||
public override void get_preferred_width (out int minimal_width, out int natural_width) {
|
||||
if (ratio != 0.0) {
|
||||
minimal_width = natural_width = (int)(alloc_height * ratio);
|
||||
minimal_width = 16;
|
||||
natural_width = (int)(alloc_height * ratio);
|
||||
} else {
|
||||
minimal_width = natural_width = 0;
|
||||
}
|
||||
|
@ -76,7 +77,8 @@ public class MediaInfo.Preview : DrawingArea {
|
|||
|
||||
public override void get_preferred_height (out int minimal_height, out int natural_height) {
|
||||
if (ratio != 0.0) {
|
||||
minimal_height = natural_height = (int)(alloc_width / ratio);
|
||||
minimal_height = 12;
|
||||
natural_height = (int)(alloc_width / ratio);
|
||||
} else {
|
||||
minimal_height = natural_height = 0;
|
||||
}
|
||||
|
@ -85,7 +87,8 @@ public class MediaInfo.Preview : DrawingArea {
|
|||
|
||||
public override void get_preferred_width_for_height (int height, out int minimal_width, out int natural_width) {
|
||||
if (ratio != 0.0) {
|
||||
minimal_width = natural_width = (int)(height * ratio);
|
||||
minimal_width = 16;
|
||||
natural_width = (int)(height * ratio);
|
||||
} else {
|
||||
minimal_width = natural_width = 0;
|
||||
}
|
||||
|
@ -94,7 +97,8 @@ public class MediaInfo.Preview : DrawingArea {
|
|||
|
||||
public override void get_preferred_height_for_width (int width, out int minimal_height, out int natural_height) {
|
||||
if (ratio != 0.0) {
|
||||
minimal_height = natural_height = (int)(width / ratio);
|
||||
minimal_height = 12;
|
||||
natural_height = (int)(width / ratio);
|
||||
} else {
|
||||
minimal_height = natural_height = 0;
|
||||
}
|
||||
|
@ -106,7 +110,7 @@ public class MediaInfo.Preview : DrawingArea {
|
|||
|
||||
alloc_width = alloc.width;
|
||||
alloc_height = alloc.height;
|
||||
debug ("alloc w,h: %d,%d", alloc_width, alloc_height);
|
||||
debug ("alloc w,h: %d,%d", alloc_width, alloc_height);
|
||||
}
|
||||
|
||||
public override bool draw (Cairo.Context cr) {
|
||||
|
|
Loading…
Reference in a new issue