mirror of
https://github.com/lowobservable/oec.git
synced 2026-03-02 18:04:21 +00:00
Only update TN3270 dirty cells
This commit is contained in:
@@ -142,7 +142,9 @@ class TN3270Session(Session):
|
||||
self.telnet = None
|
||||
|
||||
def _apply(self):
|
||||
for (address, cell) in enumerate(self.emulator.cells):
|
||||
for address in self.emulator.dirty:
|
||||
cell = self.emulator.cells[address]
|
||||
|
||||
byte = 0x00
|
||||
|
||||
if isinstance(cell, AttributeCell):
|
||||
@@ -152,6 +154,8 @@ class TN3270Session(Session):
|
||||
|
||||
self.terminal.display.buffered_write(byte, index=address)
|
||||
|
||||
self.emulator.dirty.clear()
|
||||
|
||||
# Update the message area.
|
||||
self.message_area = self._format_message_area()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ ptyprocess==0.6.0
|
||||
pycoax==0.1.2
|
||||
pyserial==3.4
|
||||
pyte==0.8.0
|
||||
pytn3270==0.1.0
|
||||
pytn3270==0.2.0
|
||||
sliplib==0.3.0
|
||||
sortedcontainers==2.1.0
|
||||
wcwidth==0.1.7
|
||||
|
||||
@@ -49,6 +49,8 @@ class SessionHandleHostTestCase(unittest.TestCase):
|
||||
_set_attribute(cells, 104, MockAttribute(protected=True))
|
||||
|
||||
self.session.emulator.cells = cells
|
||||
self.session.emulator.dirty = set(range(105))
|
||||
|
||||
self.session.emulator.cursor_address = 8
|
||||
|
||||
# Act and assert
|
||||
@@ -76,6 +78,7 @@ class SessionHandleHostTestCase(unittest.TestCase):
|
||||
self.session.emulator.update = Mock(return_value=True)
|
||||
|
||||
self.session.emulator.cells = _create_screen_cells(24, 80)
|
||||
self.session.emulator.dirty = set()
|
||||
|
||||
# Act
|
||||
self.session.handle_host()
|
||||
@@ -92,6 +95,7 @@ class SessionHandleKeyTestCase(unittest.TestCase):
|
||||
self.session.emulator = Mock()
|
||||
|
||||
self.session.emulator.cells = []
|
||||
self.session.emulator.dirty = set()
|
||||
|
||||
def test_enter(self):
|
||||
# Act
|
||||
|
||||
Reference in New Issue
Block a user