Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJeffrey Stedfast <jestedfa@microsoft.com>2019-12-02 23:40:13 +0300
committermonojenkins <jo.shields+jenkins@xamarin.com>2019-12-19 11:07:54 +0300
commit2cb76fe0f0ae7e38318aef2a77b2ed003217474f (patch)
treeaf643d113858579200f8dfd9c57cc25250e1b655 /main
parentdc9a7333d4074227c07b6298c127fffcf7c6e4e8 (diff)
[Debugger] Fixed HexEditor visualizer to not grab focus in weird ways
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1027825/
Diffstat (limited to 'main')
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs50
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs2
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorVisualizer.cs1
3 files changed, 31 insertions, 22 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs
index 87683dd53f..8158421700 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs
@@ -54,7 +54,7 @@ namespace MonoDevelop.Debugger.Viewers
visualizers.Sort ((v1, v2) => string.Compare (v1.Name, v2.Name, StringComparison.CurrentCultureIgnoreCase));
buttons = new List<ToggleButton> ();
- Gtk.Button defaultVis = null;
+ ToggleButton defaultVis = null;
for (int i = 0; i < visualizers.Count; i++) {
var button = new ToggleButton ();
@@ -64,14 +64,15 @@ namespace MonoDevelop.Debugger.Viewers
defaultVis = button;
hbox1.PackStart (button, false, false, 0);
buttons.Add (button);
- button.CanFocus = false;
button.Show ();
}
- if (defaultVis != null)
- defaultVis.Click ();
- else if (buttons.Count > 0)
- buttons [0].Click ();
+ if (defaultVis == null)
+ defaultVis = buttons [0];
+
+ defaultVis.GrabFocus ();
+ SetToggleState (defaultVis, true);
+ UpdateVisualizer (defaultVis);
if (val.IsReadOnly || !visualizers.Any (v => v.CanEdit (val))) {
buttonCancel.Label = Gtk.Stock.Close;
@@ -89,24 +90,23 @@ namespace MonoDevelop.Debugger.Viewers
return base.OnKeyPressEvent (evnt);
}
- protected virtual void OnComboVisualizersChanged (object sender, EventArgs e)
+ void SetToggleState (ToggleButton button, bool value)
+ {
+ button.Toggled -= OnComboVisualizersChanged;
+ button.Active = value;
+ button.Toggled += OnComboVisualizersChanged;
+ }
+
+ void UpdateVisualizer (ToggleButton button)
{
- var button = (ToggleButton)sender;
- if (!button.Active) {//Prevent un-toggling
- button.Toggled -= OnComboVisualizersChanged;
- button.Active = true;
- button.Toggled += OnComboVisualizersChanged;
- return;
- }
if (currentWidget != null)
mainBox.Remove (currentWidget);
+
foreach (var b in buttons) {
- if (b != button && b.Active) {
- b.Toggled -= OnComboVisualizersChanged;
- b.Active = false;
- b.Toggled += OnComboVisualizersChanged;
- }
+ if (b != button && b.Active)
+ SetToggleState (b, false);
}
+
currentVisualizer = visualizers [buttons.IndexOf (button)];
currentWidget = currentVisualizer.GetVisualizerWidget (value);
buttonSave.Sensitive = currentVisualizer.CanEdit (value);
@@ -114,6 +114,18 @@ namespace MonoDevelop.Debugger.Viewers
currentWidget.Show ();
}
+ protected virtual void OnComboVisualizersChanged (object sender, EventArgs e)
+ {
+ var button = (ToggleButton) sender;
+
+ if (!button.Active) {//Prevent un-toggling
+ SetToggleState (button, true);
+ return;
+ }
+
+ UpdateVisualizer (button);
+ }
+
protected virtual void OnSaveClicked (object sender, EventArgs e)
{
bool saved = false;
diff --git a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
index 0d9e6c2395..f5f29f6b08 100644
--- a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
+++ b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
@@ -65,8 +65,6 @@ namespace MonoDevelop.HexEditor
window = new ScrollView (hexEditor);
await LoadContent ();
- hexEditor.SetFocus ();
-
return new XwtControl (window);
}
diff --git a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorVisualizer.cs b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorVisualizer.cs
index 40c0f444db..74087bbc2a 100644
--- a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorVisualizer.cs
+++ b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorVisualizer.cs
@@ -135,7 +135,6 @@ namespace MonoDevelop.HexEditor
var xwtScrollView = new Xwt.ScrollView (hexEditor);
var scrollWidget = (Widget) Xwt.Toolkit.CurrentEngine.GetNativeWidget (xwtScrollView);
SetHexEditorOptions ();
- hexEditor.SetFocus ();
return scrollWidget;
}