(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
--- a/console.c Mon May 30 15:50:20 2005 +0000
+++ b/console.c Mon May 30 16:03:21 2005 +0000
@@ -151,9 +151,13 @@
SetWindowDirty(w);
}
break;
- case (WKC_CTRL | 'L'):
+ case (WKC_CTRL | 'L'):
IConsoleCmdExec("clear");
break;
+ case (WKC_CTRL | 'U'):
+ DeleteTextBufferAll(&_iconsole_cmdline);
+ SetWindowDirty(w);
+ break;
case WKC_BACKSPACE: case WKC_DELETE:
if (DeleteTextBufferChar(&_iconsole_cmdline, e->keypress.keycode)) {
IConsoleResetHistoryPos();
--- a/gui.h Mon May 30 15:50:20 2005 +0000
+++ b/gui.h Mon May 30 16:03:21 2005 +0000
@@ -108,6 +108,7 @@
int HandleEditBoxKey(Window *w, int wid, WindowEvent *we);
bool HandleCaret(Textbuf *tb);
+void DeleteTextBufferAll(Textbuf *tb);
bool DeleteTextBufferChar(Textbuf *tb, int delmode);
bool InsertTextBufferChar(Textbuf *tb, byte key);
bool InsertTextBufferClipboard(Textbuf *tb);
--- a/misc_gui.c Mon May 30 15:50:20 2005 +0000
+++ b/misc_gui.c Mon May 30 16:03:21 2005 +0000
@@ -784,6 +784,17 @@
}
/**
+ * Delete every character in the textbuffer
+ * @param tb @Textbuf buffer to be emptied
+ */
+void DeleteTextBufferAll(Textbuf *tb)
+{
+ memset(tb->buf, 0, tb->maxlength);
+ tb->length = tb->width = 0;
+ tb->caretpos = tb->caretxoffs = 0;
+}
+
+/**
* Insert a character to a textbuffer. If maxlength is zero, we don't care about
* the screenlength but only about the physical length of the string
* @param tb @Textbuf type to be changed
@@ -875,6 +886,10 @@
if (InsertTextBufferClipboard(&WP(w, querystr_d).text))
InvalidateWidget(w, wid);
break;
+ case (WKC_CTRL | 'U'):
+ DeleteTextBufferAll(&WP(w, querystr_d).text);
+ InvalidateWidget(w, wid);
+ break;
case WKC_BACKSPACE: case WKC_DELETE:
if (DeleteTextBufferChar(&WP(w, querystr_d).text, we->keypress.keycode))
InvalidateWidget(w, wid);