@@ -2,6 +2,7 @@ import 'dart:ui';
22
33import 'package:flutter/gestures.dart' ;
44import 'package:flutter/material.dart' ;
5+ import 'package:flutter/services.dart' ;
56import 'package:maplibre/maplibre.dart' ;
67import 'package:maplibre/src/inherited_model.dart' ;
78import 'package:maplibre/src/layer/layer_manager.dart' ;
@@ -185,7 +186,9 @@ abstract class MapLibreMapState extends State<MapLibreMap>
185186 _secondToLastScaleUpdateDetails = _lastScaleUpdateDetails;
186187 _lastScaleUpdateDetails = details;
187188
188- if ((pointerDownEvent.buttons & kSecondaryMouseButton) != 0 ) {
189+ final ctrlPressed = HardwareKeyboard .instance.isControlPressed;
190+ final buttons = pointerDownEvent.buttons;
191+ if ((buttons & kSecondaryMouseButton) != 0 || ctrlPressed) {
189192 // secondary button (right)
190193 final lastPointerOffset = lastEvent? .focalPoint ?? startEvent.focalPoint;
191194 final delta = details.focalPoint - lastPointerOffset;
@@ -195,7 +198,7 @@ abstract class MapLibreMapState extends State<MapLibreMap>
195198 pitch: camera.pitch - delta.dy * 0.5 , // sensitivity
196199 zoom: camera.zoom, // TODO adjust for globe projection
197200 );
198- } else if ((pointerDownEvent. buttons & kPrimaryMouseButton) != 0 ) {
201+ } else if ((buttons & kPrimaryMouseButton) != 0 ) {
199202 // primary button (left)
200203
201204 // zoom
0 commit comments