Skip to content

multi-window ui: fix closing after async file save

At least with gtk 3.24 meld (both master and 3.20 branch) has a following problem: if last tab with modified file in non-last window is closed and saving file is approved - the window becomes clear gray.

Simplest steps to reproduce in meld checkout:

  • bin/meld &; sleep 5; bin/meld bin/meld
  • edit some comments, press close
  • Approve saving
  • Result: empty gray window is shown

The commit history doesn't reveal any notice why MeldWindow destroys widget by emit-with-name instead of method-call. It maybe coincidence. Changing this to method call resolves issue. All other destroys in meld code including self-destroys are done via method call and I'm not sure that emit('destroy') is a way "supported" by gtk.

For non CSD-aware linux WM it looks like an empty gray window (that can be closed by server-side decorations close button), for CSD-pseudo-aware win32 platform it looks like a gray window without any close buttons at all. So the problem is rare, but annoying.

I didn't test it on CSD-aware linux, but it doesn't seem to be dependent.

Merge request reports

Loading