diff --git a/platform_linux/linux_4ed.cpp b/platform_linux/linux_4ed.cpp index bbe92df7..746e4dc7 100644 --- a/platform_linux/linux_4ed.cpp +++ b/platform_linux/linux_4ed.cpp @@ -165,6 +165,8 @@ struct Linux_Vars { int xkb_event; int xkb_group; // active keyboard layout (0-3) + Key_Mode key_mode; + int epoll; int step_timer_fd; u64 last_step_time; diff --git a/platform_linux/linux_4ed_functions.cpp b/platform_linux/linux_4ed_functions.cpp index 8604dfc4..58f781ba 100644 --- a/platform_linux/linux_4ed_functions.cpp +++ b/platform_linux/linux_4ed_functions.cpp @@ -796,5 +796,10 @@ system_get_keyboard_modifiers(Arena* arena){ return(copy_modifier_set(arena, &linuxvars.input.pers.modifiers)); } +function +system_set_key_mode_sig(){ + linuxvars.key_mode = mode; +} + // NOTE(inso): to prevent me continuously messing up indentation // vim: et:ts=4:sts=4:sw=4 diff --git a/platform_mac/mac_4ed.mm b/platform_mac/mac_4ed.mm index f9e76b27..a1669dd2 100644 --- a/platform_mac/mac_4ed.mm +++ b/platform_mac/mac_4ed.mm @@ -181,6 +181,8 @@ struct Mac_Vars { Mac_Input_Chunk input_chunk; b8 lctrl_lalt_is_altgr; + Key_Mode key_mode; + b8 full_screen; b8 do_toggle; b32 send_exit_signal; diff --git a/platform_mac/mac_4ed_functions.mm b/platform_mac/mac_4ed_functions.mm index 379ceb18..d4911321 100644 --- a/platform_mac/mac_4ed_functions.mm +++ b/platform_mac/mac_4ed_functions.mm @@ -933,6 +933,11 @@ system_get_keyboard_modifiers_sig(){ return(result); } +function +system_set_key_mode_sig(){ + mac_vars.key_mode = mode; +} + //////////////////////////////// /**********************/ diff --git a/ship_files/changes.txt b/ship_files/changes.txt index 22cc9efa..b9861602 100644 --- a/ship_files/changes.txt +++ b/ship_files/changes.txt @@ -1,7 +1,9 @@ 4.1.6 + + In config.4coder "bind_by_physical_key" uses a key-layout that does not change with language + Fix: notepad like mode scrolling only creates selection when holding mouse L-buttoon + Fix: on windows the window has the 4coder icon + + Fix: by default platform layer uses key codes arranged by the system language 4.1.5 + MAJOR: Scratch_Blocks now take arena pointer parameters in their constructor to specify arenas that should be treated as having distinct lifetimes, without doing this it is possible that a local scratch and another arena will actually refer to the same allocator and freeing the local scratch will also free memory that was meant to be in a separate arena.