aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
* Stop keyboard move moving the window utterly off the screen. If thatoga2008-06-25-3/+15
| | | | | | | 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@.
* Don't link "-lX11 -lXau -lXdmcp" twice.oga2008-06-19-3/+3
| | | | From Martin Toft, thanks!
* No need to map/unmap the window on hide/show since we already do theoga2008-06-18-3/+1
| | | | | | same to its parent. "makes sense" okan@.
* Revert previous "fix" it introduces new issues of its own.oga2008-06-18-2/+2
| | | | | | | 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.
* missed one mouse functionokan2008-06-17-1/+2
| | | | noticed by oga
* Ignore caps lock and numlock for keyboard bindings. The way Xlib makesoga2008-06-17-27/+30
| | | | | | | | | 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.
* Just rework the mouse binding calculation on event to look like theoga2008-06-17-16/+14
| | | | | | | | kbfunc one. Makes the code a lot easier to read. Fixes a bug i introduced in the last commit here. ok okan.
* The mousebinding code missing a break once it had found the correctoga2008-06-17-17/+18
| | | | | | | | | 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.
* Make this not crash when compiled with -g.mk2008-06-16-8/+5
| | | | | | Found by myself, analysis by kurt@, fix by me with input from otto. ``Just get some fix in...'' deraadt
* Rip out and burn the HASH_* stuff. We don't need a SPLAY tree for one font.oga2008-06-15-227/+61
| | | | | | | makes the code a lot simpler. While here rearrange the font handling functions to be less shit. ok and help okan@.
* (mostly) proper xshape event supportokan2008-06-14-11/+22
| | | | ok oga@
* unbreakokan2008-06-14-2/+2
|
* slightly alter the semantics of config files:okan2008-06-14-4/+11
| | | | | | | | - 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@
* confable menu and window mouse bindings from rivo nurges (thanks!) withokan2008-06-14-107/+335
| | | | | | some minor fixups, man page bits and knf. ok oga@
* finally document functions that can be bound, removing the need to haveokan2008-06-13-7/+107
| | | | | | name_to_kbfunc[] around. feedback jmc@, ok oga@
* Don't client_delete() on an Unmap event, only do that on a client delete event.oga2008-06-13-15/+3
| | | | | | | | | | 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@
* kill another long gone protookan2008-06-12-2/+1
|
* remove old (moved) codeokan2008-06-12-15/+1
| | | | ok oga@
* instead of forcing the ptr in the middle everytime, be more 'calm'; keepokan2008-06-12-10/+15
| | | | | | | | the ptr still unless it moves out-of-bounds, then just follow the edge. brought up by todd@ ok oga@
* place the pointer in the middle of the window after resizing with grab,okan2008-06-12-1/+3
| | | | | | | | just like keyboard resize. from Edd Barrett ok oga@
* ignore if non-zero expose events, for we could be covered by multipleokan2008-06-12-2/+2
| | | | | | windows; merely an optimization. ok oga@
* re-work client_placecalc()okan2008-06-12-45/+29
| | | | | | | - make sure new clients sit inside the current screen - respect 'gap' placement on new clients ok oga@
* Enter -> Return, to be consistant and correct.okan2008-06-05-5/+5
| | | | | | found the hard way by johan and discovered by oga. "do it" oga@
* prevent trying to exec a null char; could potentially happen with aokan2008-06-05-1/+1
| | | | | | canceled or empty searchstr. ok oga@
* actually honor termpath and lockpath if specified in cwmrc.okan2008-06-05-6/+6
| | | | "now" oga@
* "Meta is a perfectly well defined concept in X (The keys bound to theokan2008-06-03-3/+3
| | | | Meta_L or Meta_R keysysm). no need to redefine it roughly there" - matthieu@
* make sure to take bwdith into account when placing a new window.okan2008-05-23-4/+3
| | | | ok oga@
* Grab the keyboard when we initialise the menu. This stops the keyboardoga2008-05-23-0/+5
| | | | | | shortcut code stealing our events in some cases. "put 'er in" okan@.
* Make menu_filter handle mouse movement too. This enables the keyboardoga2008-05-21-158/+147
| | | | | | | | | | 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@.
* Pull out the behaviour in grab_label and search_start into one utilityoga2008-05-20-396/+347
| | | | | | | | | | | 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@.
* General cleanup.oga2008-05-19-22/+22
| | | | ok okan@.
* stop normalizing search input; searching and matching are stillokan2008-05-19-11/+8
| | | | | | | | | 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@
* Function prototypes should not have parameter names in them. These mustoga2008-05-19-12/+12
| | | | | | have been missed last time i knfed this. ok okan.
* client_cyclenext() -> client_cycle() since we now pass an arg.okan2008-05-19-7/+6
| | | | | | removes a stray proto as well. discussed with and ok oga@
* allow an autogroup value of 0 to mean no group. This means you can setoga2008-05-19-8/+15
| | | | | | | | | automatically "sticky" (in the traditional sense of the word) windows in autogroup mode. Based on an initial diff from Andrew Fresh, thanks! ok okan@.
* as done with cycle/rcycle, make prev/next group switching one kbfuncsokan2008-05-19-32/+25
| | | | | | and use a flag; adjusted to match and rename to {r,}cycle. "ok, since i came up with the same thing" oga@
* Use the XGrabKeyboard hack in for alt-tabbing as well. This stops theoga2008-05-19-14/+17
| | | | | | | | | | | 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@
* finally implement keyboard binding for group togglingokan2008-05-19-7/+29
| | | | | | | | | | 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@
* send the correct x/y coordinates to XConfigureWindow()okan2008-05-18-3/+3
| | | | | | fixes some windows that seem as if they don't fit; noticed by Edd Barrett. ok oga@
* remove extra calls to client_draw_border()okan2008-05-18-6/+2
| | | | ok oga@
* fix backwards logic in example; found by oga@okan2008-05-18-3/+3
|
* Fix two problems with conf_unbind():oga2008-05-18-8/+10
| | | | | | | | | | 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@
* Kill conf_get_int(), it was a silly function anyway.oga2008-05-18-52/+13
| | | | | | | | 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@
* group_ctx->name is only used in this one function, and for now itoga2008-05-18-10/+4
| | | | | | | | | | 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@
* When we're cleaning out the lists in parse_config and conf_clear it's aoga2008-05-18-37/+17
| | | | | | | lot simpler just to do while (entry = TAILQ_FIRST(head)) than to do a for () over the whole lot. Simpler, shorter and probably faster. ok okan@
* - re-order and mostly re-write cwmrc(5)okan2008-05-18-141/+124
| | | | | | | | - merge example config file into cwmrc(5) and remove (little good in here) feedback from jmc@ - thanks! ok simon@
* fix cwm's current XShape support from Edd Barrett -thanks.okan2008-05-17-18/+28
| | | | | | XShape events should be handled at some point. ok oga@
* KNF, no binary change.oga2008-05-15-38/+36
| | | | From Pierre Riteau. Thanks!
* tiny bit of knfokan2008-05-15-14/+6
| | | | ok oga@
* Signal handler of SIGCHLD calls waitpid() which sets errno on error. Totobias2008-05-06-1/+4
| | | | | | avoid clubbering of errno in normal context, save_errno got introduced. ok oga