1 ChangeLog for 0.60.x 2 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 11 blackbox class. 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 34 ~/blackbox_menu. 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 49 - wmswallow works 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 59 better UI approach 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. 69 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 73 multibyte functions 74 - use srcdir in all of the makefiles 75 - added zh_CN (Chinese) nls support 76 77 Changes from 0.61.1 to 0.62.0: 78 - the immorel release 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 89 the autotools. 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 96 location windows. 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 122 never used. 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 131 was removed 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 141 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 161 was resized 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 167 168 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 181 decorations : 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 190 specified 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 201 should now work 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 212 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. 220 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 224 than 'Unnamed'. 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 230 side of the screen 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 237 window. 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 243 default. 244 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. 254 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 264 for everyone 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 269 270 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 296 optimum behavior) 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 299 300 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 303 see the file 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. 313 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 318 off by default 319 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 324 translations)... 325 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. 330 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 337 by default. 338 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 345 as necessary) 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: 368 369 [config] (Catchy Label) 370 371 changes made in the configmenu take effect immediately, and are saved in 372 your ~/.blackbxrc... current tunable settings: 373 374 Focus model 375 Window placement 376 Image dithering 377 Opaque window moving 378 Full Maximization 379 Focus New Windows 380 Focus Last Window on Workspace 381 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: 388 389 toolbar: raised interlaced solid bevel1 390 toolbar.color: grey 391 toolbar.colorTo: darkgrey 392 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... 398 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, 410 resize, etc. 411 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 421 vertical) 422 - added options to the slit and toolbar menus to have them always stacked 423 above other windows 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 430 will focus it 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 433 434 435