poedit
poedit copied to clipboard
GUI becomes unresponsive when validating a specific .po-file
When validating the strings of this .po-file in Poedit 2.0.5 I end up in a situation where the GUI becomes entirely unresponsive. I tested the same file in Poedit 2.0.4 and the issue does not appear there.
By running git bisect and compiling Poedit (with debug enabled) I learned that it is commit da949dcf64b810176df4ff15c850357fb7f69cc2 that introduces the issue for me (the commit prior, 7cd6eac8943b4452a0304c976d82a4a4091d1cec does not exhibit the problem).
To reproduce:
- Run: poedit gimp-master-po-sv-23093.merged.po Then I see:
- Click on the Validate toolbar button. For a split second I see:
- Next I wait for the dialog box to pop up (note that the list of strings has changed back to those from step 1):
- if I drag another window over Poedit's window it fails to redraw the contents:
- If I drag another window over both Poedit's window and its dialog box, it fails to redraw the contents, but successfully redraws the dialogbox:
- Next I click on OK in the dialog box and the window contents fails to redraw and the GUI is entirely unresponsive:
I attempted to debug this further, this is what I found (hopefully it helps you nail it down quicker):
When trying to minimize the .po-file, it sometimes worked, and sometimes did not. I noticed that when it didn't work step 2 occurred, but when it worked step 2 never ocurred. I think it might be a timing issue on a sufficiently big .po-file that has both untranslated messages and warnings.
Just as a test I removed the the call to Sort() in PoeditFrame::OnValidate. When I did that of course the lines were not sorted, but crucially the issue did not appear. I noticed that Sort()
ends up as a call to PoeditListCtrl::Sort()
which creates a SelectionPreserver
. As my next test I reinstated the call to Sort()
in PoeditFrame::OnValidate()
but removed the call to list->SetCurrentItem(item)
from ~SelectionPreserve
. When I did this the issue also stopped to appear. Despite discovering this I don't understand where the issue comes from.
I'm happy to help with further testing if you have trouble reproducing this issue.
Ďakujem vám, že ste rozvíjali Poedit! :)
Thanks for the detailed investigation! Can you please provide missing basics such as your platform and its version (GTK+ 2.x.y or 3.x.y, wxGTK version; distro)?
Ďakujem vám, že ste rozvíjali Poedit! :)
You're mistaken in your assumption...
Thanks for the detailed investigation!
As a developer myself I appreciate detailed and clear bug reports. I try to provide other developers with the same.
Can you please provide missing basics such as your platform and its version (GTK+ 2.x.y or 3.x.y, wxGTK version; distro)?
Ah, yes, I should have realized this myself (though it would have been good if Poedit's issue guidelines here on github reminded me about this, I assume you have to ask about this pretty frequently).
I'm using Debian/testing which means that I used Poedit 2.0.5-1 from Debian and my locally compiled Poedit is on commit 4dc421578f2bb24c24d2db5a896070f9c534dd8b. Both are using GTK+ 2.24.31-2 and wxGTK 3.0.3.1+dfsg2-0v5.
You're mistaken in your assumption...
Agh, I mixed up the languages for a bit. What I should have written was of course: Děkuji za rozvíjení společnosti Poedit! :)
I can't reproduce with wx 3.0.3 and GTK+ 2.24.31 on Fedora :(
I can't reproduce with wx 3.0.3 and GTK+ 2.24.31 on Fedora :(
...and because I can't reproduce it with more modern versions of wx and GTK+ either, I think it's safe to close this now.