Skip to content

Commit

Permalink
[Mac] Fixes getting the accelerator keys, if the key is equal to the …
Browse files Browse the repository at this point in the history
…separator (xamarin#2673)

- fixes xamarin#1639
  • Loading branch information
Pavel Yakovlev authored and StephaneDelcroix committed May 14, 2018
1 parent 67d2be4 commit bf8d706
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
14 changes: 13 additions & 1 deletion Xamarin.Forms.Core.UnitTests/MenuItemTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,19 @@ public void Accelerator()

Assert.AreEqual(MenuItem.GetAccelerator(item).ToString(), shourtCutKeyBinding);
}


[Test]
public void AcceleratorPlus ()
{
var item = new MenuItem ();
string shourtCutKeyLikeSeparator = "+";
MenuItem.SetAccelerator (item, Xamarin.Forms.Accelerator.FromString (shourtCutKeyLikeSeparator));

var accelerator = MenuItem.GetAccelerator(item);
Assert.AreEqual (accelerator.ToString (), shourtCutKeyLikeSeparator);
Assert.AreEqual (accelerator.Keys.FirstOrDefault(), shourtCutKeyLikeSeparator);
}

protected override T CreateSource()
{
return new T();
Expand Down
8 changes: 6 additions & 2 deletions Xamarin.Forms.Core/Accelerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,12 @@ public static Accelerator FromString(string text)

}

var keys = text.Split(new char[] { Separator }, StringSplitOptions.RemoveEmptyEntries);
accelarat.Keys = keys;
if (text != Separator.ToString()) {
var keys = text.Split(new char[] { Separator }, StringSplitOptions.RemoveEmptyEntries);
accelarat.Keys = keys;
} else {
accelarat.Keys = new[] { text };
}
return accelarat;
}

Expand Down

0 comments on commit bf8d706

Please sign in to comment.