diff --git a/lib/solaar/ui/window.py b/lib/solaar/ui/window.py index 11f30fe1..2a1741ac 100644 --- a/lib/solaar/ui/window.py +++ b/lib/solaar/ui/window.py @@ -579,7 +579,12 @@ def _update_receiver_panel(receiver, panel, buttons, full=False): # b._insecure.set_visible(False) buttons._unpair.set_visible(False) - buttons._pair.set_sensitive(devices_count < receiver.max_devices and not is_pairing) + + may_pair = receiver.may_unpair and not is_pairing + if may_pair and devices_count >= receiver.max_devices: + online_devices = (n for n in range(1, receiver.max_devices) if n in receiver and receiver[n].online) + may_pair &= len(online_devices) < receiver.max_devices + buttons._pair.set_sensitive(may_pair) buttons._pair.set_visible(True)