Revision: 1807 http://geany.svn.sourceforge.net/geany/?rev=1807&view=rev Author: ntrel Date: 2007-08-16 09:56:17 -0700 (Thu, 16 Aug 2007)
Log Message: ----------- Use sci_assign_cmdkey() to set GtkEntry-like word boundary handling. Clear unnecessary default Scintilla Ctrl-D duplicate keybinding. Add SCI_DELWORDRIGHTEND command (patch sent to Scintilla ML). Remove previous ScintillaGTK::KeyCommand override.
Modified Paths: -------------- trunk/ChangeLog trunk/doc/geany.txt trunk/scintilla/Editor.cxx trunk/scintilla/ScintillaGTK.cxx trunk/scintilla/include/Scintilla.h trunk/src/document.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/ChangeLog 2007-08-16 16:56:17 UTC (rev 1807) @@ -7,6 +7,12 @@ geany.glade: Add 'Enable plugin support' Prefs checkbox. Minor edit of load VTE option text. + * scintilla/include/Scintilla.h, scintilla/Editor.cxx, + scintilla/ScintillaGTK.cxx, src/document.c, doc/geany.txt: + Use sci_assign_cmdkey() to set GtkEntry-like word boundary handling. + Clear unnecessary default Scintilla Ctrl-D duplicate keybinding. + Add SCI_DELWORDRIGHTEND command (patch sent to Scintilla ML). + Remove previous ScintillaGTK::KeyCommand override.
2007-08-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/doc/geany.txt =================================================================== --- trunk/doc/geany.txt 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/doc/geany.txt 2007-08-16 16:56:17 UTC (rev 1807) @@ -2141,11 +2141,6 @@ Extend selection to end of display line. Alt+Shift+End Scroll up. Ctrl+Up Scroll down. Ctrl+Down -Line cut. Ctrl+L -Line copy. Ctrl+Shift+T -Line delete. Ctrl+Shift+L -Line transpose with previous. Ctrl+T -Selection duplicate. Ctrl+D Previous paragraph. Shift extends selection. Ctrl+[ Next paragraph. Shift extends selection. Ctrl+] Previous word. Shift extends selection. Ctrl+Left
Modified: trunk/scintilla/Editor.cxx =================================================================== --- trunk/scintilla/Editor.cxx 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/scintilla/Editor.cxx 2007-08-16 16:56:17 UTC (rev 1807) @@ -3866,6 +3866,7 @@ case SCI_VCHOMEWRAPEXTEND: case SCI_DELWORDLEFT: case SCI_DELWORDRIGHT: + case SCI_DELWORDRIGHTEND: case SCI_DELLINELEFT: case SCI_DELLINERIGHT: case SCI_LINECOPY: @@ -4426,6 +4427,11 @@ pdoc->DeleteChars(currentPos, endWord - currentPos); } break; + case SCI_DELWORDRIGHTEND: { + int endWord = pdoc->NextWordEnd(currentPos, 1); + pdoc->DeleteChars(currentPos, endWord - currentPos); + } + break; case SCI_DELLINELEFT: { int line = pdoc->LineFromPosition(currentPos); int start = pdoc->LineStart(line); @@ -7125,6 +7131,7 @@ case SCI_ZOOMOUT: case SCI_DELWORDLEFT: case SCI_DELWORDRIGHT: + case SCI_DELWORDRIGHTEND: case SCI_DELLINELEFT: case SCI_DELLINERIGHT: case SCI_LINECOPY:
Modified: trunk/scintilla/ScintillaGTK.cxx =================================================================== --- trunk/scintilla/ScintillaGTK.cxx 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/scintilla/ScintillaGTK.cxx 2007-08-16 16:56:17 UTC (rev 1807) @@ -285,9 +285,6 @@
static sptr_t DirectFunction(ScintillaGTK *sciThis, unsigned int iMessage, uptr_t wParam, sptr_t lParam); - -protected: - virtual int KeyCommand(unsigned int iMessage); };
enum { @@ -2723,32 +2720,3 @@ void scintilla_release_resources(void) { Platform_Finalise(); } - -int ScintillaGTK::KeyCommand(unsigned int iMessage) { - switch (iMessage) { - /* Try to act more like a GtkWidget, e.g. GtkEntry. - * The container app should also call SCI_SETWHITESPACECHARS to include punctuation - * chars as whitespace. */ - case SCI_WORDRIGHT: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, 1), 1)); - SetLastXChosen(); - break; - case SCI_WORDRIGHTEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, 1), 1), selStream); - SetLastXChosen(); - break; - case SCI_DELWORDRIGHT: { - int endWord = pdoc->NextWordEnd(currentPos, 1); - pdoc->DeleteChars(currentPos, endWord - currentPos); - } - break; - default: - return ScintillaBase::KeyCommand(iMessage); - } - /* Mimic what ScintillaBase::KeyCommand would do as we're overriding it. */ - if (ac.Active()) - ac.Cancel(); - if (ct.inCallTipMode) - ct.CallTipCancel(); - return 0; -}
Modified: trunk/scintilla/include/Scintilla.h =================================================================== --- trunk/scintilla/include/Scintilla.h 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/scintilla/include/Scintilla.h 2007-08-16 16:56:17 UTC (rev 1807) @@ -499,6 +499,7 @@ #define SCI_ZOOMOUT 2334 #define SCI_DELWORDLEFT 2335 #define SCI_DELWORDRIGHT 2336 +#define SCI_DELWORDRIGHTEND 2518 #define SCI_LINECUT 2337 #define SCI_LINEDELETE 2338 #define SCI_LINETRANSPOSE 2339
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2007-08-16 16:49:17 UTC (rev 1806) +++ trunk/src/document.c 2007-08-16 16:56:17 UTC (rev 1807) @@ -265,6 +265,23 @@ }
+static void setup_sci_keys(ScintillaObject *sci) +{ + // disable some Scintilla keybindings to be able to redefine them cleanly + sci_clear_cmdkey(sci, 'A' | (SCMOD_CTRL << 16)); // select all + sci_clear_cmdkey(sci, 'D' | (SCMOD_CTRL << 16)); // duplicate + sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16)); // line transpose + sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); // line copy + sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16)); // line cut + sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); // line delete + + // use GtkEntry-like word boundaries + sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16), SCI_WORDRIGHTEND); + sci_assign_cmdkey(sci, SCK_RIGHT | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16), SCI_WORDRIGHTENDEXTEND); + sci_assign_cmdkey(sci, SCK_DELETE | (SCMOD_CTRL << 16), SCI_DELWORDRIGHTEND); +} + + /* creates a new tab in the notebook and does all related stuff * finally it returns the index of the created document */ static gint document_create_new_sci(const gchar *filename) @@ -305,13 +322,9 @@ //SSM(sci, SCI_SETWRAPSTARTINDENT, 4, 0); // disable scintilla provided popup menu sci_use_popup(sci, FALSE); - // disable some Scintilla keybinsings to be able to redefine it - sci_clear_cmdkey(sci, 'A' | (SCMOD_CTRL << 16)); // select all - sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16)); // line transpose - sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16)); // line cut - sci_clear_cmdkey(sci, 'L' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); // line delete - sci_clear_cmdkey(sci, 'T' | (SCMOD_CTRL << 16) | (SCMOD_SHIFT << 16)); // line copy
+ setup_sci_keys(sci); + document_apply_update_prefs(new_idx);
sci_set_tab_indents(sci, app->use_tab_to_indent);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.