3 Changes from 0.62.1 to 0.65.0:
4 - added Taiwan Chinese (zh_TW), Hungarian (hu_HU), Latvian (lv_LV),
5 Korean (ko_KR), Norwegian (no_NO), Polish (pl_PL), Romanian (ro_RO) and
6 Ukrainian (uk_UA) nls files and updated most of the others.
7 - removed the Estonian (ee_ET) and Turkish (tr_TR) locales due to their
8 being heavily out of date and unmaintained
9 - remove slit and netwm as compile time options
10 - strip much of BaseDisplay's original functionality and move it to the
12 - huge amounts of internal cleanups
13 - added emacs local variables to each file that prevent the addition of tabs
14 - added a Util.cc file which contains useful functions with no obvious home.
15 - move code over to the STL
16 - removed several unused variables and otherwise reduced the memory usage
17 of the objects in Blackbox. For the record the binary is roughly 100k
18 larger than 0.62.0 and that is mostly due to the STL but there is also a
19 fair bit of new code. However for the most part blackbox runs faster and
20 is still one of the leanest window managers out there today.
21 - bsetroot now sets _XROOTPMAP_ID, so pseudo transparent apps will be happy
22 - beginnings of a strut implementation. toolbar and slit are removed from
23 the available screen area if 'full maximize' is not set
24 - XReparentWindow sends an UnmapNotify to the window manager however
25 in certain cases the window is already unmapped so the window manager
26 never gets the event and the unmapNotify event is where reparentNotify was
27 handled. Added a reparentNotifyEvent handler in the BlackboxWindow class
28 and a new case in the Blackbox class's process_event function.
29 - no more blackbox->grab/ungrab calls everywhere
30 - compression of motion and expose
31 - Now we have one function which turns ~/ into /home/user/. This is now
32 called everywhere this expansion should be done. Even added this to the
33 resource.menu_file so now the menu file may be specified as
35 - added a TimerQueue which is a priority_queue with the ability to release
36 items it contains before they reach the top of the queue. Also added a
37 TimerQueueManager protocol class which BaseDisplay now inherits from.
38 - BTimer now defaults to NOT recurring. Most of the timers in blackbox were
39 one shots so I saw little benefit in defaulting to repeating timers.
40 - update transient handling, should solve issues with apps like acroread.
41 added a getTransientInfo() method of the BlackboxWindow class which
42 handles checking the transient state in X and setting the appropriate
43 variables on the window. To attack the infinite loops this
44 function ensures that client.transient != this and we check for loops
45 of the form A -> B -> C -> A. The new transient code also allows for one
46 window to have multiple transients so applications like xmms and web
47 browsers are better behaved.
48 - even better ICCCM support and focus handling
50 - fix for clock clipping in the toolbar
51 - better support for non decorated windows and toggling decor
52 - the geometry window shown when moving or resizing a window now handles the
53 parentrelative setting better. parentrelative support has been improved
54 for all of the other widgets as well.
55 - better window group handling
56 - improved edge snap support (still no window to window snapping)
57 - changing preferences no longer leads to windows being raised
58 - the window's "send to" menu ignores the current workspace, which is a
60 - new placeWindow algorithm. Blows the old one out of the water. Not only
61 is it faster but it is also cleaner code too (-: Went from number 5 in
62 the profiling results to under 30. Image rendering is now the slowest
63 part of managing of new windows.
64 Because of the new code layout, support is now there for new and
65 different layout options but this will wait for after 0.65.0.
66 - smart window placement ignores shaded windows now
67 - new option in the Config menu which allows Scroll Lock to disable
68 Blackbox's keybindings.
70 Changes from 0.62.0 to 0.62.1:
71 - the lock modifier code handles user redefined modifiers better
72 - check if the locale actually needs multibyte support before using
74 - use srcdir in all of the makefiles
75 - added zh_CN (Chinese) nls support
77 Changes from 0.61.1 to 0.62.0:
79 - added the ja_JP nls directory and man pages
80 - general code touchups
81 - blackbox-nls.hh is always generated even if --disable-nls is used.
82 This allows us to not have all of those hideous #ifdef NLS chunks.
83 Nothing to worry about, if you do not want NLS this does not affect you
84 - Workspace::placeWindow() cleanups. Also a speed bump from reducing the
85 use of iterator->current() and changing the delta from 1 to 8
86 - cleanups to compile with g++ 3.0
87 - make distclean actually removes Translation.m and blackbox-nls.hh.
88 Also fixed Makefile.am to pass --foreign instead of --gnu when calling
90 - fixed a desciptor leak in BScreen::parseMenuFile, seems opendir
91 lacked a matching closedir.
92 - fix transient window handling code in Workspace::removeWindow() so
93 transients give focus back to their parents properly. The code originally
94 handled sloppy focus then transient windows, so we just flopped the
95 if/elsif. This is immediately noticable with web browsers and their open
97 - plugged a small leak in ~Toolbar
98 - fixed list::insert so you really can insert at item number 2. While there
99 I cleaned up the code a bit.
100 - added decoration to the atom state stored in a window
101 - fixed a typo in bsetroot.cc: 'on of' -> 'one of'.
102 - fixed the window menu gets left open when another window button is pressed
103 issue with a call to windowmenu->hide() in window->maximize()
104 - applied xOr's patch for decoration handling
105 - applied xOr's patch for the maximize, shade, unmaximize bug
106 - applied Kennis' patch for sending incorrect Slit configure notices
107 - BlackboxWindow's flags have been moved into a flags structure
108 - applied xOr's patch for border handling
109 - resizing a window turns off its maximized flag. Before a resized window
110 thought it was still maximized and maximizing a double action
111 - BlackboxWindow::withdraw no longet sets the state to Withdrawn.
112 This confused some X clients.
113 - updated the manpages and added Dutch NLS support (thanks Wilbert)
114 - added it_IT nls files, thanks Luca Marrazzo <marra.luca@libero.it>
115 - the menu file mentioned in the manpage is now based on DEFAULT_MENU
116 - configure script found basename in -lgen, but did not set HAVE_BASENAME
117 causing compilation problems on irix and possibly others. Added a call
118 to AC_DEFINE in AC_CHECK_LIB to fix this.
119 - menu is no longer installed, you need to copy it yourself
120 - cleaned up i18n code a little. Several member functions were declared
121 but never used and getMessage() had a default argument which was also
123 - i18n will now compile cleanly on machines without nl_types.h
124 - the lock modifiers no longer stop blackbox!
125 - maximize a window via bbkeys and the maximize button is not redrawn, fixed
126 - now exit with an error code if an unknown option is passed
127 - autoraise and multiple dialog windows yields segv bug fixed
128 also lengthened the default auto raise delay from 250 to 400
129 - another iteration of autoraise and dialog box handling, this time we
130 noticed that nothing ever reset blackbox.focused_window to 0 when a window
132 - check if the window is visible before changeBlackboxHints() calls maximize
133 - placeWindow no longer takes edgeSnapThreshhold into account
134 - ignore style files ending in ~
135 - support locale specifiers with @euro in them
136 - added Slovenian man pages and nls, thanks Ales Kosir
137 - Toolbar name editing buffer reduced to 128 chars, logic added to make sure
138 this buffer is not overrun
139 - added German nls files, thanks Jan Schaumann
140 - added my name to the code, updated the version output
142 Changes from 0.61.0 to 0.61.1:
143 - fixed some of the code to explicitly use colormaps so that when
144 blackbox decides to use a non-default visual everything will
145 still work (although it may look darn ugly)
146 - optimizations to the deiconify/raising code to (hopefully) deal
147 with a rather nasty bug, plus make things a little more efficient
148 - changed the code so that the close button is always redrawn on
149 button release events, just in case the client decides not to
150 close in response to the message (see Acroread)
151 - tinkered with the Makefiles again to make sure Blackbox
152 completely cleans up after itself during an uninstall
153 - fixed a glitch in window placement that was making Blackbox
154 place some larger windows at coordinates near 2**31
155 - merged in a patch from nyz which fixed a bug with not sending
156 configure events when a window is both moved and resized (eg
157 when the left resize grip is used) as well as optimized some
158 of the show/hide code to use the stacking order
159 - fixed a bug in blackbox's support of the X shape extension...
160 it wasn't correctly resetting the bounding region after a window
162 - fixed a glitch with the geometry window where it would persist
163 if the client was unmapped while in motion
164 - tweaked the code for decorating transient windows so that it
165 is possible to use MOD1+Mouse3 to resize transients as long as
166 there is not some other reason to disable functions.resize
169 Changes from 0.60.3 to 0.61.0:
170 - added slightly updated copies of the blackbox/bsetroot manpages.
171 - reworked the Windowmenu code so that using the second mouse
172 button on the Send To menu moves you along with the window
173 - merged in bsd-snprintf.(h|c) from openssh so that Blackbox can
174 compile on older boxes without (v)snprintf in their standard lib.
175 - fixed a pair of problems where blackbox was not returning icons
176 and slit apps to a useable state at shutdown
177 - fixed a problem with menus not getting layered correctly after
178 a reconfigure or menu reload
179 - changed the behavior of the various MOD1+ButtonPresses on windows...
180 they should now be more consistent with the button behavior on the
182 . MOD1+Button1 raises and moves the window (unchanged)
183 . MOD1+Button2 lowers the window (used to resize the window)
184 . MOD1+Button3 resizes the window (new button combo)
185 - fixed a small but _extremely_ annoying bug exposed by cvsup
186 - styled frames are now a thing of the past... the textures formerly
187 known as window.frame.(un)focus have been replaced by solid colors
188 window.frame.(un)focusColor... the thickness of the frame is now
189 determined by frameWidth, which will default to bevelWidth if not
191 - middle clicking on a window in a workspace's window list now moves
192 the window to the current workspace
193 - fixed a minor glitch with the appearance of window labels for
194 certain newly-started apps (i.e. rxvt)
195 - added a new configure option for both the toolbar and the slit --
196 autohide. Hopefully this should help quell the demands for the
197 removal of the toolbar...
198 - added code to better handle apps that change the window focus
199 - changed the command execution code (used to handle rootCommands
200 and executable menu items) to be more robust... compound commands
202 - a new-and-slightly-improved implementation of unstyled frames should
203 mean slightly better performance than previously
204 - fixed a couple of stupid bugs in the new code for handling
205 Solid Flat textures more efficiently
206 - fixed the nls makefiles so that they respect DESTDIR, behave better
207 if you reinstall over an existing installation, and actually remove
208 their files on a make uninstall
209 - added cthulhain's bsetbg script to the util directory... see the
210 file README.bsetbg for more information
211 - added Estonian, French and Danish translations
213 Changes from 0.60.2 to 0.60.3:
214 - put in a (temporary?) fix for a bug with the new way icons are
215 handled. Previously an icon was created only for non-transient
216 windows, which means that 1) minimized transient windows were
217 not getting cleaned up at shutdown, and that 2) one could
218 conceivably lose access to a minimized transient if there were
219 a break in the transient chain.
221 For the time being, every iconified window gets an icon. In
222 order to make this a little nicer, if a window doesn't provide
223 an icon title, the window title is used in the icon menu, rather
225 - fixed a bug in handling the destruction of intermediate
226 transient windows. The code was leaving the transient of a
227 destroyed window with a reference to the now non-existent
228 window. This can lead to all sorts of problems.
229 - fixed a slight positioning error when the slit is on the right
231 - included a new style, Minimal, which is designed for use on 8-bit
232 displays. It tries to use a bare minimum of colors, and with the
233 new code regarding Flat Solid, should consume very little memory.
234 - made yet another alteration to the way focus changes after a window
235 closes under ClickToFocus. Blackbox now tracks the stacking order of
236 all windows and uses this information to give the focus to the topmost
238 - new configure option :
239 --enable-styled-frames include support for fully-styled window
240 frames -- these are the decorations which
241 are affected by the window.frame* theme
242 entries. This option is turned on by
245 Because of the way they are implemented,
246 these are typically the most memory and
247 render intensive of the various blackbox
248 decorations, even if they are typically
249 only a pixel or so wide. Disabling this
250 feature can result in a substantial
251 decrease in X memory usage, but it's
252 enabled by default to remain compatible
253 with previous versions.
255 - added a whole mess of logic so that blackbox will use
256 XSetWindowBackground for Flat Solid textures instead generating
257 a pixmap (which would be subsequently cached)... should help cut
258 down some on the X memory usage
259 - altered the behavior of the BImageControl timer... now it will
260 fire every cacheLife minutes, regardless of when anything has
261 been removed from the cache
262 - modified the NLS build code yet again... at this point we've
263 hopefully hit the least common denominator and it should work
265 - dealt with a possible problem in the BlackboxWindow constructor
266 where we referred to a member after deletion
267 - removed a last lingering bit of the allocate()/deallocate() code
268 - fixed a pair of string formatting problems
271 Changes from 0.60.1 to 0.60.2:
272 - updated README.bbtools, since bbpager and bbkeys were updated to work with
273 0.60.x (also removed the .diffs from the source tree)
274 - fix for compiling with NLS support on Solaris
275 - added Turkish, Russian and Swedish translations
276 - applied patch for more correct Spanish translations
277 - added completed pt_BR (Brazillian Porteguese) translation
278 - removed mem.h and the allocate()/deallocate() calls throughout blackbox
279 these have been unused for a long time, and needed to go away :)
280 - compile fixes for --enable-debug
281 - changed the font loading/drawing code... XFontSets are only used if
282 the locale is set properly. So you can still compile with nls support,
283 but do not set your LANG environment variable, and your fonts will be
284 loaded and drawn the old way
285 - smarter Basemenu::drawItem() code added, i noticed alot of flicker when
286 moving menus, because of code constantly redrawing menus items... this
287 has been significatly modified and sped up quite a bit
288 - fixed a bug where iconified windows wouldn't remove themselves from the
289 icon menu when they unmapped/closed themselves (which would result in a
290 crash if you selected this dead item)
291 - fixed a potential crash in Workspace::removeWindow() that had relation
292 to focus last window on workspace... one person experience gibberish being
293 displayed, another experienced a crash
294 - fixed a flicker problem when changing focus between windows rapidly
295 (the toolbar's window label was getting redrawn twice per focus, not
297 - fixed the infamous bsetroot segfault... this was quite a feat... took 3
298 people in excess of 8 hours to find... and it was a simple one line change
301 Changes from 0.51.3.1 to 0.60.1: (note: 0.60.1 is 0.60.0 non-alpha)
302 - changed licensing for Blackbox from GNU GPL to more open BSD license
304 - removed alot of empty files that did nothing but passify automake/autoconf
305 Blackbox now passes --foreign to automake to lessen the requirements for
306 files like NEWS,AUTHORS,COPYING,README,etc.
307 - new configure options:
308 --enable-ordered-pseudo this enables a new algorithm for dithering
309 on pseudocolor (8 bit) displays... a noticable
310 pattern is visible when using this. you may or
311 may not like it... just something different
312 if you want it, but is turned off by default.
314 --enable-debug turn on verbose debugging output... this
315 isn't very complete or really very helpful...
316 right now it just describes memory usage and
317 tracks a few X event handlers... this is turned
320 --enable-nls turn on natural language support... this option
321 will turn on the use of catgets(3) to read
322 native language text from any of the supported
323 locales (see the nls/ directory for current
326 This option also turns on the use of XFontSets,
327 which allows the display of multibyte
328 characters, like Japanese or Korean.
329 This option is turned on by default.
331 --enable-timed-cache turn on/off the new timed pixmap cache... this
332 differs from the old pixmap cache in that
333 instead of releasing unused pixmaps
334 immediately, it waits for <X> minutes, where
335 <X> is set with session.cacheLife in your
336 ~/.blackboxrc... this option is turned on
339 - changed the default menu to include a listing of workspaces (and their
340 window lists) and the new configuration menu (see below)
341 - included new default styles, contributed by regulars on
342 irc.openproject.net's #blackbox
343 - generated default "translation" catalog for the C/POSIX locale... the
344 same catalog is used for English (en_US for now, will add others
346 - included translation for Spanish (es_ES) and Brazilian
347 Portuguese (pt_BR)... if you are interested in doing a
348 translation, email me at blackbox@alug.org
349 - properties and hints added for communication with bbpager and bbkeys, the
350 two most common "blackbox addons"
351 - KDE 1.x support has been completely removed, pending approval of the new
352 window manager specification to be used by KDE2 and GNOME
353 - a (broken!) base for the new window manager spec was put in place, but
354 using --enable-newspec will result in code that will not compile
355 - added a timer class to handle internal timeouts without using
356 getitimer/setitimer/SIGARLM... this will enable other things to be done,
357 as any number of timers with any timeout can be used
358 - Blackbox will search for the highest depth supported by each visual on
359 each screen... basically this means that blackbox will try to use
360 TrueColor if a TrueColor visual exists (but it's not the default visual)
361 - menu hilite changed from being just a color to being a texture and new
362 window decoration layout... as a result the style file syntax has changed,
363 old styles for 0.5x.x will not work. See the included styles for examples,
364 and browse by http://bb.themes.org/
365 - added support for enabled/disabled and selectable menuitems, this is for
366 use in the configmenu mostly (but is used in the windowmenu)
367 - added the Configmenu, which is insertable into your menu by using:
369 [config] (Catchy Label)
371 changes made in the configmenu take effect immediately, and are saved in
372 your ~/.blackbxrc... current tunable settings:
380 Focus Last Window on Workspace
382 the window placement and focus model options will be discussed below
383 - added texture type "ParentRelative" which causes the decoration to display
384 the contents of it's parent... this is a sort of pseudo-transparent option
385 and doesn't work for all decorations... see the included style named
386 "Operation" for an example of ParentRelative
387 - added support for solid interlacing... for example:
389 toolbar: raised interlaced solid bevel1
391 toolbar.colorTo: darkgrey
393 will cause the toolbar base to be draw with solid lines, one line grey,
394 the next darkgrey, the next grey, the next darkgrey, ...
395 - changed dithering algorithm for TrueColor displays from Floyd-Steinberg to
396 an ordered dither... dithering at 8bpp (Pseudocolor) can be either FS or
397 ordered, but must be selected at compile time...
399 NOTE: when using ordered pseudocolor (8bpp) dithering, your
400 session.colorsPerChannel ***MUST*** be 4, otherwise your display will
401 not display *any* correct colors
402 - fixed TrueColor rendering to do aligned writes (suppresses warnings on
403 Alpha Linux machines)
404 - added support for GrayScale/StaticGray displays (completely untested)
405 - made linked lists smarter, they can now have as many iterators assigned to
406 them as you want... no more FATAL errors
407 - added the Netizen class, which is a client that has
408 _BLACKBOX_STRUCTURE_MESSAGES listed in their WM_PROTOCOLS... these clients
409 get notified of window add, remove, focus, shade, iconify, maximize,
412 the two most common Netizens are bbpager and bbkeys
413 - when loading an incomplete style, blackbox now uses default colors to
414 draw decorations (instead of the annoying "see-through" effect)
415 - added menu tag [config]... which inserts the Configmenu into your rootmenu
416 - made [include] handling smarter, it will only read regular files (it
417 won't read a directory in case you ever accidentally put one there)
418 - the slit and toolbar menus now include a placement option, which will place
419 them in various positions on the screen
420 - included a slit menu option to choose it's direction (horizontal or
422 - added options to the slit and toolbar menus to have them always stacked
424 - right clicking on the workspace label no longer initiates a workspacename
425 edit... right clicking anywhere on the toolbar brings up the toolbar menu,
426 which has an entry that lets you change the workspace name
427 - iconified windows no longer show up in the window list for the current
428 workspace... just in the icon submenu
429 - ClickToFocus now works like one would think, clicking anywhere in a window
431 - overall... this version of blackbox has and does alot more than previously
432 just take it for a test drive and see how well you like it