diff options
author | Cheryl Sabella <cheryl.sabella@gmail.com> | 2018-06-08 05:21:15 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2018-06-08 05:21:15 (GMT) |
commit | 041272b657867f5bec925b19aabf23944125d49b (patch) | |
tree | 37076943947e50fa8d30193e208b94d12a2cfa59 /Lib/idlelib/codecontext.py | |
parent | 4aa3006619392438b0775a2f488bbe9e7a22c468 (diff) | |
download | cpython-041272b657867f5bec925b19aabf23944125d49b.zip cpython-041272b657867f5bec925b19aabf23944125d49b.tar.gz cpython-041272b657867f5bec925b19aabf23944125d49b.tar.bz2 |
bpo-33768: IDLE: Clicking on code context line moves it to top of editor (GH-7411)
Diffstat (limited to 'Lib/idlelib/codecontext.py')
-rw-r--r-- | Lib/idlelib/codecontext.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/idlelib/codecontext.py b/Lib/idlelib/codecontext.py index 73d3ba6..8b378bc 100644 --- a/Lib/idlelib/codecontext.py +++ b/Lib/idlelib/codecontext.py @@ -117,6 +117,7 @@ class CodeContext: height=1, width=1, # Don't request more than we get. padx=padx, border=border, relief=SUNKEN, state='disabled') + self.context.bind('<ButtonRelease-1>', self.jumptoline) # Pack the context widget before and above the text_frame widget, # thus ensuring that it will appear directly above text_frame. self.context.pack(side=TOP, fill=X, expand=False, @@ -196,6 +197,20 @@ class CodeContext: self.context.insert('end', '\n'.join(context_strings[showfirst:])) self.context['state'] = 'disabled' + def jumptoline(self, event=None): + "Show clicked context line at top of editor." + lines = len(self.info) + if lines == 1: # No context lines are showing. + newtop = 1 + else: + # Line number clicked. + contextline = int(float(self.context.index('insert'))) + # Lines not displayed due to maxlines. + offset = max(1, lines - self.context_depth) - 1 + newtop = self.info[offset + contextline][0] + self.text.yview(f'{newtop}.0') + self.update_code_context() + def timer_event(self): "Event on editor text widget triggered every UPDATEINTERVAL ms." if self.context: |