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 794853 - Convert some dialogs to auxiliary windows.
Convert some dialogs to auxiliary windows.
Status: RESOLVED OBSOLETE
Product: GnuCash
Classification: Other
Component: User Interface General
2.7.x
Other All
: Normal enhancement
: ---
Assigned To: gnucash-ui-maint
gnucash-ui-maint
: 794951 796049 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2018-03-31 04:25 UTC by Mike Alexander
Modified: 2018-06-30 00:06 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Mike Alexander 2018-03-31 04:25:57 UTC
Windows like the price editor, price data base, find dialog, etc. can't be put behind the main window they are spawned from.  This is a regression since version 2.6.x.  It is a problem especially on a small display where it is hard to get them out of the way enough to see the main window.
Comment 1 John Ralls 2018-03-31 05:30:24 UTC
They're not windows, they're GtkDialogs, and Gtk3 complains if they're not made "transient for" the parent window, which also keeps them above the parent in z-order.

There's also a silver lining: By making them transient-for they appear centered over the parent window instead of somewhere strange on large or multiple monitors.

I think that one could make a case for redesigning some dialogs to windows or plugin pages, but the argument would be pretty weak for the three that you mentioned explicitly. IMO the best argument is for the report options because it has the ability to "apply" changes without dismissing it, so one can interact with it while viewing the resulting changes on the report.
Comment 2 Mike Alexander 2018-03-31 06:01:20 UTC
I understand your points, but I'm not sure I entirely agree.  Your "silver lining" is not without problems, for example.  I think this also makes these windows revert to their default size which is a pain if I've resized them to fit the data.

I think a good case could be made for rewriting quite a few of these as windows.  It's useful to keep the price data base open since it takes several minutes to open it and one often wants to manipulate several prices (or at least look at them) while doing other things.  Having to open it, wait several minutes, then resize and scroll it to see what you care about is not a good alternative.

Also it's useful to keep the business related find windows like find invoice and find bill open since they contain lists of invoice or bills you can work on.  They also do live updates so the list changes as you change the bills and invoices.  If the find criteria is at all complicated it's time consuming to reopen the window.

The Reconcile window is a particularly good example, I think.  You want to keep it open until you're done reconciling the account (or give up) and go back and forth between the reconcile window and the register to fix things without aborting the reconcile and starting it up again.  But the reconcile window is stuck in front of the register so it has to be moved mostly off screen so you can fix something, then drag it back.

I agree that the Price Editor window is ok as a dialog.  There are probably others that are too, but I think many of these should be real windows.
Comment 3 Geert Janssens 2018-03-31 08:45:07 UTC
Yes, there is certainly room for improvement here. We'll need to evaluate this on a case by case basis.

I agree with most of your proposals.

I'm also thinking of the Bills Due reminder and SX since last run dialog. Those are special though because they can pop up at start up. The nice side effect of transient-for is they are guaranteed to be visible and above the main window. In the past they had the tendency to appear behind the main window. So if we want to fix those special care should be taken they still are guaranteed to pop up before the main window. The user may choose to move them behind the main window afterwards. I don't know if that's possible though, that is I don't know if gtk has something between fully transient-for or just create somewhere which can be behind another window.
Comment 4 John Ralls 2018-03-31 13:52:06 UTC
OK, but that's an enhancement request rather than a regression, so I've changed the title and category accordingly.

We should get consensus on what dialogs should be converted from a broader group than is likely to participate in a bug, so that discussion would be better on one of the mailing lists.

I don't think there's a partly-transient-for state. We can fake it by getting the coordinates of the parent and putting the window there. We could also do plugin-pages so the item appears as a tab; the user can switch it to a window if they want.
Comment 5 Mike Alexander 2018-04-01 03:05:07 UTC
I agree that this should be taken to a mailing list, which one? Devel?

I noticed today that the lots browser doesn't display this behavior.  That probably means that transient-for is not being set for it.
Comment 6 Adrien 2018-04-05 06:04:06 UTC
(In reply to Geert Janssens from comment #3)
> Yes, there is certainly room for improvement here. We'll need to evaluate
> this on a case by case basis.
> 
> I agree with most of your proposals.
> 
> I'm also thinking of the Bills Due reminder and SX since last run dialog.
> Those are special though because they can pop up at start up. The nice side
> effect of transient-for is they are guaranteed to be visible and above the
> main window. In the past they had the tendency to appear behind the main
> window. So if we want to fix those special care should be taken they still
> are guaranteed to pop up before the main window. The user may choose to move
> them behind the main window afterwards. I don't know if that's possible
> though, that is I don't know if gtk has something between fully
> transient-for or just create somewhere which can be behind another window.

I'd suggest a special tab that contains all (or summary with a link to all) of the content from Bills Due/Invoices Due/SX Since Last Run, opening as in focus. There have been requests for a 'dashboard' of sorts. If this included a summary balance sheet, and possibly a simple income/expense chart and/or a chart depicting the results on net-worth or income/expense of future SX, lots of people would be very happy. But I know that's beyond the initial request here. Just a thought if you're going to do some redesigning anyway.

Note, I second the find invoice/bill and reconcile dialogs to be changed to tabs/windows.
Comment 7 Robin Chattopadhyay 2018-04-20 03:17:57 UTC
+1 for the Reconcile window
+1 for the Report Options window
Comment 8 David Carlson 2018-04-20 03:28:14 UTC
I will assert that all dialogs that could be related to more than one register window or other primary window while open, or even where they cannot be easily completed efficiently without viewing a single underlying primary window would need to be moved out of the way from time to time.  The price editor may be related to more than one security account, the import wizards, SX editor and reconcile wizard can relate to multiple account windows or underlying in some cases too.  I am not by any means trying to name every case, just a couple that come to mind.  When users are restricted to 600 x 800 displays in some cases that can be important.
Comment 9 Geert Janssens 2018-04-28 16:52:53 UTC
*** Bug 794951 has been marked as a duplicate of this bug. ***
Comment 10 Wm 2018-04-29 11:42:40 UTC
I think now Geert has dup'd 794951 (and I think one of mine will be dup here as well once we figure it out) this is looking like a nomenclature issue in part.

My observation is that calling the beasties Dialogs rather than Windows might work on a bug list but is going to take a lot of user training.

Insert wry smile emoticon.
Comment 11 John Ralls 2018-04-29 15:42:50 UTC
(In reply to Wm from comment #10)
> I think now Geert has dup'd 794951 (and I think one of mine will be dup here
> as well once we figure it out) this is looking like a nomenclature issue in
> part.
> 
> My observation is that calling the beasties Dialogs rather than Windows
> might work on a bug list but is going to take a lot of user training.
> 
> Insert wry smile emoticon.

Wm, don't worry about it. Developers often speak in strange languages amongst themselves.
Comment 12 Daniel Harding 2018-05-06 17:51:33 UTC
Another +1 for making the Reconcile window a true window rather than a dialog.  My workflow under 2.6 was to have the Register window full screen, with the Reconcile window and statement PDF tiled side-by-side above it.  With the Reconcile window now a dialog, I am constantly having to move it out of the way and then move it back, which gets annoying fairly quickly.
Comment 13 Geert Janssens 2018-05-12 17:40:37 UTC
(In reply to Daniel Harding from comment #12)
> Another +1 for making the Reconcile window a true window rather than a
> dialog.  My workflow under 2.6 was to have the Register window full screen,
> with the Reconcile window and statement PDF tiled side-by-side above it. 
> With the Reconcile window now a dialog, I am constantly having to move it
> out of the way and then move it back, which gets annoying fairly quickly.

This particular one will be fixed in gnucash 3.2.
Comment 14 Geert Janssens 2018-05-12 17:43:42 UTC
*** Bug 796049 has been marked as a duplicate of this bug. ***
Comment 15 Geert Janssens 2018-05-12 17:46:03 UTC
Bug 796049 reports the following use case:
- open the preferences window
- then open the import map editor (the preferences window doesn't block menu actions on the main gnucash window)
- next try to do anything in the open preferences window

=> other than bringing the preference window to the front, no other interactions are possible. This leads to confusion and should be avoided. This is yet another variation of side effects caused by the transient window setting on dialogs.
Comment 16 Adrien 2018-05-17 06:48:02 UTC
Reading over the Gnome HIG, perhaps some of these should be changed to child-primary windows. This way they can be positioned independently of the parent window and there should be no stacking issues. (focused window should always be on top)

The only caveat is that even child-primary windows do not automatically depend on the parent for their continued existence. Care would need to be taken to close any child windows when exiting the application. (this might be available as an option depending on what is transitioned to this window type.)

Another consideration, would be to make some of these into Sidebars. (GtkStackSidebar) This might be particularly useful for the main application Preferences (though not really necessary) but certainly the Reconcile dialog, where you'd likely want to see both the reconcile info and the register being reconciled at the same time. I'd suggest a sidebar here instead of a child window because the reconcile functions are specific to that particular account register and not independent.

Alternatively for the reconcile situation, perhaps changing the register to a selection mode for this case, with balance and reconcile actions might better follow the Gnome HIG, but that of course will likely require a substantial re-write. Such a change might not also mesh with MacOS HIG. (and does Windows have such a thing or is it still 'anything goes'?)

Finally, another plug for the 'dashboard' recommendation from Comment 6 is that it seems multiple dialogs open at once is discouraged.

Just some thoughts.
Comment 17 John Ralls 2018-05-17 13:44:58 UTC
> and does Windows have such a thing or is it still 'anything goes'?

https://msdn.microsoft.com/en-us/library/windows/desktop/dn688964(v=vs.85).aspx
Comment 18 John Ralls 2018-06-30 00:06:21 UTC
GnuCash bug tracking has moved to a new Bugzilla host. The new URL for this bug is https://bugs.gnucash.org/show_bug.cgi?id=794853. Please continue processing the bug there and please update any external references or bookmarks.