mirror of
https://github.com/mintycube/dmenu.git
synced 2024-10-22 12:05:48 +00:00
Adding preselect patch
This commit is contained in:
parent
984476ba94
commit
478f49b1c4
@ -15,7 +15,7 @@ Refer to [https://tools.suckless.org/dmenu/](https://tools.suckless.org/dmenu/)
|
|||||||
|
|
||||||
### Changelog:
|
### Changelog:
|
||||||
|
|
||||||
2020-08-08 - Added the symbols and managed patches
|
2020-08-08 - Added the symbols, managed and preselect patches
|
||||||
|
|
||||||
2020-08-05 - Added the grid, highlight, highpriority, dynamic options and numbers patches
|
2020-08-05 - Added the grid, highlight, highpriority, dynamic options and numbers patches
|
||||||
|
|
||||||
@ -117,6 +117,10 @@ Refer to [https://tools.suckless.org/dmenu/](https://tools.suckless.org/dmenu/)
|
|||||||
- [prefix-completion](https://tools.suckless.org/dmenu/patches/prefix-completion/)
|
- [prefix-completion](https://tools.suckless.org/dmenu/patches/prefix-completion/)
|
||||||
- changes the behaviour of matched items and the Tab key to allow tab completion
|
- changes the behaviour of matched items and the Tab key to allow tab completion
|
||||||
|
|
||||||
|
- [preselect](https://tools.suckless.org/dmenu/patches/preselect/)
|
||||||
|
- adds an option `-ps` to preselect an item by providing the index that should be pre-selected
|
||||||
|
*
|
||||||
|
|
||||||
- [printinputtext](https://tools.suckless.org/dmenu/patches/printinputtext/)
|
- [printinputtext](https://tools.suckless.org/dmenu/patches/printinputtext/)
|
||||||
- this patch adds a flag (-t) which makes Return key ignore selection and print the input text to stdout
|
- this patch adds a flag (-t) which makes Return key ignore selection and print the input text to stdout
|
||||||
- the flag basically swaps the functions of Return and Shift+Return hotkeys
|
- the flag basically swaps the functions of Return and Shift+Return hotkeys
|
||||||
|
25
dmenu.c
25
dmenu.c
@ -94,6 +94,9 @@ static int managed = 0;
|
|||||||
#if PRINTINPUTTEXT_PATCH
|
#if PRINTINPUTTEXT_PATCH
|
||||||
static int use_text_input = 0;
|
static int use_text_input = 0;
|
||||||
#endif // PRINTINPUTTEXT_PATCH
|
#endif // PRINTINPUTTEXT_PATCH
|
||||||
|
#if PRESELECT_PATCH
|
||||||
|
static unsigned int preselected = 0;
|
||||||
|
#endif // PRESELECT_PATCH
|
||||||
|
|
||||||
static Atom clip, utf8;
|
static Atom clip, utf8;
|
||||||
#if WMTYPE_PATCH
|
#if WMTYPE_PATCH
|
||||||
@ -1049,8 +1052,23 @@ run(void)
|
|||||||
#endif // NON_BLOCKING_STDIN_PATCH
|
#endif // NON_BLOCKING_STDIN_PATCH
|
||||||
{
|
{
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
|
#if PRESELECT_PATCH
|
||||||
|
int i;
|
||||||
|
#endif // PRESELECT_PATCH
|
||||||
|
|
||||||
while (!XNextEvent(dpy, &ev)) {
|
while (!XNextEvent(dpy, &ev)) {
|
||||||
|
#if PRESELECT_PATCH
|
||||||
|
if (preselected) {
|
||||||
|
for (i = 0; i < preselected; i++) {
|
||||||
|
if (sel && sel->right && (sel = sel->right) == next) {
|
||||||
|
curr = next;
|
||||||
|
calcoffsets();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
drawmenu();
|
||||||
|
preselected = 0;
|
||||||
|
}
|
||||||
|
#endif // PRESELECT_PATCH
|
||||||
if (XFilterEvent(&ev, win))
|
if (XFilterEvent(&ev, win))
|
||||||
continue;
|
continue;
|
||||||
switch(ev.type) {
|
switch(ev.type) {
|
||||||
@ -1379,6 +1397,9 @@ usage(void)
|
|||||||
#if LINE_HEIGHT_PATCH
|
#if LINE_HEIGHT_PATCH
|
||||||
" [-h height]"
|
" [-h height]"
|
||||||
#endif // LINE_HEIGHT_PATCH
|
#endif // LINE_HEIGHT_PATCH
|
||||||
|
#if PRESELECT_PATCH
|
||||||
|
" [-ps index]"
|
||||||
|
#endif // PRESELECT_PATCH
|
||||||
#if NAVHISTORY_PATCH
|
#if NAVHISTORY_PATCH
|
||||||
" [-H histfile]"
|
" [-H histfile]"
|
||||||
#endif // NAVHISTORY_PATCH
|
#endif // NAVHISTORY_PATCH
|
||||||
@ -1529,6 +1550,10 @@ main(int argc, char *argv[])
|
|||||||
#endif // HIGHLIGHT_PATCH | FUZZYHIGHLIGHT_PATCH
|
#endif // HIGHLIGHT_PATCH | FUZZYHIGHLIGHT_PATCH
|
||||||
else if (!strcmp(argv[i], "-w")) /* embedding window id */
|
else if (!strcmp(argv[i], "-w")) /* embedding window id */
|
||||||
embed = argv[++i];
|
embed = argv[++i];
|
||||||
|
#if PRESELECT_PATCH
|
||||||
|
else if (!strcmp(argv[i], "-ps")) /* preselected item */
|
||||||
|
preselected = atoi(argv[++i]);
|
||||||
|
#endif // PRESELECT_PATCH
|
||||||
#if DYNAMIC_OPTIONS_PATCH
|
#if DYNAMIC_OPTIONS_PATCH
|
||||||
else if (!strcmp(argv[i], "-dy")) /* dynamic command to run */
|
else if (!strcmp(argv[i], "-dy")) /* dynamic command to run */
|
||||||
dynamic = argv[++i];
|
dynamic = argv[++i];
|
||||||
|
@ -163,6 +163,12 @@
|
|||||||
*/
|
*/
|
||||||
#define PREFIXCOMPLETION_PATCH 0
|
#define PREFIXCOMPLETION_PATCH 0
|
||||||
|
|
||||||
|
/* This patch adds an option -ps to specify an item by providing the index that should be
|
||||||
|
* pre-selected.
|
||||||
|
* https://tools.suckless.org/dmenu/patches/preselect/
|
||||||
|
*/
|
||||||
|
#define PRESELECT_PATCH 0
|
||||||
|
|
||||||
/* This patch adds a flag (-t) which makes Return key to ignore selection and print the input
|
/* This patch adds a flag (-t) which makes Return key to ignore selection and print the input
|
||||||
* text to stdout. The flag basically swaps the functions of Return and Shift+Return hotkeys.
|
* text to stdout. The flag basically swaps the functions of Return and Shift+Return hotkeys.
|
||||||
* https://tools.suckless.org/dmenu/patches/printinputtext/
|
* https://tools.suckless.org/dmenu/patches/printinputtext/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user