Commit graph

52 commits

Author SHA1 Message Date
adnano
906f7ccee8 Improve formatting of docs 2024-02-27 08:37:17 -05:00
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