>From b07ddbd6919511d0c094f156070e9338c248c856 Mon Sep 17 00:00:00 2001
From: Gwenael Casaccio
Date: Tue, 20 Aug 2013 14:23:52 +0200
Subject: [PATCH 09/12] Center the view, highlight the current line of code and
add a missing extension
---
packages/visualgst/ChangeLog | 6 ++++++
packages/visualgst/Debugger/Extensions.st | 10 ++++++++++
packages/visualgst/Debugger/GtkDebugger.st | 9 +++++++--
packages/visualgst/Text/GtkTextWidget.st | 10 ++++++++++
4 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/packages/visualgst/ChangeLog b/packages/visualgst/ChangeLog
index 1bc08ba..b2b8f6f 100644
--- a/packages/visualgst/ChangeLog
+++ b/packages/visualgst/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-18 Gwenael Casaccio
+
+ * Debugger/Extensions.st: Add missing debugger extension.
+ * Debugger/GtkDebugger.st: Center the view and select one line.
+ * Text/GtkTextWidget.st: Center the view.
+
2013-06-18 Gwenael Casaccio
* Debugger/GtkDebugger.st: Don't use previous debugger extensions.
diff --git a/packages/visualgst/Debugger/Extensions.st b/packages/visualgst/Debugger/Extensions.st
index 50eaa39..486707c 100644
--- a/packages/visualgst/Debugger/Extensions.st
+++ b/packages/visualgst/Debugger/Extensions.st
@@ -41,3 +41,13 @@ Behavior extend [
^ VisualGST.GtkDebugger
]
]
+
+Debugger extend [
+
+ receiver [
+
+
+ ^ self suspendedContext receiver
+ ]
+]
+
diff --git a/packages/visualgst/Debugger/GtkDebugger.st b/packages/visualgst/Debugger/GtkDebugger.st
index 7a79744..48d0869 100644
--- a/packages/visualgst/Debugger/GtkDebugger.st
+++ b/packages/visualgst/Debugger/GtkDebugger.st
@@ -297,11 +297,16 @@ GtkBrowsingTool subclass: GtkDebugger [
contextChanged [
- | iter |
self checkCodeWidgetAndUpdate: [
+ | line |
contextWidget hasSelectedContext ifFalse: [ ^ self ].
codeWidget source: (BrowserMethodSource on: contextWidget selectedContext method).
- codeWidget applyTag: #debug forLine: contextWidget selectedContext currentLine.
+ contextWidget selectedContext currentLine ~= 0
+ ifTrue: [ line := contextWidget selectedContext currentLine ]
+ ifFalse: [ line := 1 ].
+ codeWidget
+ applyTag: #debug forLine: line;
+ centerViewAtLine: line.
self updateInspectorWidget: contextWidget selectedContext ]
]
diff --git a/packages/visualgst/Text/GtkTextWidget.st b/packages/visualgst/Text/GtkTextWidget.st
index d1a2998..0036562 100644
--- a/packages/visualgst/Text/GtkTextWidget.st
+++ b/packages/visualgst/Text/GtkTextWidget.st
@@ -363,6 +363,16 @@ GtkConcreteWidget subclass: GtkTextWidget [
self buffer selectRange: start bound: end
]
+ centerViewAtLine: anInteger [
+
+
+ | mark iter |
+ iter := self buffer getIterAtLine: anInteger.
+ mark := GTK.GtkTextMark new: nil leftGravity: false.
+ self buffer addMark: mark where: iter.
+ textWidget scrollMarkOnscreen: mark.
+ ]
+
beforeEvaluation [
]
--
1.8.1.2