I have reported a bug against Geany but they asked me to fill a bug against Scintilla.
I work in Fedora 17 x86_64. I just built Geany 1.23 from sources downloaded from git today. It uses Scintilla version 322 (accordingly to the file scintilla/version.txt). "Virtual Spaces" Geany option set to "Always". I would expect that cursor column position will be preserved in case of pressing keys: Up. Down, PageUp, PageDown, but sometimes it is not -- in case of the first and/or the last line the cursor jumps to the first column. In details:
Let us assume the cursor is in column N.
Pressing Up key moves the cursor one line up, keeping it in column N. If the cursor is in the first line, pressing Up key does not change line (because the cursor is in the first one), but moves it to the first column. I believe it is wrong, the cursor should stick to the original column. Subsequent Down moves the cursor to the line 2 column N.
The same situation is at the end of file. If the cursor is in the last line, Down moves the cursor to the first column. This is wrong — it should stay in its original column. Subsequent Up key moves the cursor one line up and returns it back to the column N.
Similar situation observed with PageDown. In the middle of file PageDown moves cursor down one page, keeping in the same column. But, if there is no more pages, the cursor jumps to the first column (this is wrong — the cursor should stay in column N). Subsequent Up or PageUp moves the cursor up and returns it to the column N.
In contrast, PageUp behaves correctly -- at the top of file, it does not change cursor's column.
The same behaviour can be observed in Scite editor. I used Scite 2.22 (installed from official Fedora repository), and put line "virtual.space=3" to my .SciTEUser.properties.
Just in case, original Geany bug: https://sourceforge.net/tracker/?func=detail&aid=3573487&group_id=153444&atid=787791