diff --git a/src/message/message.py b/src/message/message.py index 98a0ab2..054bc1f 100644 --- a/src/message/message.py +++ b/src/message/message.py @@ -28,6 +28,9 @@ class Message: def data_change(self): return True + def entry_redraw(self): + return self.data_change() + def add_arg(self, arg): self._args.append(arg) diff --git a/src/message/show_menu.py b/src/message/show_menu.py index 1c596ee..a80d0b9 100644 --- a/src/message/show_menu.py +++ b/src/message/show_menu.py @@ -97,3 +97,8 @@ class ShowExampleMenu(KeyPlusClickMessage): def reset(self): # special case, when choosing messages dont reset return not (self.ctrl or self.shift) + + def entry_redraw(self): + # when choosing messages we need to redraw + return self.ctrl or self.shift + diff --git a/src/update.py b/src/update.py index 8fb007c..23b7206 100644 --- a/src/update.py +++ b/src/update.py @@ -7,7 +7,7 @@ class Update: self.view = None def update_model(self): - data_change = False + entry_redraw = False reset = False # check if we need to reset the model @@ -20,12 +20,16 @@ class Update: self.model.pre_reset() # check if we need to signal the data change + # and for entry redraw for msg in self.message_queue: if msg.data_change(): screenful.changed() - data_change = True + entry_redraw = True break + if msg.entry_redraw(): + entry_redraw = True + # do update for msg in self.message_queue: msg.update_model(self.model) @@ -34,7 +38,7 @@ class Update: if reset: self.model.post_reset() - self.view.view(self.model, data_change) + self.view.view(self.model, entry_redraw) self.message_queue = [] def schedule(self, msg):