-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
gh-112898: Fix double close dialog with warning about unsafed files #113513
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
Open
ronaldoussoren
wants to merge
18
commits into
python:main
Choose a base branch
from
ronaldoussoren:gh-112898-double-dialog
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
a0bb7ab
gh-112898: Fix double close dialog with warning about unsafed files
ronaldoussoren eda5750
Actually work with various quit events (menu, shortcut, osascript)
ronaldoussoren 3686a65
Remove comment that is no longer needed
ronaldoussoren b305b36
Restore working code path
ronaldoussoren a84a2d7
Crude hack to make sure the quit command is called
ronaldoussoren 0ce7d86
Remove unnecesary key setup
ronaldoussoren ce08ba0
Remove unnecessary import
ronaldoussoren 92c1206
typo
ronaldoussoren 4cefbea
Getting lost ...
ronaldoussoren bbdee67
Restructure code to avoid creating a temporary ``tkinter.Tk``
ronaldoussoren ab7800a
Document why the close-all-windows keybinding is removed on macOS
ronaldoussoren 63087e3
Fix test failure and lint warning
ronaldoussoren 4c7ad17
Merge branch 'main' into gh-112898-double-dialog
ronaldoussoren 4794ee7
The changes to macosx.py broke some of the tests
ronaldoussoren 8d9a7f0
Fix copy&paste error
ronaldoussoren 7ccc8fa
Merge branch 'main' into gh-112898-double-dialog
terryjreedy bf6f348
review comments
ronaldoussoren 60ccabb
Merge branch 'gh-112898-double-dialog' of github.com:ronaldoussoren/c…
ronaldoussoren File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
And what happens when remove this line at all?
Please try different ways to quit the application: not only via menu or closing the main window, but via the dock or when try to shutdown the computer. Try with several modified not saved files, are any changes lost when you cancel save for one of them?
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.
On macOS there is no "main" window in IDLE, the shell en editor windows are treated equaly and IDLE will quit when you close all of them. Thus the ways to quit IDLE:
The last one should result in a quit event, and is something I haven't tested yet (too many open windows...), lets first get the normal behaviour correct, especially since retesting shows that the PR doesn't do what I say...
The behaviour with multiple unsaved windows is not yet good enough:
all is fine, I get warnings for all unsaved files and choosing Cancel in one of them aborts quoting the app, that is IDLE keeps running and no more windows are closed.I'm convinced that the menu did work earlier, but now it doesn't, the menu selection is completely ignored.We also don't quite match system behaviour, although that's hard to be sure about these days due to auto-saving in most system apps. I did compare with two other apps:
It would be nice to try to close windows with unsaved state before closing the rest, but that's not essential. Same for Word's summary dialog before trying to close any window.
I now have something that works for me, but is not quite ready.
The cleaned up patch (on top of this PR):
The change to
macosx.py
reverts this PR, and the other change removes the default key binding for<<close-all-windows>>``. That change doesn't work for me though, the code as written results in getting no pop-ups for unsaved windows at all. The alternative change to
config.py` does work, but would break other platforms.I'll return to this in the morning, I'm must be overlooking something that explains why the clean patch for
config.py
doesn't have the expected behaviour.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 couldn't let this go just yet...
For reasons I don't understand the call to
macosx.isAquaTk
breaks things, if I replace that by a check forsys.platform == "darwin"
the code works as expected. That does break using the X11 bindings for Tk on macOS though, although I expected the number of users for that is negligible.