summaryrefslogtreecommitdiff
path: root/app/cwm
AgeCommit message (Collapse)Author
2022-01-27Add group-last command that shows only the previously active group; ok okanop
2021-12-24Allow bare numbers for key and mouse bindings; taken from similarOkan Demirmen
support in other parse.y's; from Leon Fischer <lfischer@airmail.cc>.
2021-11-22sync parse.y changes from base; ok naddy@Okan Demirmen
original from naddy@: > Don't declare variables as "unsigned char *" that are passed to > functions that take "char *" arguments. Where such chars are > assigned to int or passed to ctype functions, explicitly cast them > to unsigned char. > > For OpenBSD's clang, -Wpointer-sign has been disabled by default, > but when the parse.y code was built elsewhere, the compiler would > complain. > > With help from millert@ > ok benno@ deraadt@
2021-11-19Do not attempt to grab keys without a keycode; this incidentally allowsOkan Demirmen
XF86 keys support. found and fix by Luis Henriques <henrix@camandro.org>
2021-04-22Keep pointer within window on maximize/fullscreen togglekn
Spawn a window, maximize it in any way, move the cursor to a window border that is not on the screen's edge and unmaximize again: While the window goes back the cursor stays at the screen's edge, i.e. focus is lost to the underlaying window. Moving, resizing, tiling or snapping windows in any way always moves the cursor along iff needed, e.g. using MS-[hjkl] to move a small window from the center to the edge keeps the cursor within window borders -- no matter what you do with the keyboard, focus stays on that window. Make CM-f, CM-m, CM-equal and CMS-equal (default bindings) for toggling full-screen mode, maximization, vertical maximization and horizontal maximization of the current window drag the cursor along if needed as well. OK okan kmos dv
2020-04-25Fixed memory leak in xu_get_strprop.Tobias Stoeckmann
If a client calls XSetTextProperty for a window to clear all its properties, then allocated memory within libX11 is not freed. OK okan@
2020-04-16Prevent out of boundary write with configuration files in which too manyTobias Stoeckmann
quoted arguments are stored for other window managers. The quotation handling happens within the while loop without checking if the "end" limit has been already reached. If this happens, the final NULL assignment leads to an out of boundary write on stack. OK okan@
2020-04-16Allow configuring a percentage window size of the master window duringOkan Demirmen
htile/vtile actions. From Uwe Werler, with a few manpage tweaks.
2020-03-24zap stray tabsOkan Demirmen
2020-03-24Instead of using _NET_ACTIVE_WINDOW on restart, use the pointer locationOkan Demirmen
to determine what client to set active. Reduces a round trip for every window.
2020-03-23Add support for SIGINT/SIGTERM.Okan Demirmen
2020-03-20Simplify conditional construct.Tim van der Molen
OK okan@
2020-03-20Trim event_mask to those that the root window actually needs.Okan Demirmen
2020-03-20No need to lookup current client early; move to right before it isOkan Demirmen
needed.
2020-03-16Recommit 1.259, but now with TAILQ_FOREACH_SAFE.Tim van der Molen
From and OK okan@ Original commit message: Plug two memory leaks. Also get rid of a variable that is no longer necessary. OK okan@
2020-03-14Revert previous. Causes a crash as reported by Tom Murphy.Tim van der Molen
2020-03-13Simplify list markup.Tim van der Molen
OK okan@ schwarze@
2020-03-13Plug two memory leaks. Also get rid of a variable that is no longerTim van der Molen
necessary. OK okan@
2020-02-28Remove ColormaskChange from event-mask since there's no event handler.Okan Demirmen
2020-02-27Unrelated style fixes, consistency changes and sorting, appropriateOkan Demirmen
dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
2020-02-07Allow the 'empty' group clients to be window-{h,v}tile'd.Okan Demirmen
Behaviour (or lack there of) noticed by Raf Czlonka.
2020-02-03Map ('5') and allow mod5mask (altgr) as a modifier.Okan Demirmen
From Artturi Alm (though changed from 'm' to '5')
2020-01-22add, then use, xvasprintf, checking for appropriate return.Okan Demirmen
2020-01-21Ensure the pointer stays within client bounds after a window 'snap' (to edge).Okan Demirmen
reported by Stefan Hagen.
2019-08-13Because cwm warps the pointer during a client move (to stay within the client),Okan Demirmen
there's a window of time where an expose or enternotify event will get generated for a lower client; use a hammer and drain events after keyboard move/resize, until such a time that cwm doesn't warp the pointer. Behavior noticed by kn. ok kn@
2019-08-12Fix regression from r1.107 (lost a return); kettenis@ pointed out the highOkan Demirmen
potential for a use-after-free (true!) where kn@ ran into the regression using an app that actually exercised the XGrabPointer() failure path.
2019-07-09Add application sectionkn
Link what is described as "applications" here to how they are actually defined in cwmrc(5). While here, call the configuration file what it is instead of reusing the default path (already mentioned in the FILES section). OK okan
2019-07-02command uses execvp(3) not execve(2)kn
util.c:u_exec() has been doing so since import.
2019-04-29Plug a memory leak in log_debug(); OK okan@Tim van der Molen
2019-04-29Handle _NET_WM_NAME changes.Tim van der Molen
This fixes the problem where cwm's window menu wouldn't show Firefox's current window title if it contains non-ASCII characters. OK okan@
2019-03-11Check the atom type on propertynotify before iterating.Okan Demirmen
2019-03-10use screen_find() for xrandr crtc changesOkan Demirmen
2019-03-10Find the managed screen from the parent window for client_current().Okan Demirmen
2019-03-08Print window id in hex; while here, remove unnecessary newline.Okan Demirmen
2019-03-08Similar to keypress event, fetch the screen from the event root window in theOkan Demirmen
buttonpress handler; bail if we don't manage the screen. Allows us to find the current client based on the screen/event root.
2019-03-08extend verbose logging for key/button eventsOkan Demirmen
2019-03-08[keypress event] turns out we've been checking the wrong window for a matchingOkan Demirmen
client thus always falling back to client_current(); while the current client is problaby right in most cases, use event's subwindow (not window) to find the client. Bail early if this event came to us from a screen we don't manage. This is result of us grabing all keybindings off the root window instead of selectively.
2019-03-08add parans for readibilityOkan Demirmen
2019-03-07Teach client_current() to use a screen to find the current client instead ofOkan Demirmen
iterating over all (fallback if no screen provided for now). Initially convert trivial uses of client_current().
2019-03-07check cc->gc directlyOkan Demirmen
2019-03-07zip extra linesOkan Demirmen
2019-03-07gc clientq inside groups, instead use the better maintained one per-screenOkan Demirmen
2019-03-07shuffle deck chairs: rename group actions to match intent for clarityOkan Demirmen
2019-03-06same thing as screen_find()Okan Demirmen
2019-03-04Separate out the menu window from the client resize/move geom window; in eachOkan Demirmen
case, create and destroy on-demand. Isolate more menu specific code.
2019-03-04fix a few misplaced (and misnamed) ewmh root window functionsOkan Demirmen
2019-03-04_NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come afterOkan Demirmen
conf_group().
2019-03-04simplify xftcolor configOkan Demirmen
2019-03-01Tie group number and name together during config.Okan Demirmen
2019-02-28Move the group index (desktop number) check to the only 2 callers that requireOkan Demirmen
checking due to ewmh.