summaryrefslogtreecommitdiff
path: root/mcwm.c
AgeCommit message (Collapse)Author
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.
2010-07-09Fixed bug when we could resize a bit outside the root window.MC
2010-07-08Warp pointer when unmaximizing.MC
2010-07-07First, perhaps naive, implementation to rearrange windows when screenMC
size changes, that is when the user removed a physical screen or tilted her screen.
2010-07-07Store coordinates and geometry when maximizing so we can revert.MC
2010-07-07Better start at workspace 0 as well, then. Ahem.MC
2010-07-07_NET_WM_DESKTOP considers 0 as the first logical desktop. So we use 0MC
as what we get to when doing MODKEY + 1.
2010-07-01Ooops! Deleted the wrong client(s)! Moved delfromworkspace() *into*20100701-3MC
the comparison block.
2010-07-01Call top functions with a struct client instead of window. Check forMC
NULL.
2010-07-01Only set border colour on fixed windows when the user specifically setMC
them fixed, not when starting.
2010-07-01When changing workspaces, remove fixed windows from the current andMC
add them to where we're going to. Take care to save the next pointer so we don't lose our ability to traverse the list.
2010-07-01Give some feedback about fixed windows by changing their focus colour.MC
2010-07-01Delete a window from the workspace list as well when it is destroyed.MC
Initialize all members of client when adding a new window. Add fixed windows to current workspace when starting. Try to move fixed windows with us (that is, add it to the next workspace list) when we change workspaces. #if 0ed right now.
2010-06-30Ahem. *Unsigned* 32 bit integer.MC
Cast a few debug printouts to stop compiler warnings. Removed unused function parameters.
2010-06-30We say in getting and setting properties that the workspace number isMC
a 32 bit integer, so we might as well actually use that type internally as well.
2010-06-30Move adding to workspace from setupwin() to setupscreen() and newwin()MC
to avoid mapping the mysterious GTK client leaders.
2010-06-30Always change to first workspace when starting.MC
2010-06-30Special treatment for focus on fixed windows.MC