about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* passing a null pointer to free() is valid; sprinkle a few free->xfree.okan2009-01-232-12/+10
| | | | ok oga@
* Whitespace nit.oga2009-01-231-1/+0
| | | | pointed out by okan.
* Switch to using XInternAtoms for caching the atom numbers. Saves a pileoga2009-01-231-5/+9
| | | | | | of function calls and server roundtrips. ok okan@
* move conf_clear() and add proto.okan2009-01-233-43/+43
| | | | ok todd@ oga@
* Move the keybinding argument to a union to prevent warnings whereoga2009-01-234-116/+126
| | | | | | sizeof(int) != sizeof(void *). This has been annoying me for ages. ok okan@, todd@
* now that pwin is gone gone gone, we no longer have to do the bwidthokan2009-01-223-49/+39
| | | | | | | dance; xevents now able to deal with a border being set (which fixes those annoying movie-watching apps). ok todd@, oga@
* The default font name is strduped, so don't test for default font nameoga2009-01-221-2/+1
| | | | | | (therefore leaking it) when cleaning up a conf struct. ok okan@
* Oops, missed an atom.oga2009-01-221-0/+1
| | | | ok okan@.
* Cache all of the X atoms we use at startup.oga2009-01-224-28/+32
| | | | | | | | Do this instead of querying for them every time we use them. This removes an XXX that has been in there since time began. This will become more important as we move towards supporting netwm. ok todd@, okan@.
* borderwidth as a cwmrc(5) keyword, really helps debuggingtodd2009-01-214-4/+15
| | | | | from okan@ ok oga@
* library dependency ordering matters for static archs, -lXext last in this casetodd2009-01-191-2/+2
| | | | from matthieu@, verified on vax
* remove unusedokan2009-01-172-12/+1
| | | | ok oga@
* Finally fix the really annoying race where if you rapidly switch groups severaloga2009-01-173-19/+23
| | | | | | | | | | | | | | | | | | | | | | times you'd end up losing clients (thinking they had gone away). From the ICCCM (which should not be read without a stiff drink in hand, I made this mistake so you don't have to): to request a window to be withdrawn one should send a synthetic UnmapRequest event when iconified. To request iconification one should just unmap the window. The ICCM further recommends that the synthetic event should just be taken as a cue to withdraw, to deal with legacy clients. Taking a hint from this, rework xev_handle_unmaprequest to correctly detect these situations. A Withdrawn window may come back anywhere, even as a subwindow of something else, so the correct way to handle this state is to forget it ever existed. While i'm here, kill a dumb attempt to notice this in client_delete, and nuke the very unnecessary arguments. Todd confirmed this fixes the `race'. ok todd@, ok ok okan@
* revert just the 'race fix'; more works needs to be ironed out withokan2009-01-161-1/+1
| | | | | | events and state. agreed by oga
* remove pwin, bringing us to one client, one window. we no longer haveokan2009-01-169-242/+64
| | | | | | | | | | | | to push attributes around, so things get a lot simplier, while fixing a few issues in the meantime; original suggestion by Edd Barrett many many moons ago. annoying window placement and race, found in c2k8 by todd, fix by oga! lots of feedback from todd and oga - thanks! "commit that bad boy" oga@
* On startup, don't leak memory when we enumerate existing windows.oga2009-01-151-4/+1
| | | | | | | | The behaviour until now was to ask X for the windows name (which is malloced) then drop that on the floor and do nothing with it. Skip this foolery and just skip the window. I don't believe I never noticed this before! "you can has ok" okan@
* - add missing prototypes.okan2009-01-154-39/+40
| | | | | | | | | - properly name, place and static private functions. - move function which finds the xinerama screen for a coordinate to a more appropriate place while altering its semantics to match others. - tiny bit of style. ok oga@
* better cast; noticed by ray@okan2009-01-131-1/+1
| | | | ok ray@ oga@
* Add -Wall to CFLAGS, it's helped find a few dodgy constructs.oga2009-01-111-0/+2
| | | | ok okan@.
* shortcut_to_name should not be defined as static in a header file. Putoga2009-01-113-7/+6
| | | | | | | it in group.c where it it used most, and add an extern definition for the other users of it. Found by gcc -Wall. ok okan@
* add missing prototypesokan2009-01-111-0/+4
| | | | ok oga@
* better comparison idiom; found with -Wallokan2009-01-111-10/+10
| | | | ok oga@
* - merge grab_sweep() into mousefunc_window_resize().okan2009-01-114-192/+154
| | | | | | | | | | - merge grab_drag() into mousefunc_window_move(). - properly name, proto and static private functions. - since we already do XMoveResizeWindow() and XMoveWindow() in (now) mousefunc_window_resize() and mousefunc_window_move() respectively, client_resize() and client_move() calls are unnecessary. ok oga@
* FcNameParse() manpage lies, cast here.okan2009-01-111-1/+1
| | | | | | found with pcc. ok oga@
* remove unused variablesokan2009-01-112-3/+2
| | | | ok oga@
* If the mousebutton is unknown when we go to grab, don't just print aoga2009-01-081-0/+1
| | | | | | | warning, but also skip the XGrabButton call. Noticed by code inspection by okan@, but we agreed my fix was cleaner. ok okan.
* remove "search should ignore the current window" from list, for theokan2009-01-061-2/+0
| | | | | | current behavior is better... ok oga@
* HasXinerama is an intokan2009-01-061-1/+1
| | | | ok oga@
* remove unused codeokan2009-01-061-2/+0
| | | | ok oga@
* Kill obviously dead variable.oga2008-12-042-4/+1
|
* Don't ignore sigpipe. Everytime cwm forks it execs anyway (so itoga2008-12-031-4/+0
| | | | | | | shouldn't get that signal), and this causes problems for our children since they inherit the ignore. Pointed out by Jacek Masiulani in pr 6010; thanks!
* Xinerama and XRandR dual head support for cwm(1). Now we detect the xrandroga2008-09-297-29/+174
| | | | | | | | | | | reconfiguration events and change our sizes depending on that. We also detect the xinerama screens for maximize, vertmaximize and initial window placement. This could be improved by automatically resizing maximized windows when the screen resolution changes and by moving windows that would be hidden into visible space. Said changes will come shortly. Tested by many. matthieu@ didn't oppose.
* .Bl needs a matching .El. From Martin Toft a while ago, thanks!oga2008-09-221-0/+1
|
* Improve wording of the ``ignore'' directive. From Martin Toft a whileoga2008-09-221-2/+3
| | | | ago, ok okan@ from similar amount of time ago.
* *sigh* Revert the diff that wasn't meant to go in yet.oga2008-09-227-186/+25
| | | | | note to self: When you mean to type cvs commit search.c, don't forget the filename.
* Display the current window title not a previous one in the case ofoga2008-09-228-26/+187
| | | | | ``show all'' in the window search dialogue. Noticed and diff from Tim van der Molen, thanks!
* Keep the exec menu entries sorted.canacar2008-09-031-3/+13
| | | | Go for it okan@
* fix the froggy problem.oga2008-07-223-0/+23
| | | | | | | | | | | | Implement a handler for the MappingEvent, meaning that the keymap has changed. When this happens, ungrab all bindings, update the map, and regrab. Fixes the problem where some keybindings wouldn't work under non us or uk keymaps (especially the .fr map, it seems). Issue noticed by ajacoutot@, ratchov@, and a few people on misc. Based on an initial diff from ratchov@. ok okan.
* We've been handling grabbing wrong all this time (noticed at c2k8).oga2008-07-223-5/+48
| | | | | | | | | | | | add conf_grab() and conf_ungrab, and use them in the keybinding manipulation functions to {,un}grab the binding for all screens we have defined. the lovely little ordering problem comes in here, since when we parse the config initially Screenq is empty, so regrab after we fill the queue, hopefully later reordering will remove this little need and there will be much rejoicing. ok okan.
* split x_setup() into two. dpy_init() for setting up the display andoga2008-07-222-9/+17
| | | | | | | | | | | checking the X config, and x_setup to set up the screens. There's an ordering problem that means that some of this init needs to come after the config is parsed, the rest should ideally happen before though. This is a rough split, it will be refined later. Again, needed for an upcoming change. ok okan.
* Add xu_key_ungrab() and a mirror to xu_key_ungrab(). a couple of changesoga2008-07-222-3/+18
| | | | | | that are coming up depend on it. ok okan.
* Kill screen_init(). it's been stubbed out for a while now. I don't envision itoga2008-07-223-11/+0
| | | | | | coming back in it's current form. ok okan@.
* kill another leftover prototype.oga2008-07-221-1/+0
| | | | ok okan@
* Put back the initialisation of gc in group_cycle. No cookie for okan.oga2008-07-181-0/+1
| | | | Reported by Dan Harnett, thanks!
* move client_vertmaximize to a more sensible location, purely for readability.okan2008-07-151-19/+19
| | | | "don't mind at all" oga@
* save an X call and use what we already have stored.okan2008-07-151-8/+4
| | | | ok oga@
* don't compensate for bwidth twice.okan2008-07-151-2/+2
| | | | ok oga@
* Nm makes more sense than Xr, from Pierre Riteau - thanks!okan2008-07-111-1/+1
|
* Change "a window" to "current window" in documentation. it's more correct.oga2008-07-112-68/+68
| | | | | | While i'm here: Capital letter and full stop in descriptions in cwmrc.5 "looks good - do it" okan@.
* add Xr for cwm(1)okan2008-07-111-2/+3
|