mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-03 02:36:11 +00:00
fix(companion): clear stale Locator/Live Share/favourite refs on delete
Deleting a waypoint left the Locator pointed at coordinates that no longer existed (it's a coordinate snapshot, so nothing noticed). Removing a contact was worse: nothing cleared its favourite slot, its Locator/Live Share target, or its per-contact mute/melody entry, so all four kept referencing a pubkey that no longer resolved to anything. - WaypointsView's Delete now calls UITask::clearTargetIfWaypoint() first. - New AbstractUITask::onContactRemoved() hook, called from MyMesh.cpp's CMD_REMOVE_CONTACT handler, clears the favourite slot, the Locator target, and dm_notif/dm_melody entries for that pubkey. Live Share's DM target turns auto-share off instead of guessing a new recipient. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
50cd56cd0c
commit
5c4607cca9
@@ -269,6 +269,8 @@ public:
|
||||
}
|
||||
} else if (sel == 1) { // Delete
|
||||
if (wi >= 0 && wi < _task->waypoints().count()) {
|
||||
const Waypoint& w = _task->waypoints().at(wi);
|
||||
_task->clearTargetIfWaypoint(w.lat_1e6, w.lon_1e6); // don't leave the Locator pointed at a deleted spot
|
||||
_task->waypoints().remove(wi);
|
||||
_task->saveWaypoints();
|
||||
if (_sel >= wpListCount()) _sel = wpListCount() - 1;
|
||||
|
||||
Reference in New Issue
Block a user