1 Horribly out of date, see ../Changelog. Or get cvs (see www.fvwm.org) and
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
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
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
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
129 * 120396: Turned _off_ most debug options by default. Moved them to the
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\"`
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
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
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
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
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
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
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
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
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
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.