_____

Changelog xsnow

version 3.7.9
    01: ui.glade: make gui not-resizable to prevent wrong reported size when user
        tries to change size. 
        Thanks to Mark Capella for bringing this up.
    02: windows.c, main.c, xsnow.h: when window is moved or resized, 
        convert fallensnow into flakes. Look for global.DoCapella.
        Thanks to Mark Capella for the idea.
    03: ui.glade: change color pickers (snow, birds, vintage tree) to standard,
        the fancy color editor is still available using the '+' button.
    04: main.c: take care that while changing OffsetY, fallensnow is not
        converted to flakes.
        xsnow.h, main.c: use macro DOCAPELLA for setting default.
    05: meteor.c: better simulation of meteors.
    06: generate flakes if window is minimized.
    07: snow.c and others: optional: 2 snow colors, inspired by
          Mark Capella's plasmasnow.
        pofiles/: add translations for 2 snow colors.
        src/Makefile.am: specify dependencies of makeman.
    08: adaptations for FreeBSD:
           use sh in stead of bash in bootstrap
           addcopyright.sh: adapt sed calls to FreeBSD's sed
           remove src/safe_malloc.c, adapt src/safe_malloc.h
            - safe_malloc.c was not used anyway
    09: addcopyright.sh: use tmpfile="tmpfile" in stead of `mktemp`
        src/Makefile.am: minor: avoid $< because of FreeBSD's make

version 3.7.8
    01: src/Makefile.am: fix bug related with tarfile.inc which caused
        --disable-selfrep not working
        Thanks to Andrea Musuruane

version 3.7.7
    01: enable cross compiling
    02: fix minor issue: version in man page

version 3.7.6
    01: correct spelling error in ChangeLog
        adapt for debian sid

version 3.7.5
    01: data/xsnow.desktop.in: add 'Simulation' to categories
    02: main.c: make 'settings->lift snow on bottom', 
        -offsets working
        it appears that xdo_search uses the name argument as
        a regular expression, so use ^pcmanfm$ and ^Desktop$. 

version 3.7.4
    01: utils.c: fix bug in using xdo_search_windows(): the search
        parameter must be filled in completely (probably bug in
        xdo_search_windows)
    02: flags.c, docs.c: add flags --root and --window-id 
        same as -root and -window-id for usage under xscreensaver
    03: main.c: do_display_dimensions: put fflush() and return in proper
        order
        remove prevent-remakes
        utils.c: use memset to initialize xdo_search_t search
        bootstrap: rm -f po/*.gmo po/*.po
    04: bootstrap: get rid of Makevars.template

version 3.7.3
    01: removed debug output
version 3.7.2
    01: make 'hide menu' button working in WM's that do not support
           iconify
        add xdo_search.c, make it g++ compilable
        ui.c: trivia to make it g++ compilable again
        windows.{c,h}, wmctrl.{c,h}: remove unused functions
        main.c, utils.{c,h}: use xdo function to find window "pcmanfm"
    02: fix bug that caused error when configuring with --disable-selfrep
        
version 3.7.1
    01: choose between two moon colors (as suggested by Lewis Smith)
    02: xsnow.h, Santa.c, Fallensnow.c: make Santa bidirectional
    03: Makefile.am: add -DENABLE_NLS=1 where appropriate
    04: correct moonseeking behaviour if Santa rides from right to left
        correct wind-dependency for R-L Santa
    05: Santa.c: call init_Santa_surfaces only at initialisation
        scenery.c: fix bug which caused core dump when using external tree
    06: Santa.c: reorder indices of Santa_surfaces.
    07: Implement -treescale
    08: Implement -santascale
    09: ui.glade: avoid use of deprecated settings
    10: adapt languages to changes, change ee.po in et.po
    11: scenery.c: some code cleaning

version 3.7.0
    01: add contact button on welcome page and ratrabbit url in man page
        add gettext (using gettextize) (thanks to suggestion by
          Albano Battistella)
        add languages de en es fi fr it nl pt
        re-arrange programming of selfrep capability
        add 2023 to copyright
    04: add more languages
        m4/gettext.m4: Upgrade to gettext-0.21.
        m4/host-cpu-c-abi.m4: New file, from gettext-0.21.
        m4/iconv.m4: Upgrade to gettext-0.21.
        m4/intlmacosx.m4: Upgrade to gettext-0.21.
        m4/lib-ld.m4: Upgrade to gettext-0.21.
        m4/lib-link.m4: Upgrade to gettext-0.21.
        m4/lib-prefix.m4: Upgrade to gettext-0.21.
        m4/nls.m4: Upgrade to gettext-0.21.
        m4/po.m4: Upgrade to gettext-0.21.
        m4/progtest.m4: Upgrade to gettext-0.21.
        configure.ac (AM_GNU_GETTEXT_VERSION): remove
        add gettext.h
        take appropriate action if no languages are available
           : no language button
        configure.ac, src/Makefile.am: trigger on USE_NLS macro
        simplemake.sh: some improvements
    05: Santa.c: ResetSanta(): let Santa start somewhat left of the screen so
          that His (re-)appearance is a surprise, more or less
        ui.c: button_santa(), Santa.c: SantaVisible: when changing Santa,
          place Santa on a visibla area.


version 3.6.1
    01: add centos deps to file dependencies
        (thanks to Joachim Ruebenschuss)
    02: src/Makefile.am: add PTHREAD_CFLAGS and PTHREAD_LIBS

version 3.6.0
    01: implement xinerama-awareness
       implement -outline
       introduce usage of libxdo, make it g++ compliant, fix some non-fatal
           issues
       fallensnow.c: fix bug that causes crash when snowing on a window
           less than 10 pixels width
       birds.c: fix bug that caused a hang when using -doublebuffer 0
       docs.c: update window manager/desktop issues
       main.c: print info when snow window changes size (thanks to Gim Kami)
       configure.ac: check for availability of gsl_interp_steffen, 
           gsl_interp_akima, gsl_interp_cspline and gsl_interp_linear
           (Thanks to Joachim Ruebenschuss)
       utils.c: somewhat nicer print-out of version

version 3.5.3
    01: main.c: drawit(): do now draw the first second or so to hide
        unstable configurations of scenery, stars, etc.
        fallensnow.c, birds.c, aurora.c: make them C++ compliant by
          rewriting goto and typecast pointer assignment
        meteor.c: rewrite goto
        santa.c: continue Santa animation, irrespective of His speed
        fallensnow.c: paint fallensnow one pixel higher
        fallensnow.c: generate more snow when Santa is ploughing
    02: loadmeasure.c: maximum 5 warnings about to busy system
    03: doit.h: change defaults for aurora_width/height to 60/30

version 3.5.2
    01: fallensnow.c: draw fallensnow only on regions where fallensnow is present,
        to prevent a continuously present line on regions where there is
        no fallensnow (yet)
    02: main.c: when user changes offsety, call UpdateFallenSnowRegionsWithLock()
        in stead of UpdateFallenSnowRegions().
        fallensnow.c: on change of MaxScrSnowDepth, call
        SetMaxScreenSnowDepthWithLock() in stead of
        SetMaxScreenSnowDepth().
        snow.c: set fallensnow lock when examining fallensnow regions
           thus preventing prevents random crashes
        fallensnow.h a.o: create and use macros for semaphores to
        facilitate debugging

version 3.5.1
    01: configure.ac: reproducible build is now complete, it seems, also
        when building outside the xsnow-tree
    02: aurora.c, spline_interpol.c: use steffen's method for splines
        aurora.c: small correction in determining the points to
                  evaluate the splne at
    03: spline_interpol.{h,c}, aurora.c: use macro SPLINE_INTERP to choose
        for spline type (steffen, cspline)
    04: change some meteor code: other call-back logic, other
        names for variables (meteorite -> meteor)
    05: change filenames meteo.c, meteo.h into meteor.c, meteor.h
        change flags -meteorites, -nometeorites into -meteors, -nometeors
        meteor.c: some minor changes, including different colors
    06: snow.c: do_UpdateSnowFlake(): fix non-fatal bug in updating
           horizontal speed of flakes
        xsnow.c, snow.c: change some parameters for a more dramatic
           dependency from wind on flakes
        flag 'auroraheight' is now height of aurora
        flag 'aurorabase' determines the vertical placement of the aurora
    07: fallensnow.c, treesnow.c: use random flake for blowoff snow
        fallensnow.c: change initial velocity and position of blowoff snow
    08: fallensnow.c: use spline for desh shape of bottom fallensnow
        main.c: correct non-fatal bug in using srand48() for 32 bit systems
        snow.c: correct not-fatal bug: compare acth[] with desh[] in stead
             of h
        xsnow.h: change time_change_bottom to 10 minutes
    09: use splines to paint fallensnow 
    10: try pthreads for computing fallensnow
    11: finish pthreads for fallensnow
    12: aurora.c: do not use mutexes, use semaphores
                  fix bug that caused creation of new threads after
              resizing of corona
    13: fallensnow.c: use splines for fallensnow also on windows
    14: birds.c: make birds multithreading
    15: fallensnow.c, utils.{c,h}: check on availability of traceback()
        fallensnow.h: threads.h -> pthread.h

version 3.5.0
    1: add aurora
    2: aurora.c: half implemented and disabled other method to handle sharp bends. 
    3: windows.c: remove calls to DrawFallen()
       on second thought: use other method, combined with better code
    4: optimized determining of fuzz somewhat
       set all horizontal scales to width 100
    5: ui.xml: size all horizontal scales to 7 em
       aurora.c: add high frequency alpha to aurora 
    6: implemented safe_malloc.{c.h} in a desperate try to get the 32 bit
       version running in amd64. No success.
       Add pthread.h at the start of every c,cpp file.
       main.c: initialize global.NewWind to 100.0
       Problems with 32 bit version were caused by optimization of the
          compiler and me not realizing the floating point arithmetic can 
          have some surprises, such as 64-bit and 80-bit compares.
          Problem solved by rearranging code in create_aurora_base().
    7: aurora.c: allow arora surface to be somewhat wider than the screen
       and allow it start somewhat left of the screen
    8: moon.c: randomize starting position from moon
       aurora.c: randomize starting theta and alpha of aurora
       aurora.c: adjust theta change, add slant change
       ixpm.c: correct two non fatal errors in scanf(... %100s...)
          thanks to dcb314 https://sourceforge.net/p/xsnow/tickets/11/
       docs.c: add va_end()
       wmctrl.c, birds.c: make cppcheck happy
       make all, except kdtree.c, cppcheck happy using a check after
          realloc()
       aurora.c: prevent too large vertical movements in position of aurora
    10: add more random slant for aurora
    11: aurora.c: create aurora_erase(), to be called in main() and when 
           changing the look of the aurora when no double buffering is
           available.
        fallensnow.c: do not call XClearArea when double buffer is used.
        doit.h: Change aurora defaults.
       

version 3.4.4
    1: birds.c: attraction point goes now from 0.1..0.9 of the horizontal 
       dimension of the screen
    2: configure.ac: try to create a reproducible build:
       definition for DATE, re-timestamping the selfrep tar file
    3: some enhancements with regard to 2:
    4: main.c:  add some fflush(stdout)
       birds.c: take care that AttrSpace is always honored from the beginning
                When using as xscreensaver background, this was not the
            case
       xsnow.desktop.in: change Version into 1.0
    
version 3.4.3
    1: enhance dependencies with Suse package names
       main.c, ui.c, flags,c, doit.h: solve bug concerning the flag -above
       Extend documentation about xsnow's behaviour in a few window
       managers.
       main.c: fix bug: Xsnow in TWM did start in non-existing window.
       utils.c: add some randomness to add_to_mainloop
    2: implement -attrspace, including button and man page
       if Santa is not shown, let Him run anyway, so 'Follow Santa' has effect
    3: somewhat better implementation of -attrspace
version 3.4.2
    1: fallensnow.c: other algorithm for drawing fallen snow
       Santa.c: Santa is now moon-seeking, also when birds are not showing 
          but only half of the time
    3: fallensnow.c: fallen snow at the bottom changes shape every few
       minutes
    4: no spikes anymore on top of fallensnow
       define minimum height of bottom fallensnow
       ui.c: set_default_tab(): remove memory leak
       fallensnow.c: CreateSurfaceFromFallen(): some minor details
    5: fix issue that 'make install' always remakes selfrep.o
       selfrep.c: if sizeof(tarfile) < 1000 characters, assume that this 
          can be safely send to a tty
version 3.4.1
    1: ui.c: more checks on ui_running
    2: configure.ac, Makefile.am, data: some small adaptions for
       freeBSD
version 3.4.0
    1: first try to add background to the xscreensaver mode:
       use ~/xsnowbackground.jpg
    2: src:Makefile.am: remove .deps/* from CLEANFILES
       configure.ac: move execution of 'make dist' to the very end
       replace imagemagick for background with gtk/gdk
    3: implement choose-background button
       xsnow.desktop: change version to 1.5, include xsnow-version 
       in comment
       implement flag -bg
    4: xsnow.h: set time_snowflakes to 0.02 * global.cpufactor
       improve file selector for xscreensaver
       flags.c: add -treeoverlap and -notreeoverlap
                add -birdsscale
            add -transparency
       ui.xml: add corresponding command line flag to tooltips
    5: remove all from libmagickwand
    6: minor changes in xscreensaver menu
       prevent calling gtk_label_set_text() when there is no menu
    7: ui.c: ui(): move setting of ui_running to start of ui(), in order
       to see version number in 'settings' tab
version 3.3.6
    1: selfrep.c, utils.c: better implementation of writing the tar ball.
    2: windows.c: do_wupdate(): force update windows every 6th call
       implement -ignoretop -ignorebottom, inclusive buttons in 'snow'
       panel
    3: some minor adjustments in the ui
    4: snow.c: genxpmflake(): place first dot indeed in the middle (0,0)
       and not in a corner
       simplemake.sh: correct call to toascii.sh
    5: windows.c: do_wupdate(): force update windows every 10th call
       xsnow.h: re-evaluated timings
       scenery.c: add ClearScreen() in do_initbaum()

version 3.3.5
    1: docs.c: document XFCE compositing requirement
    2: implemented -selfrep
       adapted simplemake.sh

version 3.3.4
    1: flags.c: remove dependency from libxml2, .xsnowrc has now different
       format
       main.c: add check for existing colors for TreeColor, BirdsColor and 
               SnowColor
       doit.h: change colors "snow" and "chartreuse" into hex
       scenery.c: scenery_init(): sanitize Flags.TreeType

version 3.3.3
    1: add metainfo: data/xsnow.appdata.xml
       mv src/xsnow.desktop to data/xsnow.desktop
       add flag '-b' to awk in gen_ui_xml.sh
    2: implement flag -changelog
       add some old ChangeLogs, found in the README of version 1.42
       gen_ui_xml.sh: remove flag '-b' from awk ('-b' only valid for gawk)
           return exit code of awk command
    3: docs.c: document xcompmgr problem
       scenery.c: explicit convert (myScale*w+2) and (myScale*h+2)
         to int, to keep g++ happy.
       dependencies: made up-to-date
       simplemake.sh: made up-to-date
       moon.c: add #include <stdlib.h> for drand48

version 3.3.2
    remove redundant files maketar, makectags

version 3.3.1
    1:fix issues with LXDE desktop and xscreensaver

version 3.3.0
    1:replace transparent.{c,h} with maketrans.{c,h}
      add overall scale factor
      all drawings using cairo
      use xdbe (double buffer) when not using cairo
      moon and birds also when painting on root window
    45: doit.h:default followsanta = 0
        windows.c: do not snow on window with exactly width=SnowWinWidth, x=0, y<100
    47: sanitize scenery.c with respect to color of the vintage tree

version 3.2.3
    1:minor adaption in simplemake.sh
     :make use of VERSION in config.h
      adapt simplemake.sh 
    6:ixpm.c: correct stupid bug in xpm_set_color()
    7:remove UNUSED
    9:extended range of XSelectInput somewhat
      change timing of do_wupdate to look more frequently if 
      something has changed

version 3.2.2
    1:change 'changes' into Flags.Changes
    2:change gdkwindow -> NULL, several files
      ui.c: better behaviour of 'below windows' - 'confirm to click'
        combo
    3:flags.c flags.h: separate FLAGS for default and vintage
      docs.c: some minor additions
    4:buttons.h: change togglecode into scalecode
      flags.h uitils.h: transport some macro's
      ui.c: add documentation about flags and buttons
      main.c: optionally move windows to 0,0 (movewindow())
        Flags.MoveWindow --movewindow
    5:some tweaks MoveWindow
    6:more tweaks for MoveWindow
      Use also XConfigureWindow to set below or above. Now behaviour is
      OK when running in FVWM + xcompmgr or compton
      transparent.c: fixed 'show desktop' issue by re-adding:
         gdk_window_set_type_hint(gdk_window,GDK_WINDOW_TYPE_HINT_DOCK);
      wmctrl.c: add check for _NET_SHOWING_DESKTOP for visibility of
         windows
      windows.c: keep SnowWin below if Flags.BelowAll. Needed when SnowWin
        is not click-through.
    7:add -theme flag. No button: too complicated for me.
    9:make theme chooseable with a button
    11:ui.c: minor tweaks

version 3.2.1
    1:utils.h: add fflush(NULL) to UIDO and UIDOS
      moon.c: create halo surface for painting.
    2:fine tuning of ui graphics
    3:start simplifying ui.c
    11:finished 3:
    12:doit.h flags.h: change DOIT macro's
    13:docs.c:make it better
    14:add option -hidemenu, add this to xsnow.desktop
       better format noisy output
       use #include "undefall.inc" to undef frquently used macros
    15:simplify glade-id's
    16:stratify ui.c code
    17:stratify ui.c code
    18:stratify ui.c code

version 3.2.0
    1:use 256x256 xpm for moon
      start Santa, aware of moon position
      adapt some trivial texts
    2:add halo around moon
      add show-stars button
      add grey-out for moon buttons if not compositing manager
      add notice about that in the celestials tab
    3:fix bug in moon.c: show moon, independent of birds
      some experiments with halo colours
    4:moon.c: fix memory leak: halo_draw()
      docs.c: adapt man page
      ui.c: better way to grey out moon buttons 
      configure.ac: remove test for alloca, and tell kdtree.c not to use
         alloca
    6:ui.c: remove malicious assert from report_tree_type()
      utils.h: create macros UIDO and UIDOS to better deal with
        if(Flags.x != OldFlags.x) ....
      many functions: replace construct above with UIDO or UIDOS
    7:Ack in man page for picture of moon.

version 3.1.10
    1:add moon and show-noshow for moon
    2:put wind, stars, moon, meteorites in celestials
      add slider for moon speed
    3:add button for moon size
    4:let Santa like to hover the moon

version 3.1.9
    1:place 'Xsnow running' to a place wher this does not appear in
      xsnow -h or xsnow-H
    2:wmctrl.c: a second check if window is hidden, based on WM_STATE
      see: https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.3.1
    3: typos in docs.c
    5:wmctrl.c: use XQueryTree to find windows to snow on if
      _NET and _GTK are not available.
      Use also XGetWindowAttributes to determine if a window
      is visible.
    6:change max number of scenery items to 60
      wmctrl.c: use XGetWindowAttributes in stead of XGetGeometry

version 3.1.8
    1:use config.h to determine if alloca.h should be included
      configure.ac, Makefile.am: use pkg-config to locate 
      X11, Xpm, xt, xproto
    2:configure.ac: remove tests for libraries, relying on pkg-config now
    3:remove uses of alloca, except ik kdtree.c
      define USE_LIST_NODE_ALLOCATOR and  NO_ALLOCA in kdtree.c
      remove USE_LIST_NODE_ALLOCATOR from Makefile.am
      snow.c: free local variables in genxpmflake()

version 3.1.7
    1:windows.c: take care of redfining Rootwindow if xscreensaver
      is detected
version 3.1.6
    1:add xscreensaver support and vroot.h
version 3.1.5
    1:remove .png and .jpg from bootstrap and src/Pixmaps/ from tar.gz
    2:main.c drawit(): draw stars and meteorites behind birds
    3:fallensnow.c: GenerateFlakesFromFallen(): reduce the amount of
         generated snow 
      Changed info text by 'Blow off' slider.
    4:src/Makefile.am: separate scripts for generating ui_xml.h and
         snow_includes.h
      Create script 'simplemake.sh', to be used on systems where the
        './configure;make;make install' suite does not work.
version 3.1.4
    1:remove AC_FUNC_MALLOC AC_FUNC_REALLOC AC_FUNC_ALLOCA from
       configure.ac (see comment there)
      Checked all malloc's, alloca's and realloc's for allocating >0 bytes
version 3.1.3
    1:add flag -showrudolph
      add flag -blowsnow
      remove FullScreen from .xsnowrc
      add flag -usebg
      add flag -snow
      add flag -nosnow
      add flag -showtrees
      add flag -wind
      add flag -keepsnowonwindows
      add flag -keepsnowonscreen
      add flag -keepsnowontrees
      add flag -keepsnow
      add flag -fluffy
      add flag -meteorites
      stratified version.h
      moved PrintVersion to utils.c
version 3.1.2
    1:hashtable.cpp: do not use 'auto'
      docs.c: added note about no menu when files are present in
      $HOME/xsnow/pixmaps
      Check on version of GTK. If too low, give option to start
        without ui.
    2:simplify code for running without menu if level of GTK is too low
    3:stratify above mentioned code
version 3.1.1
    moved debian stuff out of the distribution
version 3.1.0
    1:change version number
      some trivia in transparent.c
    2:take care that only generated flakes are used when snow->defaults
    3:snow flakes size adjustable
    4:limit snowsize
      start snowflake always above window
      all generated snow xpm's: width multiple of 8
      also all off the vintage xpm's in Pixmaps
      change defaults for max number of flakes and blow-off to more humane
          numbers
    5:use effective width for flakes (weff in snow.c)
      small changes in GenerateFlakesFromFallen()
      it appears that the height of an xpm should be >=2 to prevent
        terrible degradation of performance. snow.c: genxpmflake()
    6:snow.h, snow.c: remove w and h from type Snow, these were redundant
    7:changed some defaults and ranges
    8:snow.c: reduce extra_flakes to 300. I have the impression that this
         is beneficial for cramped systems
      correct bug: blowoff.c: do not generate blow-off snow if Flags.NoSnowFlakes
    9:utils.c: wrapper for cairo_paint_with_alpha(). If alpha > 0.9, use
         cairo_paint(). Seems to have some performance gain (less stress
         on Xorg), but I am not sure.
      main.c: hide gtk_widget TransB when not used.
              gray out transparency when running in fvwm-like environment
      added test2.sh for 'make check' and 'autopkgtest'
      GetCurrentWorkspace now always returns 0 if there are problems 
    10:added tests using simulated mouse clicks, test2.sh and test3.sh
       xsnow reports now which Santa is chosen, needed for 
         'make check' and autopkgtest
       in Pixmaps: changed snowtree.xpm, eland.xpm, polarbear.xpm,
          huis4.xpm, AltSanta*.xpm to use one char to encode color
          using 'convert in.xpm -colors nn out.xpm'
    11:removed references to test2.sh and test3.sh
       add flag '-noisy'
       corrected non fatal bugs in xpmtobits
       implemented 'birds follow Santa'
    12:main.c: do_display_dimensions(): restart stars etc. not in the
       first call
       add scale button for 'Lift snow windows' == OffsetY
    13:corrected handling of fluff in snow.c
       corrected: if !ShowBirds, Santa should be shown (main.c)
    14:some fine tuning snow on trees
    15:trivia in snow.h
    16:fixed serious bug in snow.c which caused freezing
       snow flakes when changing size of flakes
version 3.0.10
    1:Better icons
    2:better flakes
    3:more flakes, auto generate snow includes and macro's for pixmaps.c
    4:more flakes
    5:more flakes
      birds.c: made attraction point transparent again
      ui.xml: remove separators from snow tab
    7:get rid of snow??.xbm. Conversion from xpm is done with xpmtoxbm().
      rename snow*.xpm to flake*.xpm
    8:next to the 7 archaic flakes, generate random flakes
      changed the addcopyright.sh script to only trigger on
      the first -copyright- line
    9:some code clean up
version 3.0.9
    1:Windows.c: remove useless call to DisplayDimensions from do_wupdate()
    2:fallensnow.c xsnow.h: shorter time between updates fallensnow
      better simulation of plowing
      3:snow.c: InitFlake takes now care of inserting flake in set
        of flakes
version 3.0.8
    1:check op _NET_WIM_WINDOW_TYPE_DOCK: do not fall snow on
      such a window
    2:changed 0 -> NULL where appropriate
      insert __attribute__ ((unused)) via macro UNUSED where appropriate
    3:create GetProperty32() in wmctrl.c
    4:fallenshow.h: moved window-specific items in FallenSnow to
      FallenSnow.win
    6:stratify windows.c
      transparent.c: make also click-through in draw callback
    8:ask for confirmation before permanently de-activating 
      'Below windows'.
      Remove 'BelowAll' from .xsnowrc.
    9:also in Cairo fluff
    12:better display of blown snow
    13:change code for going in and out full screen mode
       default is now full screen
       transparent.c: draw1(): remember two previous widgets in stead of
       one.
       removed full-screen button, see comment at Flags.FullScreen
       in main.c
    14:Solution for refusing to go below windows: first
       ask the opposite.
    15:Use absolute x,y coordinates for determining snow window placement
       and dimensions.
       Created a call back to check coordinates and dimensions of
       snowwindow once per second.
    16:Changed css color for troughs.
       No flakes: no fallensnow, no fluff, no blowoff, no treesnow.
       Flakes blown off trees&window&bottom: smallest type of snow.
       Flakes from disappearing fallensnow: all types.
       Somewhat more randominess in generateflakesfromfallensnow
       in the x-value of the flakes. Better ploughing!
     17:yellow confirm button.
        Bigger logo santa.xpm
        Stratified MakeFlake-InitFlake combo.
        Corrected two typos in flags.c
     18:take care that trees are not placed partially right from screen
        removed -noquiet flag
version 3.0.7
    1:adapt hovertext for 'Below windows' button.
    some code-cleanup
version 3.0.6
    1:Correct some typo's
    Removed memory-leak in birds.c: birds_draw
    birds.c: birds_draw: Correct position of birds by their width and height
    2:Paint with transparency if ~Flags.BelowAll
    3:No need for restart after changing below/above
    4:introduction of transparency used by painting
    fixed bug concerning removing trees
    5:scenery.c: change definition of Tree to **Treeinfo and changed a few 
      lines accordingly
    RedrawTrees now clears fallensnow on scenery
    Change factor -> cpufactor
    fallensnow.c: HandleFallenSnow: do not collect snow on bottom when Flags.NoKeepSBot
    6:Changed actions at interrupt.
    Removed unused CleanGC
    transparent.c: simplified applying skip-taskbar-hint
                   added skip-pager-hint
version 3.0.5
    New major release
    transparent.c: Prevent icons for transparent windows showing up in taskbar
    windows.c: no update of windows if not snowing on a desktop
    DetermineWindow (windows.c): make sure IsDesktop is initialized
    SigHandler (main.c): Nicer exit after interrupt.
    Use execvp instead of execve restarting xsnow.
    Stratified some code starting from main.c: drawit
    wmctrl.c: also sticky=1 if (int)ws == -1
    Adapt for uploading to debian
version 3.0.4.30
    Some trivial changes to settings tab.
    Better handling of clicking BGColor button.
    Removed root window choice.
    Birds: set meanspeed before creation, not after.
version 3.0.4.29
    Gray out all birds buttons when appropriate
version 3.0.4.28
    In settings: gray out and make inactive not usable buttons
version 3.0.4.27
    better logic to determine what kind of windows are used
    simplified ui settings window
version 3.0.4.21
    transparent.c: remove sticky hint for gdkwindow: this is ierreversible
    made do_wupdate conform. Created windows.c. This is a mess, have to
    look into it.
version 3.0.4.20
    ui: colors, and slight layout improvements
    corrected error after going to full screen of behind windows
    removed setting of kde background (kdesetbg)
version 3.0.4.19
    re-instated the stopafter functionality
    ui: set colors
version 3.0.4.18
    added a warning for a too high system load
version 3.0.4.17
    convert snow_on_tree done, together with some other minor adjustments
version 3.0.4.16
    produce output with -h, -help, -H, -manpage, -v, -version without
        calling gtk_init()
    made parsing of flags conformant with the docs: added -v
    place test for wayland before gtk_init()
    do not draw fallensnow when window is hidden (iconized)
version 3.0.4.15
    blowoff in standard
    made timeout callbacks conform doc
version 3.0.4.14
    fallensnow in standard
version 3.0.4.13
    place gtk_init before handling the flags
    changed code for 'on all workspaces' (settings)
    do not collect snow if y <= 0
    implemented part of standard form for fallensnow
      todo: snow disappears now from windows that show on all workspaces
version 3.0.4.12
    draw stars using surfaces
version 3.0.4.11
    added stdlkib.h where desirable
version 3.0.4.10
    stars done
version 3.0.4.09
    some minor things in snow.c
version 3.0.4.08
    wind done
version 3.0.4.07
    meteorite done
version 3.0.4.06
    snow in standard form for the major part
version 3.0.4.05
    start with snow in standard form.
    hashtable.{cpp,h}: added set functions
    turned macro's delflake and makeflake into functions
    stratified declarations of xpm's (pixmap.(c,h}
    added snow xpm's (it seems there is no standard function to convert
       bitmap to GdkPixbuf)
    implemented canonical update of sreen, using gtk_widget_queue_draw()
version 3.0.4.03/4
    put birds in 'standard form'
version 3.0.4.02
    gtk-scenery working
    use timeout time at computing birds position (contrary to 3.0.3)
version 3.0.4.01
    Santa.c: handle usage of user-defined Santa
    if Flags.NoMenu: do not write to ui labels or make ui sticky/unsticky
    Made start with gtk-ing scenery.
version 3.0.3.01
    All santa stuff moved from main.c to Santa.c
    Added utils.c utils.h
version 3.0.3-gtk-0.1
    Santa runs in gtk
version 3.0.3
    birds.c: use actual time to compute bird positions instead of callback
    time
    birds.c: make speed adjustment of birds dependent on time elapsed
    previous line: not a good idea, removed corresponding code
    birds.c: more dramatic (re)start

version 3.0.2
    If birds not on active workspace, do not updte and paint them
    Add 'extern' to all function prototypes for consistency.
    Diversify debian/copyright

version 3.0.1
    make ui stickiness same as snow and birds windows
    resolve some debian copyright issues in debian/copyright

version 3.0.0
    use wallcl()*1.0e6 to initialize drand48, not wallclock()
    mv ui.glade ui.xml
    add css to minimize ui.
    add birds page, not functioning yet.
    make xsnow compilable with g++
    adding birds ....

version 2.0.22
    xsnow.desktop: in xfce icon does not show in
      panel: change 'xsnow.xpm' into 'xsnow'
    do not show flake count when option -nomenu is given
    fixed bug: when no desktop session can be determined
      from environment: make it 'unknown_desktop_session'
       - Thanks to Xose Vazquez Perez
version 2.0.21
    attempt better layout of settings screen
    Somewhat better layout for all menus
    Rudolf -> Rudolph in displayable strings
    Show number of flakes in 'snow' tab
    Added some id's in ui.glade
version 2.0.20
    replace timing loop with g_timeout_add()
    add polarbear
    use g_get_monotonic_time() for wallclock
    give every snowflake its own g_timeout_add()
    give Santa highest priority (not that it matters much, it seems)
    Change fuse algorithm: now Updatesnowflake kills flake when number
      of flakes is above threshold
    Initsnowflake: start y above above window
    updatesnowflake: do not force y >=0
    add button for flake-count-max
    put refresh of trees in g_timeout_add()
    idem for stars
    Smooyth vertical movements of Santa
    remove nosnowarea's. Replace nosnowarea_static by TreeRegion
    reinstate nosnowarea_dynamic
    fix issue with erasing flakes that are in a tree
    if FlakeCount > max, high probabilty to remove blown-off flakes
    all scales show now numerical value
    removed -showstats option
version 2.0.19
    debian/tests/control: removed test2.sh
version 2.0.18
    main.c: test if WAYLAND_DISPLAY is set before setting GDK_BACKEND
    main.c: restart after changing display settings 
    main.c: no Thanks after man page or help
    docs.c: minor adjustments
    debug.h: added
    main.c, flags.c: do not assume getenv("HOME") works as expected.
version 2.0.17
    main.c: The output of PrintVersion() appeared in the top of the man page.
       Corrected this.
    main.c: CleanFallenArea() marked the fallensnow region always as clean,
       but this must be done only when whole x-range is cleared.
version 2.0.16
    dsimple.c: int screen = 0; -> static int screen = 0;
       and move to the top of the file. Ticket 1: gcc-10 related
    transparent.c:
      keep xsnow visible after 'show desktop', and show xsnow on all 
      desktops
    wmctrl.c: special care for compiz
version 2.0.15
    ui.glade: added 'Donate' button
version 2.0.14
    src/Makefile.am: use exec_prefix in stead of prefix for gamesdir
    transparent.c: simplify creation of transparent window
    main.c: removed use of SigHupHandler 
    docs.c: corrected misspelled default values
    test1.sh: check 'xsnow -h' if default values are substituted
    main.c, ui.glade: better algorithm to determine number of flakes
        to generate
version 2.0.13
    main.c: do_genflakes(): take into account that do_genflakes()
       can be disabled by SnowRunning
    flags.c: add forgotten -alpha flag
version 2.0.12
    pixmaps.c: corrected width and height for snow.
    main.c: simplified create rectangular region
    debian/copyright: corrected
    main.c: remove flakes that fall below bottom of screen, also if
       no fallensnow on bottom
    main.c: corrected bug which coaused no snow at all with -nomenu
    Lower default snowspeed (SNOWSPEED in xsnow.h)
    update snowflakes in chunks, so that other animations run at
       desired speed.
    remove option -kde: settings are the same as for -gnome
    do not add or delete flakes when updating snowflakes
       is running (test on SnowRunning)
    for updatesanta, gensnowflakes, snowflakes: after a suspend
       or sleep the elapsed time can have a strange
       value. Take care of that.

version 2.0.10
    prepare for running in wayland by setting environment
      variable GDK_BACKEND=x11 (main.c)
    fix some typo's in docs.c

version 2.0.9
    some debian adjustments
    fix xfce problems: the workspace of the transparent
      snow window is not available in xfce
      some windows have both the _NET_FRAME_EXTENTS and
      _GTK_FRAME_EXTENTS. Priority is given to the latter.
    Snowflakes that touch fallen snow are not erased any more:
      erasure caused bad looking effects.
    Removed 'showstats' from config
version 2.0.8
    some more debian stuff
    add support for xfce desktop
version 2.0.7
    added some debian stuff
version 2.05
    Fixed issues when trees are not shown: snow was still
    collecting on trees, snow was not visible after not-shown
    tree. 

version 2.04
    Fixed bug in main.c: check for valid return value of 
    FindWindow() in do_wupdate().

Version 2.03
    Fixed bug in main.c: only set transworkspace if usingtrans.

Version 2.02
    Snowing halted when a workspade before the snow workspace was
    removed. Fixed by checking the workspace of SnowWin in do_wupdate().

Solved in 2.01
    tree-xpm's are mirrored randomly
    flag -treeregion implemented
    fluff on bottom in snow window when nokeepsnowonscreen
    parametrize MAXONTREES
    implement vintage
    in fvwm: after minimize window, no snow is shown on the
      window when it is restored. 
    Handle window that is visible on all workspaces
    implement no snow when window disappears
    implement nowplow
    Try to snow on trees
    plowing should be partial: only take snow away where Santa was: Won't
    fix
    stars are competing with fallen snow: let snow win: Won't fix
    Create precise region from bitmap vintage tree
    Implement nokeepsnowonwindows etc
    when wind: make generated flakes at bottom cyclic
    Solved strange behaviour with system monitor window
      and others: gedit, nautilus etc. on gnome desktop
      no problem on fvwm desktop
    find automatically desired offsets
      determine size of decoration from a partial screendump ?
      use xwininfo to point to a gauge window ?
    no rounding of edges of fallen snow at the bottom
    automatically determine tree regions
    create 'fuse': remove nearly all flakes when number is really too high
    for testing purposes: color a region see do_testing()
    read tree.xpm from ~/xsnow/pixmaps/tree.xpm if present
    let Santa plough through fallensnow: do not redraw fallen snow
       if overlap with Santa
    faster update of fallen snow after move of window
    animation of blown fallen  snow
    extra snow not cyclic
    get rid of flake.x and y, use only rx and ry
    animation of snow fallen from disappeared windows
    gracefully exit when window where is snowing in, disappears
    let trees not overlap
    fallensnow surfaces often too jerky
    round snow at the edges
    animation of do_clean
    let Santa be affected by strong wind
    replace old wind by storm now and then
    offsets for windows & bottom
    wind is changing continuously
    cyclic disappear, appear of flakes
    Solve floating point exception when starting in too small
      window (oclock) (div by 0 in RandInt)
    move to other workspace of a window: bad behaviour:
      snow stays on original workspace, window does no
      receive snow any more: see put correct workspace in fallensnow areas
      in xsnow.c
    snow on windows: implemented
    ctrl-c sometimes causes: cannot parse output of wmctrl: solved by
      letting wmctrl return -1 in case of problems

2019-01
    A few minor changes after 1.42:
    changed timing loop
    find Desktop in Gnome and KDE
    can run in user-pointed window (-xwininfo)
    added another kind of tree
    added starts
    added meteorite
    changed algorithm for fallen snow
    nosnowarea's
    and some more ...

version 1.42 
    Xsnow now works with KDE
version 1.41 
    -santaupdatefactor, fix for X-servers that use backing store, new
      Santa by Thomas Linder
version 1.40 
    -solidbg for improved performance, memory leak fixed.
version 1.39 
    usSleep fixed for VMS. Bug resulted in using too much resources.
version 1.38 
    Santa is a real snow plough now.
version 1.37 
    Offset for certain window managers like twm, nokeepsnowonwindows
    and nokeepsnowonscreen are back.
version 1.35 
    Snow really builds up on windows now, and does not snow on pop-ups.
version 1.32 
    unsigned long snowDelay changed to long, as strtoul is troublesome
version 1.31 
    Make.com and xsnow.hlp for VMS
version 1.30 
    Performance improved. Wind.
version 1.27 
    Bug with erasing snow on top of windows removed
    Erasing of snow at bottom of screen improved in case of expose event
version 1.25 
    Rudolf's red nose. Silly. Grmbll.
    Bug with -nokeepsnowonwindows removed
version 1.24 
    Deleted PaintSnowAtBottom. It's more of a surprise this way.
    Bug removed with windows off-screen to the left
version 1.23
    Aaaargh! gnu C doesn't like the initialization of the new
    Santa pixmaps. Extra braces do the trick, which is so often the case
version 1.22
    Really building up snow at bottom of screen
    A choice of Santa's. Thanks to Holger Veit (Holger.Veit@gmd.de)
    for Santa no. 2. Santa 1 was derived from 2 by scaling down.