Fix compile error Xaw build The variable initialSquareSize was not defined in the Xaw build, and now has been moved to dialogs.h (which is part of both builds).
Abbreviate DATADIR to ~~ while saving XB themes The path name of theme files is typically quite long in XBoard, where installed data is very deep in the file-system tree. This path is now recognized, and replacend by its abbreviation ~~ when storing a theme in the -themeNames option.
Add Mute all Sounds menu XB XBoard now also has a menu item to mute all sounds (except the Play button in the Sounds dialog) at the topof the Options menu, like WinBoard.
Prevent crash on help-click for engine without manual The error message of "man w xxx" when no man entry for xxx exists appears on stderr, which is not caught by popen(). As a result the path to the man file gets set to an empty string, and saveStrCpy is not so save that it can copy an empty string, but quits XBoard through an ASSERT in that case.
Make EditTags dialog non-wrapping As the data edited with this dialog (PGN tags, engine list, theme list, book moves, ICS menu definition) is always tabular, wrapping the lines is just confusing, and it is better to have an automatic hscroll in case the lines are too long to fit.
Add menu item for editing ICS text menu An item Edit ICS Menu was added in the View menu, and will pop up the Edit Tags dialog for editing the -icsMenu option that determines how the ICS Text Menu will look.
Add Edit Themes List menu item XB The Edit Tags dialog is now also used for editing the -themeName list, with a menu item in the View menu to pop it up.
Let file chooser show preview of textures on board When browsing for a board texture or piece theme, selecting a file in the browser will now cause immediate display of the board with that texture or theme, which will revert if you cancel the choice. Or when you accept the choice, but cancel the Board dialog.
Fix browsing for folders, and allow starting in DATADIR The previous path seemed to cause a segfault when browsing for a folder with an empty text-edit. In addition there existed a bug for browsing from the Engine Settings dialog, where the value of the option was taken as a filter. Both are fixed now. The Option.textValue field, which for FileName Options holds the filter, for PatName Options could be NULL or "". The latter is now taken to mean that browsing should start in DATADIR, and is only used when browsing for sound files or pieceImageDir with empty pathname field.
Start button-activated browse near old field contents GTK The file chooser activated by Browse buttons for filling a File or Path text edit started in the last directory it visited for that file type. But for the initial browse after startup it started in the current directory. Now it starts in the directory derived from the filaname currently in the text edit, if there is one, and only in the last- visited directory for the file type if the text-edit was empty.
Apply fonts in 'other windows' after sizing
Store fonts changed by font dialog in fonts table The fonts table holds fonts per type and size that should be saved in the settings file because they were either read from it, or explicitly specified by the user on the command line. This now also holds for fonts altered through the Fonts dialog, without waiting for the saving of settings, because by that time the boardSize might already be different.
Reset fontIsSet when sizing causes change to default font The array fontIsSet now tracks whether the fonts in actual use are from a (possibly size-adapted) default, or were specified by an option (also through a fontIsValid entry in the fontsTable) or the Fonts dialog. For changing a font on sizing a subroutine is now used.
Fix Bold button and application of commentFont Oops! The B button in the Fonts dialog had disappeared with the suppression of the B(lue) button in the Board dialog! The comment font was applied to the wrong widget in the Edit Comment dialog.
Only adjust fonts that are actually changed OK-ing the Fonts dialog now checks which fonts have been changed, and only applies those to the widgets that use them. In addition it sets a flag to indicate that the changed font no longer is a default. A bug that did not apply the gameListFont for preview is now also fixed.
Adjust window height after clock-font change A routine LockBoardSize are added, and called to protect the board's Graph widget from absorbing the height change pf clock and message field. Enlarging these now forces the top-level window to expand, and after the change we try to reduce this window size to tightly fit the board to squeeze out empty area after shrinking.
Fix help clicks in Engine Settings dialogs A previous patch had broken recognition of the .IX Item "..." lines.
Use the official GTK font selector A gtk_font_button is now put in the Fonts dialog to allow selection of a general font. The individual window fonts got a button marked * to assign this font to them. To implement the selector button some kludgy code had to be added in the generic dialog constructor, to recognize these Button Options by name, and use the special GTK widget to implement them, or assign an unusual callback.
Fix Xaw for font damage A dummy for ApplyFont is added in the Xaw front end to allow compiling it, and the Fonts dialog refuses to pop up when it recognizes an X-font setting for the message font, with an apology.
Replace coord font control for ICS font control In the Fonts the control to set the coord font is removed, as the Cairo version currently ignores the -coordFont setting. Instead a control to set the font in the ICS Console is added. As the fonts there are controlled by tags, and would ignoe the global font setting of the widget, the font tag is redefined through a kludgy call of AppendColorized with a NULL string as text. This is now interpreted as a signalfor recreating the font tag based on the current icsFont, which will then only be applied to future messages.