-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
show dialog windows in predictable places - at mouse cursor or center #5124
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor editing. Looks good otherwise, not tested yet.
Yes, this is really needed now. When you ask to quit (Ctrl+Q) there is no visual indication that the shutdown is going on. We may want indeed to have a message or maybe a very dull CSS version to indicate the shutdown ? @Nilvus : what you think on this? |
The added class is |
Why not but is good for me without dialog close window. For the text, that could be something like "See you soon with new photos. Bye" for example. Or "Hungry for photos. Waiting for new ones. Bye." |
There is no closing dialog at the moment. My idea was to wash out the dt GUI while closing by using the new class added in this PR. Just to show that the GUI is going to be closed. |
Honestly I have no idea how to best show closing state without being... hmmm... Anyway - I thought if it's possible via css to mute colours of interface as for it to look "disabled"... And if there's a way - blur whole interface? However muted interface would be IMO quite enough... Otherwise, having message would mean... hmmm... having hidden custom view such as |
@johnny-bit: the best way for me would be: nothing (as it is actually). |
I've been wondering about this PR and further steps or whether to close it off completely. as @parafin said in #5110 minimizing window on close isn't the best way to handle closing state of application, that's why this PR does away with minimizing window. Having window open on close allows for popping up dialog windows on top of main window that look VERY good. However if we don't have dialog open, having window open for period of closing and cleaning up is a bit... weird. Most aplications I use that have long closing time do either nothing (simply all input/clicking on stuff is ignored) or do the fancy. Fancy things possible:
Or simply drop it and "#5116 is good enough"? |
Bad idea for me. And which colors? And for what? Just few seconds...
For me just the best way. And for 2 simple reasons:
|
OK, so just to be in the clear here. 2 options, nothing fancy:
|
Not sure to understand that part but if that PR improve your first merged PR about places of dialog windows, why close it? For me, the only thing is that there's no need to add something when closing darktable (as about all apps, it's good as it is) but taking care of dialog windows places is a good thing. And if it's about maintenance dialog windows, if displayed when opening/closing, just (when needed) be sure that no click on the UI is possible this time. |
Hey @TurboGit - If you don't mind, this PR can be merged as-is (or closed). Currently it works in very nice way (imo):
I tried playing a bit with possibilities and upon quit action there's not much possible to do, I couldn't even get switching to my custom empty view happen on quit. With added class it should possible to mute colors, I tried playing with css and either I don't know much or there's something funny going on and having rule .dt_gui_quit * {
color: @disabled_fg_color;
} doesn't work... Also gtk inspector worked weird for me since I haven't seen class change on quit despite it working. maybe on quit disables changes to windows? dunno. So ultimatelly either merge or close, nothing to add here ;) |
@johnny-bit: with CSS you can change colors but not really "mute" them. Or to be more precise, changing color to disabled color would only set all colors to disabled default color but a user could always click on it. Anyway, I do not really worry about user try to click, it's just a possibility. As I said, I find how darktable close by now good. |
On any OS, minimizing is not a good way. |
Oh my... I tried and So - one more question: let window 'linger' for a bit, so some dialogs could be shown or hide immediately? I'd rather let it linger for a bit. |
I think there should be some way to tell when darktable finished exiting (meaning all data has been committed to disk and also that darktable can be restarted at that point). Not hiding a window is IMHO the easiest way to achieve this. |
@parafin - On mac this is usually visualized by the icon disappearing from the dock (or the dot beneath the app icon disappears if the app is pinned to the dock). It is standard behaviour that a mac app can still be running while not having any windows open and this is shown by keeping it on the dock. When closing a window I would like to clear up that screen real estate as soon as possible so that I can continue working. The expected behaviour of clicking a window close button is for the window to disappear, and going against that expectation just makes it very disruptive for the user. If you feel some visual cue is needed for when committing data to disk upon quitting, a smaller, unobtrusive window with a progress / loading indication or animation might be a good compromise. |
On Mac yeah, and I think it's the same with GNOME, but other systems might not have such indication. |
OK, I think I struct here some middle ground and it's probably least intrusive:
This allows for best of all worlds - main window lingers for a bit, but title cleary indicates that it's closing and then it's closed nicelly :) What do you all think? |
Experience on OSX for commit d5083ab:
Is there some way I can help in creating a small (dialog) window showing the closing message instead while hiding the main window? (I'm new to the darktable code.) |
Damn OSX and it's showstopper features ;( I'll try to cope up with yet another way... |
I'll reschedule this for 3.4. |
This pull request did not get any activity in the past 30 days and will be closed in 365 days if no update occurs. Please verify it has no conflicts with the master branch and rebase if needed. Mention it now if you need help or give permission to other people to finish your work. |
we want to show dialog windows in very predictable manner, so in case of multi-screen action or multi-window action, dialogs blocking input won't cause harm to users. with this change dialogs are shown at mouse cursor if dt gui isn't yet initialised (or is already closed) or at dt window center on top additionally based on @parafin suggestion - the main window isn't minimalised on closing. I invite anybody to come up with nice closing message though...
also - hide main window after most user input
There's no good way to have nice closing experience on macosx & have window up for long AND not introduce splashscreen (IMO). I opened up FR #5782 for it. In limited scope of this PR, the current functionality is as good as I can get it to be. nothing more to add/remove IMO, so I'm open to further comments :) and/or merging it :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't test on a multi-screen setup, but it doesn't break anything on a single one and the code looks nice.
we want to show dialog windows in very predictable manner, so in case of multi-screen action or multi-window action, dialogs blocking input won't cause harm to users.
with this change dialogs are shown at mouse cursor if dt gui isn't yet initialised (or is already closed) or at dt window center on top
additionally based on @parafin suggestion - the main window isn't minimalised on closing. I invite anybody to come up with nice closing message though...
This improves solution from #5116 and should be generally better fir for #5110