From 0853e00683b88605ba19598de2389bd391e0e9eb Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Thu, 8 Nov 2007 15:01:36 -0500 Subject: Moved GTK/GDK keypress mask logic from lua_interface.c to textadept.c. --- src/lua_interface.c | 8 ++++---- src/textadept.c | 5 ++++- src/textadept.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lua_interface.c b/src/lua_interface.c index 7f757d0a..ba6de56d 100644 --- a/src/lua_interface.c +++ b/src/lua_interface.c @@ -428,12 +428,12 @@ bool l_handle_event(const char *s, const char *arg) { return l_call_function(1, 1); } -bool l_handle_keypress(int keyval, GdkEventKey *event) { +bool l_handle_keypress(int keyval, bool shift, bool control, bool alt) { if (!l_is_ta_table_function("events", "keypress")) return false; lua_pushinteger(lua, keyval); - lua_pushboolean(lua, (event->state & GDK_SHIFT_MASK) > 0 ? 1 : 0); - lua_pushboolean(lua, (event->state & GDK_CONTROL_MASK) > 0 ? 1 : 0); - lua_pushboolean(lua, (event->state & GDK_MOD1_MASK) > 0 ? 1 : 0); + lua_pushboolean(lua, shift); + lua_pushboolean(lua, control); + lua_pushboolean(lua, alt); return l_call_function(4, 1); } diff --git a/src/textadept.c b/src/textadept.c index ebe4666b..a2d8de70 100644 --- a/src/textadept.c +++ b/src/textadept.c @@ -275,7 +275,10 @@ static void t_command(GtkWidget *editor, gint wParam, gpointer, gpointer) { } static bool t_keypress(GtkWidget*, GdkEventKey *event, gpointer) { - return l_handle_keypress(event->keyval, event); + bool shift = event->state & GDK_SHIFT_MASK; + bool control = event->state & GDK_CONTROL_MASK; + bool alt = event->state & GDK_MOD1_MASK; + return l_handle_keypress(event->keyval, shift, control, alt); } static bool w_focus(GtkWidget*, GdkEventFocus*, gpointer) { diff --git a/src/textadept.h b/src/textadept.h index 1b4344e9..af53d0f9 100644 --- a/src/textadept.h +++ b/src/textadept.h @@ -69,7 +69,7 @@ void l_set_buffer_global(ScintillaObject *sci); void l_handle_error(lua_State *lua, const char *errmsg=0); bool l_handle_event(const char *e); bool l_handle_event(const char *e, const char *arg); -bool l_handle_keypress(int keyval, GdkEventKey *event); +bool l_handle_keypress(int keyval, bool shift, bool control, bool alt); void l_handle_scnnotification(SCNotification *n); void l_ta_command(const char *command); -- cgit v1.2.3