summaryrefslogtreecommitdiff
path: root/mcwm.c
AgeCommit message (Collapse)Author
2010-11-01Forgot some ifdeffed out code. Removed it.Michael Cardell Widerkrantz
2010-11-01Every client now remembers its place in each workspace window list.Michael Cardell Widerkrantz
See struct client's wsitem[] array. We use this to be able to free a window from a workspace window list without having to traverse all items in all workspace lists. This is stored as an array in the client because a window should be able to occupy several workspaces simultaneously. This also made it possible to clean up changing workspaces. Also added early breaks in focusnext().
2010-09-13Added delete window functionality. This is a patch from ChristianMichael Cardell Widerkrantz
Neukirchen, chneukirchen at the domain gmail.com. I only changed the default key and moved a flush.
2010-08-23If US_POSITION flag is set in WM_NORMAL_HINT, we obey the coordinatesMichael Cardell Widerkrantz
in the window geometry.
2010-08-10Don't raise window on keyboard focus unless it's really occluded byMichael Cardell Widerkrantz
some other window. If we don't find any window to focus on, focus first in list, whatever it is.
2010-08-04Stop already known clients trying to map themselves onto the currentMichael Cardell Widerkrantz
workspace.
2010-08-03If we don't have a focused window at the end of a resize or move,Michael Cardell Widerkrantz
remember to ungrab the pointer and reset the mode! We *do* need EnterNotify events with mode Ungrab! Users might do strange things, like not letting go of a mouse button or a grabbed key until they have entered a window, and we still want to change focus if they do.
2010-07-28Added comments.Michael Cardell Widerkrantz
2010-07-28Added some comments.Michael Cardell Widerkrantz
2010-07-28Change order of comparison with errno EINTR from select(). SeemsMichael Cardell Widerkrantz
nicer. Break out of loop if we get EINTR instead of continue. Same effect since the for loop ends when sigcode != 0, but this makes it more explicit.
2010-07-28We don't care about EnterNotify pseudo events when ungrabbing.Michael Cardell Widerkrantz
2010-07-28Don't bother to try to set focus if we get an EnterNotify for a windowMichael Cardell Widerkrantz
we don't know anything about. This seems to fix the unclutter(1) problem.
2010-07-23Take size increments into consideration when vertically maximizing,Michael Cardell Widerkrantz
but not totally maximizing. Remember to forget about a window being vertically maxed when resizing it.
2010-07-23Oops. Check for min_width in mouseresize() as well.Michael Cardell Widerkrantz
Add check for minimum size when resizing by keyboard.
2010-07-23We initially set size increments to 1, so check for that instead.Michael Cardell Widerkrantz
2010-07-23Get size hints when initializing window.Michael Cardell Widerkrantz
Better use of size increments when mouse resizing.
2010-07-22When doing keyboard resize: Only warp pointer if it was inside theMichael Cardell Widerkrantz
window to begin with.
2010-07-22Use MOVE_STEP.Michael Cardell Widerkrantz
2010-07-22Typo.Michael Cardell Widerkrantz
2010-07-21Special treatmeant for fully maximized windows: Don't allow move orMichael Cardell Widerkrantz
resize.
2010-07-21Renamed die() to cleanup() and make sure we quit with an explicitMichael Cardell Widerkrantz
exit() instead.
2010-07-21Take into account the window border as well.Michael Cardell Widerkrantz
2010-07-21Only warp pointer when moving by keyboard if the pointer is inside theMichael Cardell Widerkrantz
window to begin with.
2010-07-21Warp pointer inside window if outside when moving with keyboard. AlsoMichael Cardell Widerkrantz
use helper functions.
2010-07-21More explicit checks for client == NULL. Added debug output as well.Michael Cardell Widerkrantz
2010-07-21Use xcb_poll_for_event() and block on select() instead ofMichael Cardell Widerkrantz
xcb_wait_for_event() so we can react on signals right away instead of waiting for the next event.
2010-07-21Raise window before moving to corner, otherwise we might end up underMichael Cardell Widerkrantz
another window.
2010-07-21Check if we have a focused window before doing anything!Michael Cardell Widerkrantz
2010-07-20Moved xcb_disconnect() to die().Michael Cardell Widerkrantz
Added comments about pathological case of findclient() returning NULL to setfocus().
2010-07-20Send KeyPress event to focused window if we don't know what to do withMichael Cardell Widerkrantz
it.
2010-07-20Use signal() instead of sigaction() so we can compile cleanly with C99Michael Cardell Widerkrantz
on modern GCCs and Linux. Cast to void * when using %p.
2010-07-20Typo.Michael Cardell Widerkrantz
2010-07-20Oops. Forgot ; at end of PDEBUG(). Didn't notice since I compiledMichael Cardell Widerkrantz
without DEBUG for the release. Sorry. Changed comment about ConfigureNotify. Added FIXME.
2010-07-20Use SHIFTMOD as defined in config.h. Thanks to Christian NeukirchenMichael Cardell Widerkrantz
for spotting that I didn't use it.
2010-07-19win may have been used uninitialized!Michael Cardell Widerkrantz
Removed the decleration and use e->child and corresponding variables instead. Used focuswin in several places instead with explicit checks for the disastrous case focuswin == NULL.
2010-07-19Used the wrong types for width and height in several places!Michael Cardell Widerkrantz
Changed resizestep() to use getpointer() and getgeom().
2010-07-19Use new helper functions to get geometry to avoid memory leaks.Michael Cardell Widerkrantz
Change types to correct types.
2010-07-19Added Y, U, B and N keys to move focused window to corners.Michael Cardell Widerkrantz
Also added helper functions to get geometry and pointer information. Used the getgeom() function in arrangewindows() and discovered memory leaks.
2010-07-18Don't warp pointer to the same place it already was at when doingMichael Cardell Widerkrantz
keyboard resize. Instead, only warp when we risk losing the pointer to another window.
2010-07-17Keep window relative pointer position when resizing with keyboard. IfMichael Cardell Widerkrantz
the old relative pointer coordinates are outside the new geometry, warp the pointer to the middle of the window.
2010-07-17Keep pointer position relative window when moving with keyboard.Michael Cardell Widerkrantz
2010-07-17Save cursor position inside of window when moving or resizing. Go backMichael Cardell Widerkrantz
to that cursor position when done if it's still inside the window. If not, warp pointer to the middle of window.
2010-07-17Get rid of unused variables for storing starting point of pointer whenMichael Cardell Widerkrantz
moving and resizing. Only raise window once when resizing! Stop querying for pointer position ourself. Don't use motion hinting anymore and get real coordinates with motion event. See Gajewska and Manasse: "Why X Is Not Our Ideal Window System". Updated some comments.
2010-07-17If we resize a window and the pointer just happens to be on top ofMC
another window when we ungrab the pointer we get an EnterNotify to that window and change focus. This is not what we want. To get around this, we warp the pointer to the middle of the focused window (that is, the window we just resize) just before ungrabbing.
2010-07-13Missed a pixel in height and width when moving with mouse.MC
2010-07-10Added helpful comment about how we might want to change unmapMC
handling. Help now lists -x option.
2010-07-10Instead of counting UnmapNotify events, which might get fouled up if aMC
an unrelated window is unmapped just when we're changing workspaces, we just look for the unmapped window in our *current* workspace list, not what we changed from.
2010-07-10Support setting of border colour of fixed windows from commandMC
arguments.
2010-07-10Only handle visible windows when starting.MC
This means we also have to die gracefully ourselves and map all windows we know about. When terminating, we also set the keyboard focus model back to following the pointer. Handle some signals to attempt to die gracefully.
2010-07-09Handle UnmapNotify events. We find the window in the current workspaceMC
list and then also forget about it completely. We will add it again if it gets mapped. Ignore UnmapNotify events if we unmapped windows ourselves and count the number of events we expected, then resume normal unmap handling.