Apply combined shape mask correctly This only broke windows that use ShapeInput and don't hide their window decorations, which is a fairly small set.
Move final frame adjust in flashing to timeout func This possibly avoids badness when the timeout destroy notify is removed from the frame release func.
Make sure to reset all the GSource timer ids Avoids warnings like 'Source ID 8382 was not found when attempting to remove it'. In particular some removals were missing in menuframe.c resulting in a warning being printed every time a submenu was opened.
Maximized undecored windows have incorrect top border. (Bug 5996) If the window has no border since the theme has bwidth=0, or because the window is truly undecorated via MWM hints, then we should not allocate space for the frame of the window which will just be empty pixels.
When an undecorated window is maximized give it a 1px border at the top (Fix bug 5506) We want to keep some way for a user to re-decorate the window with the default bindings. However with a large border width, the top border is much bigger than it needs to be! So make it fixed at 1px large in this case.
Specific border width/color for undecorated active/inactive windows (bug #4889) The attached patch adds three theme options with backward compatible defaults: undecorated.border.width defaults to border.width window.undecorated.active.border.color defaults to window.active.border.color window.undecorated.inactive.border.color defaults to window.inactive.border.color
extra \n in debug output
Some versions of X, have the Shape extension, but apparently not "ShapeInput" (Fixes bug #4662) the sawfish window manager has ifdefs for this sort of situation. I followed suit, and #ifdef'd it, and it now works for me. patch attached. Slight changes to the patch from danakj@orodu.net for readability
Revert "add XFlush to g_timeout callbacks" This reverts commit aa3685d16af4a565eecdc39047ee8d140ef5cd99. Mika's commit using a GSource to handle X Events fixes this problem, so this commit is not needed
Make the dock a context and add actions LowerDock and RaiseDock
add XFlush to g_timeout callbacks GMainLoop doesn't cause an flush to occur after handling a timeout.
Fix the EXTENTS reported on window frames. Change the order things are done on map, so we apply startup state without any states set first, thus getting all the functions possible for the window type etc. then change the order states are applied, as some remove the ability to apply others (ie fullscreen comes last). Add an oldsize to ObFrame that remembers the size of the frame last reported to the world through the EXTENTS property. If you frame_adjust_area(FAKE) then frame_adjust_area(NONFAKE), the EXTENTS would not be updated since the oldsize wasn't remembered across fake updates. Make the extentsrequest test ask about windows with states set also.
Use GMainLoop instead of ObtMainLoop
set the frame's initial size to something invalid so the extents hint will be set for sure the first time.
allow multiple contexts separated by space in a mouse binding example: context="Top Left Right Bottom"
make an event queue for X events. the queue's min size is 16 XEvents (~3k)
don't put reparent events back on the stack. the window is no longer being managed anyways. and it messes up the order of events in the queue
use const Rect* not Rect const*
more using g_slice_new() instead of g_new()
remove a bunch of g_new()/g_free() by returning Rect const*'s from screen area functions when possible