Compiling gnucash-3.5 fails when using Gtk+3-3.20.10. I suspect older gnucash-3.x will also fail, and that it occurs with any Gtk+3-3.20.x. Error message is: gnucash/gnome-utils/gnc-cell-renderer-popup.c: In function 'gcrp_grab_on_window': gnucash/gnome-utils/gnc-cell-renderer-popup.c:243:27: error: 'device' undeclared (first use in this function) if ((gdk_device_grab (device, window, GDK_OWNERSHIP_WINDOW, TRUE, Reason for the failure: Top of function declares "seat" for GTK >= 3.20.0, else "device" and "Device_manager". Within the function, "seat" is used for GTK >= 3.22.0 else "device" is used for lower. When building with 3.20.x or 3.21.x, "seat" is declared, but "device" is used and undeclared. Possible fix: Changing 3 cases of #if GTK_CHECK_VERSION(3,22,0) to #if GTK_CHECK_VERSION(3,20,0) in the above function seems to fix it.
Good catch, your analysis is correct. Fixed in git.