diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index 844cb4c5..b50f2ab9 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -10,6 +10,7 @@ logger = logging.getLogger("KlipperScreen.ScreenPanel") class ScreenPanel: title_spacing = 50 + control = {} def __init__(self, screen, title, back=True): self._screen = screen @@ -21,17 +22,17 @@ class ScreenPanel: self.layout.set_size(self._screen.width, self._screen.height) if back == True: - b = KlippyGtk.ButtonImage('back', None, None, 40, 40) - b.connect("clicked", self._screen._menu_go_back) - self.layout.put(b, 0, 0) + self.control['back'] = KlippyGtk.ButtonImage('back', None, None, 40, 40) + self.control['back'].connect("clicked", self._screen._menu_go_back) + self.layout.put(self.control['back'], 0, 0) - h = KlippyGtk.ButtonImage('home', None, None, 40, 40) - h.connect("clicked", self.menu_return, True) - self.layout.put(h, self._screen.width - 55, 0) + self.control['home'] = KlippyGtk.ButtonImage('home', None, None, 40, 40) + self.control['home'].connect("clicked", self.menu_return, True) + self.layout.put(self.control['home'], self._screen.width - 55, 0) - e = KlippyGtk.ButtonImage('emergency', None, None, 40, 40) - e.connect("clicked", self.emergency_stop) - self.layout.put(e, int(self._screen.width/4*3) - 20, 0) + self.control['estop'] = KlippyGtk.ButtonImage('emergency', None, None, 40, 40) + self.control['estop'].connect("clicked", self.emergency_stop) + self.layout.put(self.control['estop'], int(self._screen.width/4*3) - 20, 0) self.title = Gtk.Label() self.title.set_size_request(self._screen.width, self.title_spacing) diff --git a/screen.py b/screen.py index 1c352dfe..b633d24b 100644 --- a/screen.py +++ b/screen.py @@ -189,6 +189,8 @@ class KlipperScreen(Gtk.Window): box.get_style_context().add_class("message_popup") box.set_size_request(self.width, 50) label = Gtk.Label() + if "must home axis first" in message.lower(): + message = "Must home all axis first." label.set_text(message) close = Gtk.Button.new_with_label("X") @@ -200,7 +202,12 @@ class KlipperScreen(Gtk.Window): box.pack_end(close, False, False, 10) box.set_halign(Gtk.Align.CENTER) - self.panels[self._cur_panels[-1]].get().put(box, 0,0) + cur_panel = self.panels[self._cur_panels[-1]] + for i in ['back','estop','home']: + if i in cur_panel.control: + cur_panel.control[i].set_sensitive(False) + cur_panel.get().put(box, 0,0) + self.show_all() self.popup_message = box @@ -212,7 +219,11 @@ class KlipperScreen(Gtk.Window): if self.popup_message == None: return - self.panels[self._cur_panels[-1]].get().remove(self.popup_message) + cur_panel = self.panels[self._cur_panels[-1]] + for i in ['back','estop','home']: + if i in cur_panel.control: + cur_panel.control[i].set_sensitive(True) + cur_panel.get().remove(self.popup_message) self.popup_message = None self.show_all()