From a9dc47b0308df1232cd92c2e4c6d26de2efe7fd6 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 2 Nov 2010 19:07:15 +0100 Subject: [PATCH] More debug output when focus tracking is enabled. --- .../Src/Gui/Workbench/Layouts/AvalonDockLayout.cs | 12 +++++++++++- .../Base/Project/Src/Gui/Workbench/WpfWorkbench.cs | 10 +++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs index b1129d8561..dd0df9872d 100644 --- a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs +++ b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs @@ -42,7 +42,8 @@ namespace ICSharpCode.SharpDevelop.Gui #if DEBUG internal void WriteState(TextWriter output) { - + output.WriteLine("AvalonDock: ActiveContent = " + WpfWorkbench.GetElementName(dockingManager.ActiveContent)); + output.WriteLine("AvalonDock: ActiveDocument = " + WpfWorkbench.GetElementName(dockingManager.ActiveDocument)); } #endif @@ -57,10 +58,19 @@ namespace ICSharpCode.SharpDevelop.Gui void dockingManager_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "ActiveContent") { + #if DEBUG + if (WpfWorkbench.enableFocusDebugOutput) + LoggingService.Debug("AvalonDock: ActiveContent changed to " + WpfWorkbench.GetElementName(dockingManager.ActiveContent)); + #endif if (ActiveContentChanged != null) ActiveContentChanged(this, e); CommandManager.InvalidateRequerySuggested(); } else if (e.PropertyName == "ActiveDocument") { + #if DEBUG + if (WpfWorkbench.enableFocusDebugOutput) + LoggingService.Debug("AvalonDock: ActiveDocument changed to " + WpfWorkbench.GetElementName(dockingManager.ActiveDocument)); + #endif + if (ActiveWorkbenchWindowChanged != null) ActiveWorkbenchWindowChanged(this, e); CommandManager.InvalidateRequerySuggested(); diff --git a/src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs b/src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs index 1f099a44d7..123396b869 100644 --- a/src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs +++ b/src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs @@ -653,11 +653,11 @@ namespace ICSharpCode.SharpDevelop.Gui } #if DEBUG - bool toggle; + internal static bool enableFocusDebugOutput; void WpfWorkbench_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { - if (toggle) { + if (enableFocusDebugOutput) { LoggingService.Debug("GotKeyboardFocus: oldFocus=" + e.OldFocus + ", newFocus=" + e.NewFocus); if (e.NewFocus is IWorkbenchWindow) { @@ -667,7 +667,7 @@ namespace ICSharpCode.SharpDevelop.Gui void WpfWorkbench_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { - if (toggle) { + if (enableFocusDebugOutput) { LoggingService.Debug("LostKeyboardFocus: oldFocus=" + e.OldFocus + ", newFocus=" + e.NewFocus); if (e.NewFocus is IWorkbenchWindow) { @@ -679,7 +679,7 @@ namespace ICSharpCode.SharpDevelop.Gui { base.OnPreviewKeyDown(e); if (!e.Handled && e.Key == Key.D && e.KeyboardDevice.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift | ModifierKeys.Alt)) { - toggle = !toggle; + enableFocusDebugOutput = !enableFocusDebugOutput; StringWriter output = new StringWriter(); output.WriteLine("Keyboard.FocusedElement = " + GetElementName(Keyboard.FocusedElement)); @@ -717,7 +717,7 @@ namespace ICSharpCode.SharpDevelop.Gui } } - static string GetElementName(object element) + internal static string GetElementName(object element) { if (element == null) return "";