diff --git a/DEVELOPER.md b/DEVELOPER.md index 360d3b6..717393e 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -242,6 +242,10 @@ Users expect instant response to their actions. By immediately updating the cach - **Orange ring**: Node currently being edited - **Red ring**: Nodes pending deletion +**Node dimming behavior:** +- **Dimmed (50% opacity)**: Non-selected nodes when a specific node is selected for tag viewing, or all nodes during search/navigation modes +- **Selection persistence**: When viewing a node's tag sheet, other nodes remain dimmed even when the map is moved, until the sheet is closed (v2.1.3+ fix) + **Direction cone visual states:** - **Full opacity**: Active session direction (currently being edited) - **Reduced opacity (40%)**: Inactive session directions diff --git a/assets/changelog.json b/assets/changelog.json index b95fb08..ac176f2 100644 --- a/assets/changelog.json +++ b/assets/changelog.json @@ -1,4 +1,10 @@ { + "2.1.3": { + "content": [ + "• Fixed nodes losing their greyed-out appearance when map is moved while viewing a node's tag sheet", + "• Nodes now stay properly dimmed when viewing tags until the sheet is closed, regardless of map movement" + ] + }, "2.1.2": { "content": [ "• New positioning tutorial - first-time users must drag the map to refine location when creating or editing nodes, helping ensure accurate positioning", diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index fc7773f..913f422 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -491,10 +491,19 @@ class _HomeScreenState extends State with TickerProviderStateMixin { }); }, onUserGesture: () { - _mapInteractionHandler.handleUserGesture( - context: context, - onSelectedNodeChanged: (id) => setState(() => _selectedNodeId = id), - ); + // Only clear selected node if tag sheet is not open + // This prevents nodes from losing their grey-out when map is moved while viewing tags + if (_sheetCoordinator.tagSheetHeight == 0) { + _mapInteractionHandler.handleUserGesture( + context: context, + onSelectedNodeChanged: (id) => setState(() => _selectedNodeId = id), + ); + } else { + // Tag sheet is open - only handle suspected location clearing, not node selection + final appState = context.read(); + appState.clearSuspectedLocationSelection(); + } + if (appState.followMeMode != FollowMeMode.off) { appState.setFollowMeMode(FollowMeMode.off); } diff --git a/pubspec.yaml b/pubspec.yaml index f7a9502..c49af21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: deflockapp description: Map public surveillance infrastructure with OpenStreetMap publish_to: "none" -version: 2.1.2+35 # The thing after the + is the version code, incremented with each release +version: 2.1.3+36 # The thing after the + is the version code, incremented with each release environment: sdk: ">=3.5.0 <4.0.0" # oauth2_client 4.x needs Dart 3.5+