ui: correctly determine setting box in change_click method
This commit is contained in:
parent
64062a456f
commit
a9adc06b7a
|
@ -190,7 +190,7 @@ def _create_multiple_toggle_control(setting, change):
|
||||||
if setting._value[key] != new_state:
|
if setting._value[key] != new_state:
|
||||||
setting._value[key] = new_state
|
setting._value[key] = new_state
|
||||||
p = control
|
p = control
|
||||||
for _ in range(5):
|
for _ in range(5): # go up widget chain
|
||||||
p = p.get_parent()
|
p = p.get_parent()
|
||||||
_write_async_key_value(setting, key, new_state, p)
|
_write_async_key_value(setting, key, new_state, p)
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ _icons_allowables = {v: k for k, v in _allowables_icons.items()}
|
||||||
|
|
||||||
# clicking on the lock icon changes from changeable to unchangeable to ignore
|
# clicking on the lock icon changes from changeable to unchangeable to ignore
|
||||||
def _change_click(eb, button, arg):
|
def _change_click(eb, button, arg):
|
||||||
control, device, name = arg
|
control, sbox, device, name = arg
|
||||||
icon = eb.get_children()[0]
|
icon = eb.get_children()[0]
|
||||||
icon_name, _ = icon.get_icon_name()
|
icon_name, _ = icon.get_icon_name()
|
||||||
allowed = _icons_allowables.get(icon_name, True)
|
allowed = _icons_allowables.get(icon_name, True)
|
||||||
|
@ -379,9 +379,9 @@ def _change_click(eb, button, arg):
|
||||||
if setting:
|
if setting:
|
||||||
persisted = device.persister.get(setting.name) if device.persister else None
|
persisted = device.persister.get(setting.name) if device.persister else None
|
||||||
if persisted is not None:
|
if persisted is not None:
|
||||||
_write_async(setting, persisted, control.get_parent())
|
_write_async(setting, persisted, sbox)
|
||||||
else:
|
else:
|
||||||
_read_async(setting, True, control.get_parent(), bool(device.online), control.get_sensitive())
|
_read_async(setting, True, sbox, bool(device.online), control.get_sensitive())
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ def _create_sbox(s, device):
|
||||||
control.kind = s.kind
|
control.kind = s.kind
|
||||||
|
|
||||||
change.set_sensitive(True)
|
change.set_sensitive(True)
|
||||||
change.connect('button-press-event', _change_click, (control, device, s.name))
|
change.connect('button-press-event', _change_click, (control, sbox, device, s.name))
|
||||||
|
|
||||||
if s.kind in [_SETTING_KIND.multiple_toggle, _SETTING_KIND.multiple_range]:
|
if s.kind in [_SETTING_KIND.multiple_toggle, _SETTING_KIND.multiple_range]:
|
||||||
vbox._header.pack_start(label, False, False, 0)
|
vbox._header.pack_start(label, False, False, 0)
|
||||||
|
|
Loading…
Reference in New Issue