Pull out the behaviour in grab_label and search_start into one utility

function menu_filter(). The plan is to eventually merge in grab_menu too.
Shrinks the code a fair bit.

Also, change XMaskEvent for XWindowEvent to prevent getting exposes for other
windows. This is particuarly noticable on slow machines with a LOT of xterms
(todd, you're an odd man).

ok okan@, todd@.
This commit is contained in:
oga
2008-05-20 14:50:51 +00:00
parent 3bb0b451f7
commit 1e46ba72f7
8 changed files with 340 additions and 389 deletions

View File

@@ -152,6 +152,10 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
sc->display = x_screenname(which);
sc->which = which;
sc->rootwin = RootWindow(X_Dpy, which);
sc->xmax = DisplayWidth(X_Dpy, sc->which);
sc->ymax = DisplayHeight(X_Dpy, sc->which);
XAllocNamedColor(X_Dpy, DefaultColormap(X_Dpy, which),
"black", &sc->fgcolor, &tmp);
XAllocNamedColor(X_Dpy, DefaultColormap(X_Dpy, which),
@@ -204,6 +208,8 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
font_init(sc);
DefaultFont = font_getx(sc, Conf.DefaultFontName);
sc->fontheight = font_ascent(DefaultFont) +
font_descent(DefaultFont) + 1;
/*
* XXX - this should *really* be in screen_init(). ordering
@@ -213,7 +219,6 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
/* Initialize menu window. */
grab_menuinit(sc);
search_init(sc);
/* Deal with existing clients. */
XQueryTree(X_Dpy, sc->rootwin, &w0, &w1, &wins, &nwins);