After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 737646 - Transfer drop-down menu not visible
Transfer drop-down menu not visible
Status: RESOLVED FIXED
Product: GnuCash
Classification: Other
Component: User Interface General
2.6.4
Other Windows
: Normal major
: ---
Assigned To: gnucash-ui-maint
gnucash-ui-maint
: 737730 737763 737816 737938 738795 739071 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-09-30 07:12 UTC by David Jenkinson
Modified: 2018-06-29 23:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
A capture of the app with the drop down arrow highlighted (40.78 KB, image/png)
2014-09-30 07:12 UTC, David Jenkinson
Details
Trace file generated by gnucash showing the bug. (2.27 KB, text/x-log)
2014-09-30 08:59 UTC, Geert Janssens
Details

Description David Jenkinson 2014-09-30 07:12:36 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.
Comment 1 Geert Janssens 2014-09-30 07:37:51 UTC
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.
Comment 2 Geert Janssens 2014-09-30 08:59:23 UTC
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
Comment 3 Geert Janssens 2014-09-30 15:01:10 UTC
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.
Comment 4 Geert Janssens 2014-10-01 10:51:37 UTC
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 ) ?
Comment 5 Geert Janssens 2014-10-01 15:23:12 UTC
*** Bug 737730 has been marked as a duplicate of this bug. ***
Comment 6 Geert Janssens 2014-10-02 08:10:19 UTC
*** Bug 737763 has been marked as a duplicate of this bug. ***
Comment 7 John Ralls 2014-10-05 15:13:08 UTC
*** Bug 737816 has been marked as a duplicate of this bug. ***
Comment 8 David Carlson 2014-10-06 13:08:27 UTC
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?
Comment 9 eiasu 2014-10-06 14:48:09 UTC
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.
Comment 10 Geert Janssens 2014-10-06 14:59:20 UTC
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.
Comment 11 Geert Janssens 2014-10-08 12:44:01 UTC
Unfortunately the new gtk libraries seem to have their own issues so we're not there yet...
Comment 12 Geert Janssens 2014-10-12 10:17:38 UTC
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.
Comment 13 Geert Janssens 2014-10-12 10:18:21 UTC
*** Bug 737938 has been marked as a duplicate of this bug. ***
Comment 14 John Ralls 2014-10-18 23:03:53 UTC
*** Bug 738795 has been marked as a duplicate of this bug. ***
Comment 15 Geert Janssens 2014-10-23 17:37:04 UTC
*** Bug 739071 has been marked as a duplicate of this bug. ***
Comment 16 Geert Janssens 2014-10-27 11:39:08 UTC
*** Bug 739236 has been marked as a duplicate of this bug. ***
Comment 17 Geert Janssens 2014-11-02 14:58:34 UTC
*** Bug 739521 has been marked as a duplicate of this bug. ***
Comment 18 Geert Janssens 2014-11-16 11:15:54 UTC
*** Bug 740183 has been marked as a duplicate of this bug. ***
Comment 19 Geert Janssens 2014-11-20 17:59:08 UTC
*** Bug 740448 has been marked as a duplicate of this bug. ***
Comment 20 Geert Janssens 2014-11-21 09:49:51 UTC
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...
Comment 21 John Ralls 2018-06-29 23:34:20 UTC
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.