aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/textadept.c
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-09-19 17:43:04 -0400
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-09-19 17:43:04 -0400
commit86fbeb5f24a0a5b7a116ba2ac7ea6f1a07ba02f2 (patch)
tree8e5dfb1d23afda63c9d52fbe94a81f510ec89800 /src/textadept.c
parent14e524cf217250388d374433cf6f3241f66e4e01 (diff)
Added `events.COMMAND_TEXT_CHANGED`.
This is analagous to `events.FIND_TEXT_CHANGED`.
Diffstat (limited to 'src/textadept.c')
-rw-r--r--src/textadept.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/textadept.c b/src/textadept.c
index 9b1a8b8a..d0edf402 100644
--- a/src/textadept.c
+++ b/src/textadept.c
@@ -1913,8 +1913,12 @@ static void emit_notification(lua_State *L, SCNotification *n) {
/** Signal for a Scintilla notification. */
static void notified(Scintilla *view, int _, SCNotification *n, void *L) {
- if (focused_view == view || n->nmhdr.code == SCN_URIDROPPED) {
- if (focused_view != view) view_focused(view, L);
+ if (view == command_entry) {
+ if (n->nmhdr.code == SCN_MODIFIED &&
+ (n->modificationType & (SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT)))
+ emit(L, "command_text_changed", -1);
+ } else if (view == focused_view || n->nmhdr.code == SCN_URIDROPPED) {
+ if (view != focused_view) view_focused(view, L);
emit_notification(L, n);
} else if (n->nmhdr.code == SCN_FOCUSIN)
view_focused(view, L);
@@ -2348,6 +2352,7 @@ static void new_window() {
command_entry = scintilla_new();
gtk_widget_set_size_request(command_entry, 1, 1);
+ g_signal_connect(command_entry, SCINTILLA_NOTIFY, G_CALLBACK(notified), lua);
g_signal_connect(command_entry, "key-press-event", G_CALLBACK(keypress), lua);
g_signal_connect(
command_entry, "focus-out-event", G_CALLBACK(focus_lost), lua);
@@ -2371,7 +2376,7 @@ static void new_window() {
dummy_view = scintilla_new();
#elif CURSES
pane = new_pane(new_view(0)), resize_pane(pane, LINES - 2, COLS, 1, 0);
- command_entry = scintilla_new(NULL, NULL);
+ command_entry = scintilla_new(notified, lua);
wresize(scintilla_get_window(command_entry), 1, COLS);
mvwin(scintilla_get_window(command_entry), LINES - 2, 0);
dummy_view = scintilla_new(NULL, NULL);