aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaDoc.html13
-rw-r--r--include/Scintilla.h2
-rw-r--r--include/Scintilla.iface6
-rw-r--r--src/Editor.cxx10
4 files changed, 30 insertions, 1 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index d39d95165..7a8f03e88 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -79,7 +79,7 @@
<h1>Scintilla Documentation</h1>
- <p>Last edited 2/July/2011 NH</p>
+ <p>Last edited 19/July/2011 NH</p>
<p>There is <a class="jump" href="Design.html">an overview of the internal design of
Scintilla</a>.<br />
@@ -4419,6 +4419,12 @@ struct Sci_TextToFind {
<td><code>SCI_MOVESELECTEDLINESDOWN</code></td>
</tr>
+
+ <tr>
+ <td><code>SCI_SCROLLTOSTART</code></td>
+
+ <td><code>SCI_SCROLLTOEND</code></td>
+ </tr>
</tbody>
</table>
@@ -4445,6 +4451,11 @@ struct Sci_TextToFind {
as appropriate for <code>SCI_[[VC]HOME|LINEEND]*</code>.
</p>
+ <p>The <code>SCI_SCROLLTO[START|END]</code> commands scroll the document to the start
+ or end without changing the selection. This is the expected behaviour of the <code>home</code> and
+ <code>end</code> keys on OS X.
+ </p>
+
<h2 id="KeyBindings">Key bindings</h2>
<p>There is a default binding of keys to commands that is defined in the Scintilla source in
diff --git a/include/Scintilla.h b/include/Scintilla.h
index 99100d11c..403c0dce7 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -816,6 +816,8 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define SCI_RGBAIMAGESETHEIGHT 2625
#define SCI_MARKERDEFINERGBAIMAGE 2626
#define SCI_REGISTERRGBAIMAGE 2627
+#define SCI_SCROLLTOSTART 2628
+#define SCI_SCROLLTOEND 2629
#define SCI_STARTRECORD 3001
#define SCI_STOPRECORD 3002
#define SCI_SETLEXER 4001
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index 28273f012..95e784e19 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -2168,6 +2168,12 @@ fun void MarkerDefineRGBAImage=2626(int markerNumber, string pixels)
# It has the width and height from RGBAImageSetWidth/Height
fun void RegisterRGBAImage=2627(int type, string pixels)
+# Scroll to start of document.
+fun void ScrollToStart=2628(,)
+
+# Scroll to end of document.
+fun void ScrollToEnd=2629(,)
+
# Start notifying the container of all key presses and commands.
fun void StartRecord=3001(,)
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 78b2ac475..a94089e9f 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -4797,6 +4797,8 @@ void Editor::NotifyMacroRecord(unsigned int iMessage, uptr_t wParam, sptr_t lPar
case SCI_VERTICALCENTRECARET:
case SCI_MOVESELECTEDLINESUP:
case SCI_MOVESELECTEDLINESDOWN:
+ case SCI_SCROLLTOSTART:
+ case SCI_SCROLLTOEND:
break;
// Filter out all others like display changes. Also, newlines are redundant
@@ -5536,6 +5538,12 @@ int Editor::KeyCommand(unsigned int iMessage) {
StartEndDisplayLine(sel.MainCaret(), false), 1), Selection::selStream);
SetLastXChosen();
break;
+ case SCI_SCROLLTOSTART:
+ ScrollTo(0);
+ break;
+ case SCI_SCROLLTOEND:
+ ScrollTo(MaxScrollPos());
+ break;
}
return 0;
}
@@ -8507,6 +8515,8 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_DOCUMENTSTARTEXTEND:
case SCI_DOCUMENTEND:
case SCI_DOCUMENTENDEXTEND:
+ case SCI_SCROLLTOSTART:
+ case SCI_SCROLLTOEND:
case SCI_STUTTEREDPAGEUP:
case SCI_STUTTEREDPAGEUPEXTEND: