]> granicus.if.org Git - handbrake/commitdiff
WinGui: Fix to the Drive Menu service so that it doesn't refresh when clicking on...
authorsr55 <sr55.hb@outlook.com>
Sat, 6 Jul 2013 18:23:25 +0000 (18:23 +0000)
committersr55 <sr55.hb@outlook.com>
Sat, 6 Jul 2013 18:23:25 +0000 (18:23 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5637 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/CS/HandBrakeWPF/AttachedProperties/DriveMenu.cs
win/CS/HandBrakeWPF/Views/MainView.xaml

index 1149b579ebfc75247d878bd09dc38dcc484bad2d..6e053d455c1122e4e16710c8223740013b8cf32c 100644 (file)
@@ -12,10 +12,12 @@ namespace HandBrakeWPF.AttachedProperties
     using System;\r
     using System.Collections.Generic;\r
     using System.Linq;\r
+    using System.Threading;\r
     using System.Windows;\r
     using System.Windows.Controls;\r
     using System.Windows.Media.Imaging;\r
 \r
+    using HandBrake.ApplicationServices.Exceptions;\r
     using HandBrake.ApplicationServices.Utilities;\r
 \r
     using HandBrakeWPF.Commands;\r
@@ -32,7 +34,7 @@ namespace HandBrakeWPF.AttachedProperties
         /// </summary>\r
         public static readonly DependencyProperty ShowAvailableDrivesProperty = DependencyProperty.RegisterAttached(\r
             "ShowAvailableDrives",\r
-            typeof(Boolean),\r
+            typeof(bool),\r
             typeof(DriveMenu),\r
             new PropertyMetadata(false, OnShowAvailableDrivesChanged));\r
 \r
@@ -76,11 +78,11 @@ namespace HandBrakeWPF.AttachedProperties
         /// </param>\r
         private static void OnShowAvailableDrivesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\r
         {\r
-            Menu menu = d as Menu;\r
+            MenuItem menu = d as MenuItem;\r
             if (menu != null)\r
             {\r
-                menu.PreviewMouseDown -= MenuMouseDown;\r
-                menu.PreviewMouseDown += MenuMouseDown;\r
+                menu.SubmenuOpened -= MenuMouseDown;\r
+                menu.SubmenuOpened += MenuMouseDown;\r
             }\r
         }\r
 \r
@@ -93,9 +95,15 @@ namespace HandBrakeWPF.AttachedProperties
         /// <param name="e">\r
         /// The e.\r
         /// </param>\r
-        private static void MenuMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
+        private static void MenuMouseDown(object sender, RoutedEventArgs e)\r
         {\r
-            Menu menu = sender as Menu;\r
+            MenuItem menu = sender as MenuItem;\r
+            MenuItem childMenuItem = e.OriginalSource as MenuItem;\r
+            if (childMenuItem != null && "Title Specific Scan".Equals(childMenuItem.Header))\r
+            {\r
+                return; // Skip, it's just a child menu.\r
+            }\r
+\r
             if (menu != null)\r
             {\r
                 MainViewModel mvm = menu.DataContext as MainViewModel;\r
@@ -118,9 +126,19 @@ namespace HandBrakeWPF.AttachedProperties
                                                                        IsDrive = true\r
                                                                    })\r
                     {\r
-                        mvm.SourceMenu.Add(menuItem);\r
+                        Console.WriteLine("test");\r
                     }\r
                 }\r
+                else\r
+                {\r
+                    throw new GeneralApplicationException(\r
+                        "DEBUG - Datacontext wasn't set!", "Please report this on the forum.", null);\r
+                }\r
+            }\r
+            else\r
+            {\r
+                throw new GeneralApplicationException(\r
+                    "DEBUG - Source Menu wasn't set!", "Please report this on the forum.", null);\r
             }\r
         }\r
     }\r
index 38545de00d4562028beedaf945f0e947a837721e..4815e77bc4b59f269db3567e85ada93c28817ef1 100644 (file)
                      ToolBar.OverflowMode="Never"\r
                      ToolBarTray.IsLocked="True"\r
                      >\r
-                <Menu Background="Transparent" attachedProperties:DriveMenu.ShowAvailableDrives="true">\r
-                    <MenuItem ItemsSource="{Binding SourceMenu}">\r
+                <Menu Background="Transparent">\r
+                    <MenuItem ItemsSource="{Binding SourceMenu}" attachedProperties:DriveMenu.ShowAvailableDrives="true">\r
                         <MenuItem.Header>\r
                             <StackPanel Orientation="Horizontal">\r
                                 <Image Width="32"\r
                                 <Setter Property="ItemsSource" Value="{Binding Children}" />\r
                                 <Setter Property="Icon" Value="{Binding Image}" />\r
                                 <Setter Property="InputGestureText" Value="{Binding InputGestureText}" />\r
+                                <Setter Property="Tag" Value="{Binding}" />\r
                             </Style>\r
                         </MenuItem.ItemContainerStyle>\r
                     </MenuItem>\r