Changes from 0.62.1 to 0.65.0:
- added Taiwan Chinese (zh_TW), Hungarian (hu_HU), Latvian (lv_LV),
Korean (ko_KR), Norwegian (no_NO), Polish (pl_PL), Romanian (ro_RO) and
Ukrainian (uk_UA) nls files and updated most of the others.
- removed the Estonian (ee_ET) and Turkish (tr_TR) locales due to their
being heavily out of date and unmaintained
- remove slit and netwm as compile time options
- strip much of BaseDisplay's original functionality and move it to the
blackbox class.
- huge amounts of internal cleanups
- added emacs local variables to each file that prevent the addition of tabs
- added a Util.cc file which contains useful functions with no obvious home.
- move code over to the STL
- removed several unused variables and otherwise reduced the memory usage
of the objects in Blackbox. For the record the binary is roughly 100k
larger than 0.62.0 and that is mostly due to the STL but there is also a
fair bit of new code. However for the most part blackbox runs faster and
is still one of the leanest window managers out there today.
- bsetroot now sets _XROOTPMAP_ID, so pseudo transparent apps will be happy
- beginnings of a strut implementation. toolbar and slit are removed from
the available screen area if 'full maximize' is not set
- XReparentWindow sends an UnmapNotify to the window manager however
in certain cases the window is already unmapped so the window manager
never gets the event and the unmapNotify event is where reparentNotify was
handled. Added a reparentNotifyEvent handler in the BlackboxWindow class
and a new case in the Blackbox class's process_event function.
- no more blackbox->grab/ungrab calls everywhere
- compression of motion and expose
- Now we have one function which turns ~/ into /home/user/. This is now
called everywhere this expansion should be done. Even added this to the
resource.menu_file so now the menu file may be specified as
~/blackbox_menu.
- added a TimerQueue which is a priority_queue with the ability to release
items it contains before they reach the top of the queue. Also added a
TimerQueueManager protocol class which BaseDisplay now inherits from.
- BTimer now defaults to NOT recurring. Most of the timers in blackbox were
one shots so I saw little benefit in defaulting to repeating timers.
- update transient handling, should solve issues with apps like acroread.
added a getTransientInfo() method of the BlackboxWindow class which
handles checking the transient state in X and setting the appropriate
variables on the window. To attack the infinite loops this
function ensures that client.transient != this and we check for loops
of the form A -> B -> C -> A. The new transient code also allows for one
window to have multiple transients so applications like xmms and web
browsers are better behaved.
- even better ICCCM support and focus handling
- wmswallow works
- fix for clock clipping in the toolbar
- better support for non decorated windows and toggling decor
- the geometry window shown when moving or resizing a window now handles the
parentrelative setting better. parentrelative support has been improved
for all of the other widgets as well.
- better window group handling
- improved edge snap support (still no window to window snapping)
- changing preferences no longer leads to windows being raised
- the window's "send to" menu ignores the current workspace, which is a
better UI approach
- new placeWindow algorithm. Blows the old one out of the water. Not only
is it faster but it is also cleaner code too (-: Went from number 5 in
the profiling results to under 30. Image rendering is now the slowest
part of managing of new windows.
Because of the new code layout, support is now there for new and
different layout options but this will wait for after 0.65.0.
- smart window placement ignores shaded windows now
- new option in the Config menu which allows Scroll Lock to disable
Blackbox's keybindings.