meld

Running meld under WSL2 from the command line, I get a constant stream of errors, though it 'appears' to be working


I am running WLS2 on Windows 11. Everything is up to date.

~$ uname -a Linux NJ-LPT-06 5.15.90.1-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

When I start meld from the command line, it appears to be running fine, but the console bursts a bunch of errors, and then it starts sporadically bursting errors, all the same, over and over.

AttributeError: 'NoneType' object has no attribute 'get_allocation'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 201, in do_size_allocate
    self._handle1.set_visible(mapped and wlink1 > 0)
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 288, in set_visible
    self._window.show()
AttributeError: 'NoneType' object has no attribute 'show'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 232, in do_draw
    self._handle1.draw(context)
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 305, in draw
    alloc = self._widget.get_allocation()
AttributeError: 'NoneType' object has no attribute 'get_allocation'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 53, in do_unmap
    self._handle1.set_visible(False)
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 290, in set_visible
    self._window.hide()
AttributeError: 'NoneType' object has no attribute 'hide'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 53, in do_unmap
    self._handle1.set_visible(False)
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 290, in set_visible
    self._window.hide()
AttributeError: 'NoneType' object has no attribute 'hide'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 38, in do_unrealize
    self._handle1.unrealize()
  File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 284, in unrealize
    self._widget.unregister_window(self._window)
AttributeError: 'NoneType' object has no attribute 'unregister_window'

It appears to be working, but the constant barrage of errors is concerning.

If I leave it running long enough, particularly if I am reloading updated files, it aborts.

I have my DISPLAY set to ":0"


Solution

  • as per this thread:

    you can edit the file:

    /usr/lib/python3/dist-packages/meld/diffgrid.py

    In HandleWindow.realize(), comment out the lines:

    attr.cursor = Gdk.Cursor.new_for_display(widget.get_display(),
                                             Gdk.CursorType.
                                             SB_H_DOUBLE_ARROW)
    

    and replace with:

    attr.cursor = Gdk.Cursor.new_from_name(widget.get_display(),
                                           "ew-resize")