Explorar el Código

Merge remote-tracking branch 'upstream/master' into BaseDarkTheme

wieslawsoltes hace 7 años
padre
commit
2cb63dc55b

+ 5 - 1
native/Avalonia.Native/src/OSX/window.mm

@@ -963,7 +963,11 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
 
 - (BOOL)performKeyEquivalent:(NSEvent *)event
 {
-    return _lastKeyHandled;
+    bool result = _lastKeyHandled;
+    
+    _lastKeyHandled = false;
+    
+    return result;
 }
 
 - (void)keyDown:(NSEvent *)event

+ 14 - 0
src/Avalonia.Controls/Primitives/ScrollBar.cs

@@ -128,6 +128,20 @@ namespace Avalonia.Controls.Primitives
             }
         }
 
+        protected override void OnKeyDown(KeyEventArgs e)
+        {
+            if (e.Key == Key.PageUp)
+            {
+                LargeDecrement();
+                e.Handled = true;
+            }
+            else if (e.Key == Key.PageDown)
+            {
+                LargeIncrement();
+                e.Handled = true;
+            }
+        }
+
         protected override void OnTemplateApplied(TemplateAppliedEventArgs e)
         {
             base.OnTemplateApplied(e);

+ 15 - 0
src/Avalonia.Controls/ScrollViewer.cs

@@ -4,6 +4,7 @@
 using System;
 using Avalonia.Controls.Presenters;
 using Avalonia.Controls.Primitives;
+using Avalonia.Input;
 
 namespace Avalonia.Controls
 {
@@ -441,5 +442,19 @@ namespace Avalonia.Controls
             RaisePropertyChanged(VerticalScrollBarValueProperty, 0, VerticalScrollBarValue);
             RaisePropertyChanged(VerticalScrollBarViewportSizeProperty, 0, VerticalScrollBarViewportSize);
         }
+
+        protected override void OnKeyDown(KeyEventArgs e)
+        {
+            if (e.Key == Key.PageUp)
+            {
+                VerticalScrollBarValue = Math.Max(_offset.Y - _viewport.Height, 0);
+                e.Handled = true;
+            }
+            else if (e.Key == Key.PageDown)
+            {
+                VerticalScrollBarValue = Math.Min(_offset.Y + _viewport.Height, VerticalScrollBarMaximum);
+                e.Handled = true;
+            }
+        }
     }
 }

+ 16 - 8
src/Avalonia.Themes.Default/ScrollBar.xaml

@@ -7,7 +7,8 @@
                         <RepeatButton Name="PART_LineUpButton"
                                       Classes="repeat"
                                       Grid.Row="0"
-                                      Grid.Column="0">
+                                      Grid.Column="0"
+                                      Focusable="False">
                             <Path Data="M 0,4 C0,4 0,6 0,6 0,6 3.5,2.5 3.5,2.5 3.5,2.5 7,6 7,6 7,6 7,4 7,4 7,4 3.5,0.5 3.5,0.5 3.5,0.5 0,4 0,4 z"
                                   Stretch="Uniform"
                                   Fill="{DynamicResource ThemeForegroundLowBrush}" />
@@ -21,11 +22,13 @@
                                Orientation="{TemplateBinding Orientation}">
                             <Track.DecreaseButton>
                                 <RepeatButton Name="PART_PageUpButton"
-                                              Classes="repeattrack" />
+                                              Classes="repeattrack"
+                                              Focusable="False"/>
                             </Track.DecreaseButton>
                             <Track.IncreaseButton>
                                 <RepeatButton Name="PART_PageDownButton"
-                                              Classes="repeattrack" />
+                                              Classes="repeattrack"
+                                              Focusable="False"/>
                             </Track.IncreaseButton>
                             <Thumb Name="thumb">
                                 <Thumb.Template>
@@ -38,7 +41,8 @@
                         <RepeatButton Name="PART_LineDownButton"
                                       Classes="repeat"
                                       Grid.Row="2"
-                                      Grid.Column="2">
+                                      Grid.Column="2"
+                                      Focusable="False">
                             <Path Data="M 0,2.5 C0,2.5 0,0.5 0,0.5 0,0.5 3.5,4 3.5,4 3.5,4 7,0.5 7,0.5 7,0.5 7,2.5 7,2.5 7,2.5 3.5,6 3.5,6 3.5,6 0,2.5 0,2.5 z"
                                   Stretch="Uniform"
                                   Fill="{DynamicResource ThemeForegroundLowBrush}" />
@@ -58,7 +62,8 @@
                         <RepeatButton Name="PART_LineUpButton"
                                       Classes="repeat"
                                       Grid.Row="0"
-                                      Grid.Column="0">
+                                      Grid.Column="0"
+                                      Focusable="False">
                             <Path Data="M 3.18,7 C3.18,7 5,7 5,7 5,7 1.81,3.5 1.81,3.5 1.81,3.5 5,0 5,0 5,0 3.18,0 3.18,0 3.18,0 0,3.5 0,3.5 0,3.5 3.18,7 3.18,7 z"
                                   Stretch="Uniform"
                                   Fill="{DynamicResource ThemeForegroundLowBrush}" />
@@ -72,11 +77,13 @@
                                Orientation="{TemplateBinding Orientation}">
                             <Track.DecreaseButton>
                                 <RepeatButton Name="PART_PageUpButton"
-                                              Classes="repeattrack" />
+                                              Classes="repeattrack"
+                                              Focusable="False"/>
                             </Track.DecreaseButton>
                             <Track.IncreaseButton>
                                 <RepeatButton Name="PART_PageDownButton"
-                                              Classes="repeattrack" />
+                                              Classes="repeattrack"
+                                              Focusable="False"/>
                             </Track.IncreaseButton>
                             <Thumb Name="thumb">
                                 <Thumb.Template>
@@ -89,7 +96,8 @@
                         <RepeatButton Name="PART_LineDownButton"
                                       Classes="repeat"
                                       Grid.Row="2"
-                                      Grid.Column="2">
+                                      Grid.Column="2"
+                                      Focusable="False">
                             <Path Data="M 1.81,7 C1.81,7 0,7 0,7 0,7 3.18,3.5 3.18,3.5 3.18,3.5 0,0 0,0 0,0 1.81,0 1.81,0 1.81,0 5,3.5 5,3.5 5,3.5 1.81,7 1.81,7 z"
                                   Stretch="Uniform"
                                   Fill="{DynamicResource ThemeForegroundLowBrush}" />

+ 4 - 2
src/Avalonia.Themes.Default/ScrollViewer.xaml

@@ -19,14 +19,16 @@
                    Value="{TemplateBinding HorizontalScrollBarValue, Mode=TwoWay}"
                    ViewportSize="{TemplateBinding HorizontalScrollBarViewportSize}"
                    Visibility="{TemplateBinding HorizontalScrollBarVisibility}"
-                   Grid.Row="1"/>
+                   Grid.Row="1"
+                   Focusable="False"/>
         <ScrollBar Name="verticalScrollBar"
                    Orientation="Vertical"
                    Maximum="{TemplateBinding VerticalScrollBarMaximum}"
                    Value="{TemplateBinding VerticalScrollBarValue, Mode=TwoWay}"
                    ViewportSize="{TemplateBinding VerticalScrollBarViewportSize}"
                    Visibility="{TemplateBinding VerticalScrollBarVisibility}"
-                   Grid.Column="1"/>
+                   Grid.Column="1"
+                   Focusable="False"/>
       </Grid>
     </ControlTemplate>
   </Setter>