Commit Graph

51 Commits

Author SHA1 Message Date
adnano f609762c4e Add C-Y keybinding to docs 2024-02-27 08:17:38 -05:00
adnano 8bcad262a4 Simplify movewordedge 2024-02-27 08:07:16 -05:00
Amin Bandali c37c3fe38e Add dmenu's Meta (Alt) keybindings
This change adds dmenu's mixture of Emacs+vim-style Meta keybindings.

Also 'Page_Up' and 'Page_Down' were deprecated in upstream xkbcommon,
so replace them with the new 'Prior' and 'Next' names respectively.
2024-02-27 07:54:20 -05:00
Amin Bandali 04dfc06379 Add token matching like dmenu
This change ports dmenu's token matching of space-separated input to
wmenu to match the behaviour of dmenu, with a slightly more verbose
but hopefully more readable implementation.
2024-02-27 07:51:52 -05:00
adnano 96b3c0ef26 Add more rendering functions 2024-02-26 16:44:23 -05:00
adnano f9167689dc Check if selection is not null before dereferencing 2024-02-26 16:31:41 -05:00
adnano c6025455ec Add functions to render pages of items 2024-02-26 16:31:04 -05:00
adnano 628a5d82ee Refactor rendering code 2024-02-26 16:14:04 -05:00
adnano da25fbfb27 Don't set selection if there are no pages 2024-02-26 15:05:37 -05:00
adnano 7284f5958b Don't match items in insert 2024-02-26 15:03:42 -05:00
adnano 48f4a1d2ed Add comments to menu 2024-02-26 14:50:09 -05:00
adnano ce43ccfb75 Add some comments to item and page 2024-02-26 14:42:11 -05:00
adnano ee43ebb783 Rename menu_state to menu 2024-02-26 14:40:18 -05:00
adnano 086211c83c Don't return -1 from render_horizontal_item 2024-02-26 14:29:53 -05:00
adnano e23e215471 Rename menu_item to item 2024-02-26 14:14:11 -05:00
adnano deab01baf1 Mark functions as static 2024-02-26 14:08:18 -05:00
adnano 9edefe1344 Rename item_group to page 2024-02-26 14:06:42 -05:00
adnano 07ac84239e Refactor item paging logic
Determine which items go on which page ahead of time to avoid
calculating it every time. This also fixes an issue where paging from
the back doesn't give the same results as paging from the front.
2024-02-26 12:40:11 -05:00
adnano d23a2c563a Simplify match scrolling 2024-02-26 10:47:35 -05:00
adnano 906b55019e Keep track of end of match list 2024-02-26 10:43:52 -05:00
adnano 542c307ef2 Ignore unrecognized Ctrl keybindings
Currently, unrecognized Ctrl keybindings are treated as if Ctrl wasn't
pressed. For example, Ctrl+q results in q being typed. Instead, ignore
these keypresses.
2024-02-26 06:59:09 -05:00
Amin Bandali cb884725f6 Update keybindings to more closely follow dmenu
There's no need to distinguish between vertical and horizontal mode
for the directional keys.  By not doing so we match dmenu's behaviour
and also reduce code duplication.
2024-02-26 06:31:38 -05:00
adnano 5ef1e637bf Make scdoc dependency optional 2024-02-04 15:47:18 -05:00
adnano 1ef3f6a9b6 Version 0.1.6 2024-01-21 19:50:34 -05:00
adnano d139ebae8f pool-buffer: Fix type conversion issues 2023-12-28 11:59:02 -05:00
adnano 69a7078e01 Check the return value of pipe
On some systems, pipe is declared with the attribute warn_unused_result,
so we have to check the return value.
2023-12-28 11:42:50 -05:00
adnano 3ec74a0f2f pool-buffer: Reduce struct padding 2023-12-28 11:28:08 -05:00
adnano d77ff0e64d Fix various type issues 2023-12-28 11:26:38 -05:00
adnano ad40b9173c Version 0.1.5 2023-12-25 08:33:30 -05:00
Piotr Stefański e120b9156e Fix build failure when compiling in release
Compiling with --buildtype=release fails with message:

../main.c:935:17: error: argument 2 null where non-null expected [-Werror=nonnull]
  935 |                 memcpy(state->text + state->cursor, s, n);

GCC only produces this error with optimizations enabled. Looking at
the build output I assume this happens because it tries to inline the
function.
2023-10-31 15:12:41 -04:00
adnano adf5cda6e1 Implement clipboard paste support
References: https://todo.sr.ht/~adnano/wmenu/4
2023-07-28 03:01:34 -04:00
adnano e3da93aed8 Bump version to 0.1.4 2023-07-15 18:55:07 -04:00
adnano 554f3e7445 pango: Remove unused format specifier 2023-07-15 18:51:45 -04:00
Mykyta Holubakha ccca01d3cd Render after reading stdin
This allows seeing option list without doing any input, like in original dmenu.
2023-07-15 18:35:17 -04:00
Mykyta Holubakha 62e9584977 Drop render_frame on surface_enter 2023-07-15 18:35:15 -04:00
Nikita Ivanov 9fb3ffa522 Fix crash when some line contains % 2023-06-05 09:33:20 -04:00
adnano bbd82569bb readme: Tweak wording 2023-03-20 19:03:03 -04:00
adnano 5959a421aa Update README.md 2023-03-20 18:44:48 -04:00
adnano 7c1e28b201 Fix potential buffer overflow
Calling strncpy where the size of the string to copy is equal to the
size of the destination can potentially lead to a buffer overflow. To
fix this, copy only what is needed with memcpy, and explicitly terminate
the string with a null character.
2023-02-26 07:50:54 -05:00
adnano a7df5b270d Bump version 2023-02-07 13:42:56 -05:00
adnano 5ed249e3f3 Fix buffer size not divisible by scale 2023-02-01 09:37:02 -05:00
adnano 5db5b3a7c7 docs: Document new bindings 2022-12-03 10:49:24 -05:00
adnano 272540c7fb Drop xdg-output-unstable-v1
Closes: https://todo.sr.ht/~adnano/wmenu/2
2022-12-02 12:00:28 -05:00
adnano 38b4bae4bd Fix move to end of word 2022-12-02 11:35:30 -05:00
adnano 972277a5e0 Support basic Emacs-style line-editing bindings
Implements: https://todo.sr.ht/~adnano/wmenu/3
2022-12-02 10:09:32 -05:00
adnano 8cc6a22737 Support number pad keys 2022-12-02 09:29:15 -05:00
adnano 01a343ed12 README: Mention Sway 2022-04-17 13:53:11 -04:00
lemontree f8aa02f55b README: add contributing section 2022-04-17 13:45:24 -04:00
adnano 1f9b23e412 Adjust line height 2022-04-17 13:27:28 -04:00
adnano decd2452de Implement vertical list support
Implements: https://todo.sr.ht/~adnano/wmenu/1
2022-04-17 13:15:09 -04:00