summaryrefslogtreecommitdiff
path: root/mcwm.c
AgeCommit message (Collapse)Author
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
2010-06-30Unfocus before unmapping and only if we have a focus.MC
2010-06-30Forget old focus before mapping new windows on new workspace.MC
2010-06-30Added really simple handling of _NET_WM_DESKTOP so windows will belongMC
to the right workspace even if we restart.
2010-06-30Don't check for sameness if focuswin is NULL already.MC
2010-06-30Added virtual workspaces.MC
2010-06-30We don't really need to remember coordinates and geometry for everyMC
client. At least not right now. Same goes for vscreen. Removed them and all code concerning them.
2010-06-29Added focus change from keyboard, Mod2-TAB. For now, it's a simpleMC
window ring. This also means focuswin is now a pointer to a struct client and that we have a linked list of all mapped windows not in override redirect mode.
2010-06-24Added debug printouts for incoming events.MC
2010-06-24Added real colour handling and -f and -u options for setting them.MC
2010-06-23We need both normal and ungrab enter notify events.MC
2010-06-23Ignore windows with override redirect set when initializing at start.MC
Don't bother setting focus when entering a window if the event notify says we're not in a normal state, e.g. the pointer is grabbed by some client (including us).
2010-06-23Move terminal variable into struct conf.MC
2010-06-23Handle a request to set border width, but only set it to BORDERWIDTH.MC
Handle setting of sibling. Handle stacking order request.
2010-06-23A MapRequest always place the window on top in the stacking order.MC
Removed superflous raisewindow().
2010-06-22Added terminal option.MC
Added help text. Removed unused "m" option.
2010-06-22Fork twice(!) when starting new terminal. Also wait for the firstMC
child to exit so we don't leave any zombies.
2010-06-22Include stdint explictly.MC
Handle default case in keypress switch.
2010-06-21Add handling of Circulate Request of subwindows. Now xpdf searchMC
works! \o/
2010-06-21Don't need to set focusin twice.MC
2010-06-21Quote ICCCM.MC
2010-06-21Removed the size hints in newwindow().MC
ICCCM seems to indicate we should use geometry and allow configure requests from the client to change size instead.