GNOME Bugzilla – Bug 737646
Transfer drop-down menu not visible
Last modified: 2018-06-29 23:34:20 UTC
Created attachment 287424 [details] A capture of the app with the drop down arrow highlighted Drop down menu in "transfer" field, when entering a new transaction, is not visible on fresh install of 2.6.4. It displays a barely visible outline of where the drop down is supposed to be. Went back and installed 2.4.15 and it works fine.
Confirmed. For the record 2.6.3 works fine as well. I have added the missing version in the version list and updated this bug accordingly. It appears to be Windows only. OS X and Fedora work correctly. Directly entering the account via keyboard still works, including auto fill. So directly typing could serve as a workaround. Most people will be better of reverting to an earlier version though while this is being investigated.
Created attachment 287430 [details] Trace file generated by gnucash showing the bug. Some additional info: 1. I have gone through the nightly builds available for the 2.6 branch between 2.6.3 and 2.6.4. The build on April 8 [1] still works ok. Then there is a big hiatus in the available nightly builds. The next build is on June 5 [2] and this one has the bug. I am currently git bisecting the commits in between. But this can take several hours/days on Windows... 2. The trace file gives a hint at the issue: the scrolled windows is receiving an invalid size (see attachment). [1] http://code.gnucash.org/builds/win32/trunk/gnucash-2.6.3-2014-04-08-git-cc51bbe+-setup.exe [2] http://code.gnucash.org/builds/win32/maint/gnucash-2.6.3-2014-06-05-git-c9c498a+-setup.exe
More details. I first tried to verify if commit cc51bbe really works (to mark it as a known good in git bisect). It turns out if I rebuild it now with the current version head of gnucash-on-windows, it has the same bug. So the problem is not in the gnucash code, but somewere in gnucash-on-windows. Which sort of makes sense given that [2] in comment 2 is the first nightly build using the gnucash-on-windows repository to build gnucash. So I'll refocus my efforts on that repository instead.
I have a little more understanding of what is going on now though I'm not sure what causes it, nor what the best/proper solution is. The account pop-down in the register lines uses a gnc_scrolled_window widget to automatically provide scrollbars if needed. The gnc_scrolled_window widget is inherited from a standard gtk_scrolled_window widget and is imlemented in src/register/register-gnome/gnc_scrolled_window.[ch] As typical in the gtk world, the widget is instanced. The first time this happens the gnc_scrolled_window type is defined (using g_type_register_static) to give it a unique type id (in src/register/register-gnome/gnc_scrolled_window.c:45 and further) The call to g_type_register_static takes a GTypeInfo variable as parameter which among others specifies the amount of memory to reserve for an instance of this widget. It appears this should at least be as much as the widget's parent type (GtkScrolledWindow in this case). GLib checks on this. And here it goes wrong on Windows. For some reason GLib complains that GncScrolledWindow specifies a lower memory requirement for an instance than its parent GtkScrolledWindow does. This is odd because a GncScrolledWindow is defined as: typedef struct { GtkScrolledWindow scrollwin; } GncScrolledWindow; (in src/register/register-gnome/gnc_scrolled_window.h:38) and the size requirement passed to g_type_register_static is sizeof (GncScrolledWindow) (in src/register/register-gnome/gnc_scrolled_window.c:55) So one would expect GncScrolledWindow to take at least the same amount of memory as the GtkScrolledWindow with such a definition. Just as a test I have changed src/register/register-gnome/gnc_scrolled_window.c:55 from sizeof (GncScrolledWindow), to sizeof (GncScrolledWindow) * 2, So doubling the calculated size. With that the warning is gone and the register works as expected. Now the questions: - why does this only happen on Windows ? Could a compiler version mismatch cause this ? Between gnucash 2.6.3 and 2.6.4 we have upgraded our Windows build system from gcc 4.5.1 to 4.8.1. However we don't build gtk ourselves and I don't know how to find out which version it was built with. The config log in the dev package makes me think it is still gcc 3.x. - more importantly: how to fix this ? Is the hack of doubling the calculated size sufficient ? Or should we go for a more structural solution (like rebuilding gtk with gcc 4.8 ourselves ) ?
*** Bug 737730 has been marked as a duplicate of this bug. ***
*** Bug 737763 has been marked as a duplicate of this bug. ***
*** Bug 737816 has been marked as a duplicate of this bug. ***
Here is a dumb question intended to trigger further thought rather than to suggest a solution: Would there be a way to implement the simple hack and add an error message to contact the development team if the hack fails to work? Then treat the result similar to an alpha build for a while so that (perhaps) only users savvy enough to find and try the nightly builds will get it?
I have the same problem, can add two details. I run GNUCASH 2.6.4 on windows 7 ultimate service pack 1 and the same problem is in the column "action", actually when I click on the triangle to trigger the list to raise it appears only a shade of the border, without any value visible and it is not possible to select any item.
Thanks for the feedback. We have been working on a solution internally for this problem. That is, John Ralls has rebuilt the gtk libraries with the same gcc version that is used to build the rest of gnucash. With these libraries he is unable to reproduce the problem anymore.
Unfortunately the new gtk libraries seem to have their own issues so we're not there yet...
This issue has been fixed in gnucash for windows 2.6.4-1. Unfortunately that release had an even worse gui bug, so it was immediately replaced with gnucash for windows 2.6.4-2 which is now available for download from the usual locations. Thank you for your report.
*** Bug 737938 has been marked as a duplicate of this bug. ***
*** Bug 738795 has been marked as a duplicate of this bug. ***
*** Bug 739071 has been marked as a duplicate of this bug. ***
*** Bug 739236 has been marked as a duplicate of this bug. ***
*** Bug 739521 has been marked as a duplicate of this bug. ***
*** Bug 740183 has been marked as a duplicate of this bug. ***
*** Bug 740448 has been marked as a duplicate of this bug. ***
Bug 739236, bug 739541, bug 740183 and bug 740448 are not duplicates of this bug. I mixed up the bug numbers when dealing with them. Unfortunately there's no way to remove those comments...
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=737646. Please update any external references or bookmarks.