screen: Set buttons under message bar to not be sensitive when covered
This commit is contained in:
parent
d61db5fb17
commit
cf3a924bb2
@ -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)
|
||||
|
15
screen.py
15
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()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user