classification
Title: Idle: Enhance font change notification system
Type: behavior Stage: test needed
Components: IDLE Versions: Python 3.7, Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: markroseman, terry.reedy
Priority: normal Keywords:

Created on 2014-03-13 20:04 by terry.reedy, last changed 2017-07-10 19:58 by terry.reedy.

Messages (4)
msg213453 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-03-13 20:04
If one changes the font in the Idle Preferences dialog, all open windows are somehow notified and they immediately respond. Classes defined in extensions do not get notified. So CodeContext sets up a polling loop. Roger Serwy's line number extension (posted to #17535) copied the polling hack.  It would be better to enhance the the notification mechanism to either generate an event that could be caught or setup a callback registry.
msg213456 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-03-13 20:10
Changing CodeContext.py to drop the font polling and use the new mechanism is part of this issue. Such a change would effectively be part of its test.
msg250542 - (view) Author: Mark Roseman (markroseman) * Date: 2015-09-12 23:08
The new 'component' infrastructure provides the mechanism for passing these kinds of notifications around. Allowing extensions (in whatever form they'll exist with the new stuff) to take part in this notification mechanism would be  a small (and sensible) addition to that.
msg298079 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2017-07-10 19:58
I believe I saw somewhere that the 'somehow' in the opening post is looping through the windows listed under the Window tab.

This issue was inspired by #17642, which allows hotkeys (^-, ^+) and wheel to change font size in editor window.  If the size change only applies to the current window, then only the CodeContext for that window should be notified.  If CodeContext becomes a feature rather than extension, #27099, then code editor windows could know they have a code context and notify it when they get notified.  That will not help external extensions.
History
Date User Action Args
2017-07-10 19:58:18terry.reedysetmessages: + msg298079
2017-06-19 20:49:29terry.reedysetassignee: terry.reedy
stage: test needed
components: + IDLE
versions: + Python 3.6, Python 3.7, - Python 2.7, Python 3.3, Python 3.4
2015-09-12 23:08:59markrosemansetnosy: + markroseman
messages: + msg250542
2014-03-13 20:10:47terry.reedysetmessages: + msg213456
2014-03-13 20:04:57terry.reedycreate