happens there's no way to get it back. Also, stop resize making a
windows size negative or zero. X does not like that one bit.
Diff from Martynas. Ok okan@.
The problem that's causing us to lose windows is that rapid hiding and
unhiding causes a backlog of X events, so we lose track of client state,
and delete cc->pwin when we should not. A proper fix will arrive when it's been
worked out.
you do this is ugly. Also remove mod2 (numlock) and mod3 (odd) from the
list of keybinding modifiers. They don't make much sense here.
based on a heavily modified diff from Martynas.
ok okan.
binding, this expose another issue that's still being debugged.
Issue pointed out by Dan Harnett, thanks!
While i'm here KNF and rework the logic to not be ass-backwards.
ok okan.
- if no config file, continue silently and apply defaults
- if config file, parse and move on
- if config file specified but not found, error out
ok oga@
found by (among others) todd@ when you have a lot of clients and do something
that maps and umaps a lot of windows fast.
Debugged with aid of gdb, todd, okan and NULL pointers in a pizza place in
edmonton while waiting an inordinately long time for food.
ok okan@, todd@
search dialogues to be manipulated with the mouse, too. It also allows
me to shrink the codebase further by killing grab_menu().
One known issue with highlighting the first entry in a search dialogue,
that'll be fixed soonish.
ok okan@, tested by Edd Barrett and todd@.
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@.
case-insensitive. since this was the only use of normalizing input,
simplify as well.
allows one to exec with mixed case unmatched commands.
"works for me" oga@
mru getting the order messed up when gvim/xpdf et all steal key events.
While i'm here, change the logic in client_cyclenext() to use break instead
of goto, it's nicer that way.
Thirdly, instead of two different kbfuncs, just use the one and a flag.
"put your cycle diff in so I can pkg_delete gvim" okan@
idea for the
"slightly-less-abhorrent-hack-but-a-hack-nonetheless-TM" from oga@
grab and ungrab the keyboard to get around some silly X apps that like
stealing events
ok oga@
1) it used TAILQ_FOREACH() when it's removing entrys from the list, this
is bad.
2) We didn't free key, so there was a small memleak too.
also rework conf_bindname's logic slightly to be more simple.
ok okan@
Since it's only used once just put the (simplified) logic into
conf_client() instead. This means we can kill an enum and
CONF_IGNORECASE, too.
ok okan@
corresponds directly to the static list of group names. Just use the
static list and stop strdup()ing a new version for the context struct.
Since that never got freed this also fixes a small memleak.
Kill some unused variables while i'm here.
ok okan@