summaryrefslogtreecommitdiff
path: root/mcwm.c
AgeCommit message (Collapse)Author
2015-09-12More comments erased.HEADmasterMichael Cardell Widerkrantz
2015-09-12Superfluous comments.Michael Cardell Widerkrantz
2015-09-12Indentation. There were some TABs.Michael Cardell Widerkrantz
2014-02-22"and" -> "and/or" and bump copyright year.Michael Cardell Widerkrantz
2013-08-19snapwindow() should be static like all other functions.Michael Cardell Widerkrantz
2013-08-11Support for window snapping to screen border and other windows. TurnSimone Vellei
on with -s snap-margin. Contributed by Simone Vellei <henomis@gmail.com>. Committed with small changes.
2013-04-22Use setborders() in setupwin() instead of doing it by hand. This alsoMichael Cardell Widerkrantz
means we flush directly after setting border width. Seems to fix that we didn't get a border right away for mplayer, for instance. Clarified some comments.
2013-02-08Don't include xcb_ewmh.Per Cederqvist
2013-02-08Added support for moving to previous and next workspace. Thanks ceder!Per Cederqvist
2013-02-07Added support for backtabbing. Thanks ceder!Per Cederqvist
2012-03-25No point in printing that we don't have RANDR in production. Make it aMichael Cardell Widerkrantz
debug printout.
2012-03-06Whitespace and indentation.Michael Cardell Widerkrantz
Removed superflous word from comment.
2012-03-06Declare variable iter at top of block.Michael Cardell Widerkrantz
Added comments.
2012-03-05Only get the pointer position if we're going to use it when mapping aMichael Cardell Widerkrantz
new window. If we don't have the pointer position, use the window's coordinates to find the physical screen. Should have been used anyway.
2012-03-05Obey display part of DISPLAY.Michael Cardell Widerkrantz
2012-02-16Added iconify/hide key, MODKEY + i.Michael Cardell Widerkrantz
Changed manual. Group together window operations in manual.
2012-02-15Use getatom() to get all the atoms we need instead of repeating code.Michael Cardell Widerkrantz
2012-02-15Put the iconify functionality behind a command line option (-i) andMichael Cardell Widerkrantz
added the default (false) to config.h. Documented the iconfiy/hide windows functionality in the manual.
2012-02-15Respect IconifyWindow messages.Christian Neukirchen
WARNING! This will iconify/hide windows without any way of getting them back from within mcwm.
2012-02-07Always check for unrecoverable errors when xcb_poll_for_event()Michael Cardell Widerkrantz
returns NULL. Our file descriptor *might* have become unreadable.
2012-01-24Spelling.Michael Cardell Widerkrantz
2012-01-24Bump copyright year.Michael Cardell Widerkrantz
2012-01-24Indent and style.Michael Cardell Widerkrantz
2012-01-24Names of functions and constants updated to work with xcb-util 3.8.David Jacobs
Thanks David!
2011-11-23Simplified and renamed start_terminal() to start() which can start anyMichael Cardell Widerkrantz
program. Skip the double fork() and explicitly ignore SIGCHLD to fend off zombies. Added support for mouse buttons on root window to optionally start a program with start(). By default mouse button three starts mcmenu which must be in PATH.
2011-11-17Rewrote ConfigureRequest handling. Don't obey window moves notMichael Cardell Widerkrantz
initiated by user. Always fit window on physical screen.
2011-11-17topright didn't consider start of physical screen. Only worked onMichael Cardell Widerkrantz
screen 1.
2011-11-17-b no longer boolean. Now sets border width in number of pixels.Michael Cardell Widerkrantz
2011-08-15Don't try to follow an empty monlist (use of NULL pointer!).Michael Cardell Widerkrantz
2011-08-15getopt() returns int, you moron!Michael Cardell Widerkrantz
2011-08-12It was still possible to map a window on coordinates outside physicalMichael Cardell Widerkrantz
screens. Now hopefully fixed, if not perfectly: If a window isn't bound to any physical screen it will be bound in newwin() to the first screen mcwm knows about. In fitonscreen() I forgot to check for the case where window coordinates are larger than the screen's.
2011-07-26Warp to middle of window instead of corner when tabbing. Makes itMichael Cardell Widerkrantz
easier if you want to paste something with middle button without having to move the pointer to get pointer focus first.
2011-07-26Removed if 0 comment with struct information.Michael Cardell Widerkrantz
2011-07-24mon_width and mon_x are not used when maximizing vertically. Removed.Michael Cardell Widerkrantz
2011-07-21Use the X server's Save Set to store the windows we know about. ThisMichael Cardell Widerkrantz
means they will be get automatically mapped and reparented if mcwm exits even if it crashes. Simplified cleanup() to reflect the above change. We still need to change the keyboard focus policy from mcwm's default to follow pointer instead. If mcwm crashes completely before we reach cleanup() this might become a problem. All the windows will be mapped but there won't be a keyboard focus and no way to change it. I don't know how to fix that right now. Don't attempt to catch SIGSEGV. Might be dangerous.
2011-07-20In commit 98d81f75a3e8509e841f9e180e2104e45f6460c5 committed on JunMichael Cardell Widerkrantz
20, 2010, I decided to use pointer hints instead of pointer motion notify to possible speed up things. In commit 381e642a39187f615ba54955ef02d1e2fcf1f95d on Jul 17, 2010, I reverted and wrote: 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". Since getting a trackball with high CPI and experiencing how slow moves and resizes suddenly were, especially when decreasing mouse acceleration, this is clearly wrong. The right way *is* to subscribe to just motion hints and request pointer coordinates ourselves.
2011-06-23Use getgeom() in setupwin().Michael Cardell Widerkrantz
Don't use getgeom() when we're done resizing or moving. We already know the geometry of the client window.
2011-06-23Removed unnecessary call to getgeom().Michael Cardell Widerkrantz
2011-06-23When forgetting about a client, forget about it on *all* workspaces itMichael Cardell Widerkrantz
might be on. If fixed, it's now on all of them.
2011-06-23Use freeitem() instead of explicitly freeing from global window list.Michael Cardell Widerkrantz
If a window is unmapped and we are going to forget about it we need to take into consideration if it's currently focused.
2011-06-21arrangewindows() rewritten. We already know the geometry of windowsMichael Cardell Widerkrantz
since we track it all the time now. Only call arrangewindows() when root window changes geometry if we don't have RANDR. Otherwise, we call getrandr() when we get a XCB_RANDR_SCREEN_CHANGE_NOTIFY event. Added comments. When a monitor gets a new mode in an RANDR scenario, we track the x,y position and width,height. If we lose a monitor, we add the windows on that monitor to another monitor.
2011-06-20Defined constant WORKSPACES for number of workspaces instead ofMichael Cardell Widerkrantz
WORKSPACE_MAX and used it consistently. When fixing a window in fixwindow() we now add the window to all workspace window lists except current in which it already should be present. This means fixed windows are always a natural part of the window list. No special treatment means that we don't muck around with the order of the lists when changing workspaces.
2011-06-07Declare all functions static.Michael Cardell Widerkrantz
2011-06-07* New function configurerequest(). Moved ConfigureRequest code to itsMichael Cardell Widerkrantz
own function. In configurerequest(), consider monitor size when changing window coordinates and size. Forgot events() declaration!
2011-06-07No need to get geometry in newwin(). We do that in setupwin().Michael Cardell Widerkrantz
When we get a ConfigureRequest() we mustn't stop if the window is unknown to us. This might be a client that hasn't even tried to map itself yet! Work around it.
2011-06-05Comments.Michael Cardell Widerkrantz
2011-06-04Take output coordinates into consideration when resizing with limits.Michael Cardell Widerkrantz
2011-06-04When we get a ConfigureRequest for coords or size we need to updateMichael Cardell Widerkrantz
the client.
2011-06-01Removed unused active variable.Michael Cardell Widerkrantz
Removed done FIXMEs.
2011-06-01Always set borders again after unmaxing when we move to new screen.Michael Cardell Widerkrantz
Count borders in width and height when fitting on screen. Remove unneccessary getgeom() from topright(). We know the geometry.