summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--src/module.c14
2 files changed, 15 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 60df0eb..2d84339 100644
--- a/NEWS
+++ b/NEWS
@@ -4,10 +4,11 @@ ganv (1.5.0) unstable;
* Fix unexpected node jumping when dragging new connections.
* Add support for PDF and PS export.
* Improve text rendering at high zoom.
+ * Fix size of vertical flow modules.
* Fix compilation with --no-fdgl (patch from Vlad Glagolev).
* Fix crash when destroying canvas.
- -- David Robillard <d@drobilla.net> Sun, 08 Feb 2015 08:32:08 -0500
+ -- David Robillard <d@drobilla.net> Sun, 08 Feb 2015 16:20:38 -0500
ganv (1.4.2) stable;
diff --git a/src/module.c b/src/module.c
index 8aa79f7..b4357a1 100644
--- a/src/module.c
+++ b/src/module.c
@@ -164,7 +164,19 @@ measure(GanvModule* module, Metrics* m)
m->input_width = ganv_module_get_empty_port_breadth(module);
m->output_width = ganv_module_get_empty_port_breadth(module);
- const double ports_width = PAD + ((m->input_width + PAD) * impl->ports->len);
+ // TODO: cache this or merge with resize_right
+ unsigned n_inputs = 0;
+ unsigned n_outputs = 0;
+ FOREACH_PORT(impl->ports, pi) {
+ if ((*pi)->impl->is_input) {
+ ++n_inputs;
+ } else {
+ ++n_outputs;
+ }
+ }
+
+ const double ports_width = PAD + ((m->input_width + PAD) *
+ MAX(n_inputs, n_outputs));
m->width = MAX(contents_width, ports_width);
m->width = MAX(m->width, impl->embed_width);