Browse Source

disallow paste of non hex characters

Grant Limberg 9 years ago
parent
commit
a0c3083af0
1 changed files with 18 additions and 2 deletions
  1. 18 2
      windows/WinUI/MainWindow.xaml.cs

+ 18 - 2
windows/WinUI/MainWindow.xaml.cs

@@ -22,6 +22,8 @@ namespace WinUI
     public partial class MainWindow : Window
     {
         APIHandler handler = new APIHandler();
+        Regex charRegex = new Regex("[0-9a-fxA-FX]");
+        Regex wholeStringRegex = new Regex("^[0-9a-fxA-FX]+$");
 
         public MainWindow()
         {
@@ -29,6 +31,8 @@ namespace WinUI
 
             updateStatus();
             updateNetworks();
+
+            DataObject.AddPastingHandler(joinNetworkID, OnPaste);
         }
 
         private void updateStatus()
@@ -61,8 +65,20 @@ namespace WinUI
 
         private void OnNetworkEntered(object sender, TextCompositionEventArgs e)
         {
-            Regex regex = new Regex("[0-9a-fxA-FX]");
-            e.Handled = !regex.IsMatch(e.Text);
+            e.Handled = !charRegex.IsMatch(e.Text);
+        }
+
+        private void OnPaste(object sender, DataObjectPastingEventArgs e)
+        {
+            var isText = e.SourceDataObject.GetDataPresent(DataFormats.UnicodeText, true);
+            if (!isText) return;
+
+            var text = e.SourceDataObject.GetData(DataFormats.UnicodeText) as string;
+
+            if (!wholeStringRegex.IsMatch(text))
+            {
+                e.CancelCommand();
+            }
         }
     }
 }