Browse Source

implement mouse event modifiers.

Dan Walmsley 4 years ago
parent
commit
236e02ad3c

+ 1 - 1
samples/ControlCatalog.Web/ControlCatalog.Web.csproj

@@ -19,7 +19,7 @@
     <Optimize>true</Optimize>
     <WasmNativeStrip>true</WasmNativeStrip>
     <EmccCompileOptimizationFlag>-O3</EmccCompileOptimizationFlag>
-    <RunAOTCompilation>true</RunAOTCompilation>
+    <RunAOTCompilation>false</RunAOTCompilation>
   </PropertyGroup>
 
   <ItemGroup>

+ 19 - 2
src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs

@@ -47,8 +47,7 @@ namespace Avalonia.Web.Blazor
 
         void OnMouseMove(MouseEventArgs e)
         {
-            _topLevelImpl.RawMouseEvent(RawPointerEventType.Move, new Point(e.ClientX, e.ClientY),
-                RawInputModifiers.None);
+            _topLevelImpl.RawMouseEvent(RawPointerEventType.Move, new Point(e.ClientX, e.ClientY), GetModifiers(e));
         }
 
         void OnMouseUp(MouseEventArgs e)
@@ -113,6 +112,15 @@ namespace Avalonia.Web.Blazor
                 modifiers |= RawInputModifiers.Shift;
             if (e.MetaKey)
                 modifiers |= RawInputModifiers.Meta;
+            
+            if ((e.Buttons & 1L) == 1)
+                modifiers |= RawInputModifiers.LeftMouseButton;
+            
+            if ((e.Buttons & 2L) == 2)
+                modifiers |= RawInputModifiers.RightMouseButton;
+            
+            if ((e.Buttons & 4L) == 4)
+                modifiers |= RawInputModifiers.MiddleMouseButton;
 
             return modifiers;
         }
@@ -130,6 +138,15 @@ namespace Avalonia.Web.Blazor
             if (e.MetaKey)
                 modifiers |= RawInputModifiers.Meta;
 
+            if ((e.Buttons & 1L) == 1)
+                modifiers |= RawInputModifiers.LeftMouseButton;
+            
+            if ((e.Buttons & 2L) == 2)
+                modifiers |= RawInputModifiers.RightMouseButton;
+            
+            if ((e.Buttons & 4L) == 4)
+                modifiers |= RawInputModifiers.MiddleMouseButton;
+
             return modifiers;
         }