>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