Skip to content

Commit 0710c77

Browse files
Use BufferMapping for the focus_stack.
1 parent f1b68e7 commit 0710c77

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

ptpython/history_browser.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from prompt_toolkit.application import Application
1010
from prompt_toolkit.buffer import Buffer, AcceptAction
11+
from prompt_toolkit.buffer_mapping import BufferMapping
1112
from prompt_toolkit.document import Document
1213
from prompt_toolkit.enums import DEFAULT_BUFFER
1314
from prompt_toolkit.filters import Always, Condition, HasFocus, InFocusStack
@@ -19,11 +20,11 @@
1920
from prompt_toolkit.layout.lexers import PygmentsLexer
2021
from prompt_toolkit.layout.margins import Margin, ScrollbarMargin
2122
from prompt_toolkit.layout.processors import HighlightSearchProcessor, HighlightSelectionProcessor
23+
from prompt_toolkit.layout.processors import Processor, Transformation
2224
from prompt_toolkit.layout.screen import Char
2325
from prompt_toolkit.layout.toolbars import ArgToolbar, SearchToolbar
24-
from prompt_toolkit.layout.processors import Processor, Transformation
25-
from prompt_toolkit.layout.utils import explode_tokens
2626
from prompt_toolkit.layout.toolbars import TokenListToolbar
27+
from prompt_toolkit.layout.utils import explode_tokens
2728
from prompt_toolkit.utils import Callback
2829
from pygments.lexers import RstLexer
2930
from pygments.token import Token
@@ -525,7 +526,7 @@ def default_buffer_pos_changed():
525526
""" When the cursor changes in the default buffer. Synchronize with
526527
history buffer. """
527528
# Only when this buffer has the focus.
528-
if application.focus_stack.current == DEFAULT_BUFFER:
529+
if buffer_mapping.focus_stack[-1] == DEFAULT_BUFFER:
529530
try:
530531
line_no = default_buffer.document.cursor_position_row - \
531532
history_mapping.result_line_offset
@@ -543,7 +544,7 @@ def default_buffer_pos_changed():
543544
def history_buffer_pos_changed():
544545
""" When the cursor changes in the history buffer. Synchronize. """
545546
# Only when this buffer has the focus.
546-
if application.focus_stack.current == HISTORY_BUFFER:
547+
if buffer_mapping.focus_stack[-1] == HISTORY_BUFFER:
547548
line_no = history_buffer.document.cursor_position_row
548549

549550
if line_no in history_mapping.selected_lines:
@@ -571,15 +572,16 @@ def history_buffer_pos_changed():
571572
read_only=True
572573
)
573574

575+
buffer_mapping = BufferMapping({
576+
HISTORY_BUFFER: history_buffer,
577+
DEFAULT_BUFFER: default_buffer,
578+
HELP_BUFFER: help_buffer,
579+
}, initial=HISTORY_BUFFER)
580+
574581
application = Application(
575582
layout=create_layout(python_input, history_mapping),
576583
use_alternate_screen=True,
577-
buffers={
578-
HISTORY_BUFFER: history_buffer,
579-
DEFAULT_BUFFER: default_buffer,
580-
HELP_BUFFER: help_buffer,
581-
},
582-
initial_focussed_buffer=HISTORY_BUFFER,
584+
buffers=buffer_mapping,
583585
style=python_input._current_style,
584586
mouse_support=Condition(lambda cli: python_input.enable_mouse_support),
585587
key_bindings_registry=create_key_bindings(python_input, history_mapping)

0 commit comments

Comments
 (0)