Cull unused functions when compiling against librplay.
[fvwm.git] / modules / FvwmButtons / CHANGES
blob00318cc2be0da03f302bd8bf20198097722874a9
1 Horribly out of date, see ../Changelog. Or get cvs (see www.fvwm.org) and
2 play with "cvs log"
4 Changed since FvwmButtons-200396b
6  * 110198: Updated manpage
8  * 110198: Animated panel, button geometry and 'Left', 'Right', 'Center'
9    options have been added.
11  * 200396: Updated TODO file some.
13  * 210396: Fixed Desk buttons that didn't hang correctly.
15  * 280396: Chuck: Fixed some problems with macro definitions  min,max and abs
16    on AIX
18  * 280396: Think I fixed the problem that made windows get huge on machines
19    with non-cleaning mallocs (AIXs) when no global Frame was specified.
21  * 280396: Somehow the string "*blabla" should have _2_ chars more allocated
22    than "blabla" or the parser would choke and die on some ELF linux system..
23    Thanks to Dirk Vangestel for this.
25 Changed since FvwmButtons-200396
27  * 200396: Hups, seems I introduced a little bug that made it reluctant to 
28    swallow some windows, particularly shaped ones... Should be back to normal
29    now.
31  * 200396: Thanks to Romano again for saving my ass - I managed to remove
32    the initialization of b->flags, creating major disasters on startup.
34 Changed since FvwmButtons-130396
36  * 130396: Did lots and lots of things, actually had pixmaps for backgrounds
37    working, and had started a complete restructuring of the source (again)
38    Then the disk crashed. Good. Happy.
40  * 140396: Fixed real inheritance of swallow flags.
42  * 140396: Fixed bug which dumped core if Desk buttons were present.
44  * 140396: Check before redrawing background/padding if it's needed.
46  * 140396: Gave bitmaps the correct background color.
48  * 180396: On slow systems, when using the UseOld flag on several buttons,
49    it could spawn several copies of each program. Now only spawns after 
50    _first_ M_END_WINDOWLIST, not every one.
51    Also made it honor inherited UseOld flags and not spawn on startup.
53  * 180396: Some editing... does every cpp understand '#    ifdef A' ?
55  * 180396: Removed a couple of calls to buttonJustify in draw.c..
57  * 190396: Made the parser properly use tolower() when comparing, preparing for
58    i18n to LC_CTYPE... 
60  * 200396: Updated somewhat to work with latest fvwmlib picture patch of mine.
62  * 200396: Again changed the resource name and class, now it is (in ICCCM
63    compliance) the invoking name and FvwmButtons, respectively.
65  * 200396: Now also does shaped bitmaps w/o xpm library. You won't notice
66    until the background pixmaps are done though. Also fixed a memory leak 
67    where the temporary pixmap made for a bitmap was not deleted.
69  * 200396: Now uses the picture caching introduced with the fvwmlib patch
70    mentioned above. This patch btw also applies to fvwm menus, could save
71    major amounts of memory (say 50 equal 16x16 pixmaps - you save 49 times
72    512 bytes for just the pixmaps and the masks (assuming 8bit display),
73    plus some overhead. Not to mention it should start much faster!
75  * 200396: Now uses XTranslateCoordinates instead of XQueryTree to find 
76    real coords when swallowing a window.
78 Changed since FvwmButtons-120396
80  * 120396: Now properly avoids modifying icons on monochrome displays. This
81    used to ruin xpm's mono settings. A patch for the Picture code in fvwmlib
82    is also needed, get my fvwm-picture-pl2.patch, and also fvwm-menus.patch
83    which will fix the same problem for fvwm menus.
85  * 130396: Fixed two typos on the man page, thanks to Brandon for noticing.
87  * 130396: Improved parser to ignore leading spaces in buttonrc files, and
88    to accept any amount of whitespace between *FvwmButtons and (...) in
89    .fvwm[2]rc. Thanks to Alan for pointing this weakness out.
91  * 130396: The main call to XCreateSimpleWindow would give random x,y coords
92    unless given a geometry, perhaps that is allowable when using a WM, but not
93    without. This is now fixed.
95  * 130396: Now uses XSetWMProperty instead of XmbSetWMProperty, to please
96    those stuck with X11R4. Thanks to Angiolini Giorgio for the information.
98  * 130396: Fixed parser to cope with Exec something, i.e. without the ""
99    empty hangon notifier. It used to garb this up, trying to do Exec mething.
100    Fixed man page to reflect the change.
102 Changed since FvwmButtons-110396b
104  * 120396: Added lots of debug information for swallow/unswallow. Finally did
105    it all properly when exiting, no more X Errors when restarting fvwm from
106    FvwmButtons :-) FvwmButtons grabs the server, and goes through the 
107    pending eventlist to decide which windows have been destroyed by fvwm
108    already before deciding to kill,close or reparent. Or ignore. After all
109    children are handled, ther server is ungrabbed.
111  * 120396: Added some debugging output for events and fvwm communication.
112    Now uses only SendText instead of both SendInfo and SendText (duplicates).
114  * 120396: Fixed the position detection routine for buttonpresses, should now
115    be a little more accurate.
117  * 120396: Fixed stupid negated #ifdef that tried to use the XPM color loading
118    if you didn't have it, and not if you did.
120  * 120396: Finally! Removed the superfluous XFree that had made FvwmButtons
121    unusable to many people! Thanks, thanks and many more thanks to Romano
122    Giannetti for tracing down this stupid bug! I mean, the variable it freed
123    wan't even used! Romano is hereby awarded the title "Bugslayer" for this
124    outstanding feat. Applause!
126  * 120396: Added some more starting debug info that should be unneeded after
127    the above fix.
129  * 120396: Turned _off_ most debug options by default. Moved them to the 
130    header file.
132  * 120396: Cleaned up a few unused variables. Added #include <ctype.h> to
133    parse.c, after advice from Romano.
135 Changed since FvwmButtons-110396
137  * 110396: Fixed bug where, if Respawn was specified by a container, and a
138    button had specifed NoRespawn, it would still respawn. Or the opposite
139    situation, Respawn locally and NoRespawn higher up, would cause NoRespawn.
141  * 110396: Fixed bug where x padding would be set equal to y padding if no
142    padding was specified for a button. 
144  * 110396: Wrote a file INSTALL and a samplebuttonrc file.
146  * 110396: Fixed bug where containers would get padding and information from
147    parents on redraw, when they were not supposed to.
149  * 110396: Fixed bug where icons left of title would not be clipped properly
150    when the button was sized too small.
152  * 110396: Added error messages telling when a font could not be loaded.
154  * 110396: Turned on lots of starting info by default (turn it off by
155    commenting out the defines in FvwmButtons.c) which will hopefully help
156    people understand what is going on when it dumps core on them.
158  * 110396: Fixed bug where bitmaps would get drawn with current background
159    instead of the one given for the button.
161  * 110396: Fixed ShuffleButtons to reduce the number of rows if there are
162    too many of them. This should correctly handle single buttons without
163    giving rows or columns options.
165  * 110396: FvwmButtons will now not create windows less than 16x16 pixels,
166    in case you have not provided a geometry or any buttons from which 
167    FvwmButtons can calculate a unit buttonsize.
169 Changed since FvwmButtons-080396
171  * 090396: Parser now accepts escaped quoting characters in quote. Only the 
172    current quoting character is unescaped while parsing, i.e:
173      Action `Exec emacs \`xcb -p 1\` -title \"hello\"`
174    would give 
175      Exec emacs `xcb -p 1` -title \"hello\"
176    Also, the string "\\"" would be read to \", as only the sequence \q will
177    be collapsed, where q is the quoting character.
178    Thanks to Emiel Witteman <ewittema@wi.leidenuniv.nl> for pointing out the
179    necessity of this improvement.
181  * 090396: Rewrote flag handling, now you can specify title flags and swallow
182    flags in the container part, like Container(Title(Left,Side)) and that will
183    count for all subbuttons. This also goes for all the swallowing flags, and
184    these negatives have been introduced: Kill, Hints, NoRespawn, NoOld, 
185    NoTitle. All this is yet not fully tested.
186    There is no negative for Title(Side) because this is a Hack! (see README)
188  * 090396: Made a patch to fvwm-2.0.41 that allows any module to pop up a real
189    Popup menu! Just use it as a regular command - it's like a dream.
191  * 090396: Changed ResourceName to "FvwmButtons" and ResourceClass to 
192    "FvwmModule", regardless of what name the module is given at runtime.
194  * 090396: Split up source some more, mostly to ease maintenance and get 
195    faster recompiles.
197  * 090396: Took a shot at the exposure handler, relaxed the updating a little,
198    now there is _much_ less flashing when redrawing, and it only redraw parts
199    that are part of the expose.
201  * 090396: Moderated ending efforts to WM_DELETE_WINDOW instead of KillClient.
202    However some programs don't understand that, so remodeled Kill,NoKill flags
203    to decide if KillClient should be used. The old Kill,NoKill are now 
204    Close,NoClose.
206  * 090396: Updated the man page somewhat on the flag changes.
208  * 090396: Rewrote icon handling to use fvwmlib's Picture routines, the same
209    that are used for fvwm's menus. Made a patch to fix bitmap searching for 
210    this.
212  * 090396: Tidied away all the colorcloseness settings, it's the same level
213    as the other xpm stuff used so no extra checking needs be done.
215  * 090396: Fixed bitmap icons, which converted from 1 to X planes each time
216    they were drawn, bummer.
218  * 090396: Actually fixed most problems with resizing to a very small size.
219    Swallowed windows might still give you X Errors though, if they don't like
220    being 1x1.
222  * 110396: Added config option  *FvwmButtonsFile string  which will read the
223    config from the file "string" instead. Also, this can be given as an
224    argument starting with:  FvwmButtons FvwmTesting string
225    This config file is the same as in .fvwm[2]rc, but you don't put
226    *FvwmButtons in front of all the lines.
227    The filename will have to be given with full path or be relative to the
228    dir you started fvwm in. No preprocessor is available, but it does '#'
229    comments and linecontinuation.
231 Changed since FvwmButtons-070396
233  * 080396: Now _really_ works with common PixmapPath and IconPath. I have even
234    tested it this time :-)
236  * 080396: Rewrote swallowing: If a window disappears between M_WINDOW_NAME etc
237    and M_MAP, it is assumed crashed, no further action. But if the window 
238    simply has gotten another parent, we assume some other swallower got to it
239    before us, so we release our hold and give a new Send_Windowlist to find
240    another fitting window, and if that fails, spawns one ourself.
241    Still, best to avoid competition about windows to be swallowed, use 
242    different titles. It still easily fails if it processes an out of date
243    windowlist.
245  * 080396: Put in some more debugging output, controlled by the defines in
246    the head of FvwmButtons.c.
248  * 080396: Now, when quitting FvwmButtons, it checks to see if a window still
249    exists before trying to kill it or unswallow it.
251  * 080396: Added Size w h command, assures a button get at least this large.
252    Great for buttonboxes with only swallowed windows.
254  * 080396: Man page: Added Size description, replaced some "frame"s with
255    "relief" (Maybe the option should be changed also?), added a subsection
256    on how initial buttonsizes are calculated, changed #908090 to rgb:90/80/90
257    to conform to X standards, and wrote a blurb saying so, and what to
258    consider when using the older # method.
260  * 080396: Fixed redrawing buttons - now the container padding is cleared
261    correctly also when resized to mismatching sizes.
263  * 080396: FvwmButtons now allocates only one graphic context instead of 3.
264    Shadow of buttons are now longer handled specially for monochrome screens.
266  * 080396: Hacked an option to the Title command, Title(Side) now stacks
267    Icon and Title side by side. It also left justifies the icon automatically.
268    Between the icon and title there is the horizontal padding space.
269    Added it to the man page.
271 Changed since FvwmButtons-060396
273  * 060396: Made if startable as "Module FvwmButtons SomeButtons", or even
274    "FvwmButtons SomeButtons", which will name it SomeButton and does away
275    with silly softlinks.
277  * 060396: Fixed the close color allocation via Xpm to work with xpm versions
278    back to 3.2b, which was released october 92. There was really no need of
279    using features from 3.4g.
281  * 060396: Rewrote font loading, for no particular reason.
283  * 070396: Did some work on individual color settings, now Fore and Back can
284    be set in buttons and in containers. 
286  * 070396: Take back suggestion that ConfigureNotify is autofollowed by
287    Expose, not true when no subwindows. Now ConfigureNotify Resize does a
288    full redraw.
290  * 070396: Fixed Right option of strings, which was broken. For instance,
291    when used, title became left justified. Also it was a little confused
292    about which font to use where.
294  * 070396: Update man page to specify Back and Fore colors and mention 
295    argument namechange. (I.e FvwmButtons AnotherName invocation.)
297 Changed since FvwmButtons-040396
299  * 060396: Removed a bug that would choke on buttons with "Desk xxxx" commands
300    on them. Thanks to Robert Tarrall <tarrall@plutus.colorado.edu>.
302  * 060396: Color-closeness behaviour has been disabled by default, as it 
303    requires xpm-3.4g or newer. Several people had trouble with this. It now
304    avoids this code if your xpm include is too old.
306  * 060396: Removed bug that made it ignore an xpm when it was in the same
307    directory searched for bitmaps.
309  * 060396: Now sets Class and Resource to FvwmButtons (or bound name) instead
310    of NoClass, NoResource. Code copied from FvwmTalk.
312  * 060396: Parser no longer accepts '(' and ')' as quoting characters, those
313    are reserved for optional parameters. String quotation characters available
314    are "string", 'string' and `string`, the last one should be used if you 
315    want preprocessors to get inside.
317  * 060396: Some general cleanup of unused variables and unclean typing. Got a
318    little shocked when I saw what good ol' -Wall came up with. 
320  * 060396: Changed Action syntax, removed Mouse syntax. Mouse # command shall
321    now be given as Action(Mouse #) command. Future extensions of this will be
322      Action(Mouse # [Click|DoubleClick|Move [N|S|E|W]]) command and
323      Action(Key code [moderators]) command.
325  * 060396: Fixed line continuation in the man page, thanks to Romano Giannetti
326    <romano@iet.unipi.it> for pointing it out.
328  * 060396: Swallow changes! There is a new flag UseTitle, which must be used
329    if you want the button to get the window title as it's title. It will no
330    longer automatically overwrite. This is not backwards compatible though.
331    Also there is a change of syntax, all swallow flags must now be given with
332    the swallow command, like:
333      Swallow(NoHints, NoKill, Respawn, UseOld, UseTitle) Hangon Command
335  * 060396: When NoKill is set, windows are unswallowed to their original 
336    geometry (x,y,width,height,borderwidth). Nice in conjunction with UseOld.
337    Note: If you experience _systematic_, _reproducable_ errors with NoKill,
338    UseOld, Respawn etc, do not hesitate to report! There are some dustdragons
339    around.
341  * 060396: Frame now accepts a negative parameter, this causes the frame to
342    be inverted for all purposes. Pushing an inverse button makes it stand out
343    etc. This duplicates the excellent Variable Relief patch by Gregory
344    Lauckhart <gregl@cs.washington.edu>
346  * 060396: Did some real updating of the manual page. Even wrote a section
347    on the arranging algorithm!
349  * 060396: Put in justification of titles, the syntax is now
350    "Title[(Left|Right|Center)] string". If the title is too long its tail is
351    cut off, unless it is Right justified - then its head goes.
352    Now only stacking order is missing before we have it emulate menus with
353    icons :-)
355  * 060396: Fixed code that stores geometry of a swallowed window, now it 
356    really unswallows to same place. Hint: XQueryTree()....
358  * 060396: Finally got rid of the annoying problem that swallowed programs
359    sometimes managed put a border on themselves after being positioned.
360    ResizeRedirectMask to dead ears is like plucking the legs of an insect...
362  * 060396: Added option NoSize, which will make the initial size estimate
363    skip that button when calculating sizes. A very long title or an almost
364    right size icon could ruin you whole setup without it.
366 Changed since FvwmButtons-020396
368  * 030396: Fixed the positioning of large windows, which was thoroughly
369    unusable due to a "bug" in button_belongs_to(). Rewrite touched a little
370    on ShuffleButtons() too.
372  * 040396: Fixed bug that made FvwmButtons crash with BUG: Illegal iconwindow
373    if an icon failed to load for some reason.
375  * 040396: Added better error messages for GetXPMFile(), also told Xpm to use
376    whatever closest colors available if not able to allocate exact ones.
378  * 040396: Made it allocate colors through a call to XpmCreateImageFromData()
379    to gain from its color closeness algorithms, which gets close colors if no
380    space is left in the colormap. Better than crashing :-) Should put all the
381    calls together to make it in one go...
382    But what to do when not using Xpm?
384  * 040396: Fixed bug that messed up icon_w and icon_h when failing to load a
385    bitmap, which messed up buttonsizes and made a BadValue when creating the
386    main window.
388  * 040396: Fixed bug, when a font failed in a subcontainer, it would copy it's
389    parents personal font instead of it's public font, probably just a garbage
390    pointer. If any subbuttons had titles, it would foul up as above.
392  * 040396: Actually, it seems it was this: when a button with both icon and
393    title failed to load it's icon, icon_w and icon_h was never initialized,
394    but used to calculate button size.