[core] fix minimize for all modules (nic, traffic, etc.)

make it possible to toggle the display state of a widget between
"displayed" and "minimized" also for modules that re-create their
widgets during each iteration.

see #661
This commit is contained in:
Tobias Witek 2020-06-23 20:03:17 +02:00
parent 34dadadf90
commit 441e7d5041
4 changed files with 26 additions and 18 deletions

View file

@ -26,7 +26,6 @@ def module_a(mocker):
widget = mocker.MagicMock()
widget.full_text.return_value = "test"
widget.id = "a"
widget.minimized = False
return SampleModule(config=core.config.Config([]), widgets=[widget, widget, widget])
@pytest.fixture
@ -34,7 +33,6 @@ def module_b(mocker):
widget = mocker.MagicMock()
widget.full_text.return_value = "test"
widget.id = "b"
widget.minimized = False
return SampleModule(config=core.config.Config([]), widgets=[widget, widget, widget])
@ -86,16 +84,20 @@ def test_register_multiple_modules(i3, module_a):
def test_toggle_module(i3, module_a, module_b):
i3.modules([module_a, module_b])
i3.update()
i3.toggle_minimize({ "instance": module_a.widget().id })
i3.update()
assert module_a.widget().minimized == True
assert module_b.widget().minimized == False
assert i3.content()[module_a.widget().id]["minimized"] == True
i3.toggle_minimize({ "instance": module_a.widget().id })
i3.toggle_minimize({ "instance": module_b.widget().id })
assert module_a.widget().minimized == False
assert module_b.widget().minimized == True
# assert module_a.widget().minimized == True
# assert module_b.widget().minimized == False
#
# i3.toggle_minimize({ "instance": module_a.widget().id })
# i3.toggle_minimize({ "instance": module_b.widget().id })
#
# assert module_a.widget().minimized == False
# assert module_b.widget().minimized == True
def test_draw_existing_module(mocker, i3):
i3.test_draw = mocker.MagicMock(