shod

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 33eddb5a6668620e9bc49a75f4ea4751e50621d3
parent 5c98f99ecd70f6775455c912c6380d836a04b843
Author: Lucas de Sena <lucas@seninha.org>
Date:   Wed, 14 Dec 2022 20:12:31 -0300

fix container focus when a menu is open

also fix compilation warning

Diffstat:
Mshod.h | 2+-
Mxevents.c | 11+++++++----
Mxmenu.c | 2+-
Mxutil.c | 2+-
Mxutil.h | 4+++-
5 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/shod.h b/shod.h @@ -681,7 +681,7 @@ void menuincrmove(struct Menu *menu, int x, int y); void menuconfigure(struct Menu *menu, unsigned int valuemask, XWindowChanges *wc); void menumoveresize(struct Menu *menu); void menudecorate(struct Menu *menu, int titlepressed); -void menuaddraise(struct Menu *menu); +void menufocusraise(struct Menu *menu); void menuraise(struct Menu *menu); void menuplace(struct Monitor *mon, struct Menu *menu); diff --git a/xevents.c b/xevents.c @@ -1251,10 +1251,13 @@ xeventbuttonpress(XEvent *e) } /* raise menu above others or focus tab */ - if (menu != NULL) - menuaddraise(menu); - else if ((wm.focused == NULL || tab != wm.focused->selcol->selrow->seltab) && ev->button == Button1) - tabfocus(tab, 1); + if (ev->button == Button1) { + if (menu != NULL) { + menufocusraise(menu); + } else { + tabfocus(tab, 1); + } + } /* raise client */ if (ev->button == Button1) { diff --git a/xmenu.c b/xmenu.c @@ -129,7 +129,7 @@ menufocus(struct Menu *menu) /* put menu on beginning of menu list */ void -menuaddraise(struct Menu *menu) +menufocusraise(struct Menu *menu) { menudelraise(menu); TAILQ_INSERT_HEAD(&wm.menuq, (struct Object *)menu, entry); diff --git a/xutil.c b/xutil.c @@ -261,7 +261,7 @@ xinitvisual(void) } void -xiniterrfunc(int (*xerror)(Display *, XErrorEvent *), int (**xerrorxlib)()) +xiniterrfunc(XErrorFunc xerror, XErrorFunc *xerrorxlib) { *xerrorxlib = XSetErrorHandler(xerror); } diff --git a/xutil.h b/xutil.h @@ -72,6 +72,8 @@ enum { ATOM_LAST }; +typedef int (*XErrorFunc)(Display *, XErrorEvent *); + extern Visual *visual; extern Colormap colormap; extern unsigned int depth; @@ -96,5 +98,5 @@ Atom getatomprop(Window win, Atom prop); void initatoms(void); void initatom(int atomenum); void xinit(void); -void xiniterrfunc(int (*)(Display *, XErrorEvent *), int (**)()); +void xiniterrfunc(XErrorFunc, XErrorFunc *); void xinitvisual(void);