brummer10 / GxPlugins.lv2

A set of extra lv2 plugins from the guitarix project.
GNU General Public License v3.0
168 stars 17 forks source link

Setting initial size of the GUI window can fail #42

Open torte71 opened 1 year ago

torte71 commented 1 year ago

Setting the plugin-hosts windows size (via the LV2 handle, resize->ui_resize()) doesn't work immediately, it can be delayed even after the call to resize_event(). In that case, resize_event() fetches the wrong/old size from parentWindow, resizes its own window and cairo-surface to that - and finally the resize->ui_resize() resizes the parentWindow, resulting in a wrongly sized and clipped view. I don't know a way to reliably tell, when resize->ui_resize() has completed. If resize_event() gets moved into the first expose event, that may increase the chances of the former resize operation to finish. But it's still not ideal.

For completeness: There was a resizing workaround for gtk, that I've removed: https://github.com/brummer10/GxBaJaTubeDriver.lv2/commit/4792d55ab3113565e654761e302e8be1d3e39b28 It seems unrelated to the problem above and I couldn't see that removing it caused new problems in Ardour or Reaper.

brummer10 commented 1 year ago

With recent suil we didn't need the call to resize->ui_resize() in instantiate any more, we could remove it to avoid this issue. The host is supposed to fetch the initial size from the XWindowAttributes anyway. True, I don't know how that is handled on the mswin side.

torte71 commented 1 year ago

Removing resize->ui_resize() looked OK in Ardour, but not in Reaper (both on Linux), and on MSWin it didn't work in Reaper and Carla. Anyway, I think this issue is happening quite rarely (for me: only directly after a X11 restart, then 1 out 10 starts showed it), so I wouldn't rate it a showstopper and maybe it's better to leave it as it is for now, than to use a workaround which may introduce new surprises.

brummer10 commented 1 year ago

So we should prepare a new release, bump version number to 1.0 and implement the windows prebuild binary download link in the README. As a side note, @alex-tee from zrythm ask if he could include the GxPlugins into his project for ship/sell. I said I've nothing against that, but would ask you for you opinion before proceed, as it looks his interest comes mainly from the availability of mswin plugs.

torte71 commented 1 year ago

OK, I've updated README.md, now starts family-time :) And I am fine if zrythm (or anyone else) bundles them comercially.

torte71 commented 1 year ago

The prerelease is done, last thing left to do is editing the release note, adding the tag v1.0 there and to remove the pre-release checkbox. README.md contains links to the v1.0 release, they will start working, once the pre-release marker is removed. I've also added an autogenerated full-source archive, so it is not required to add it manually in the release-note step any longer. In debian/changelog, I've added my name - copying your signature felt weird to me - but feel free to change it. (The final version of the release-note can be seen on my playground: https://github.com/torte71/GxPlugins.lv2/releases)

brummer10 commented 1 year ago

Okay, nice. So I've pushed the release here as well and send announcement mails to LAU LAD and LAA.