[jsword-devel] BibleDesktop 0.9.9 on the Mac is broken

DM Smith dmsmith555 at gmail.com
Thu Apr 7 05:07:04 MST 2005


It has been noted in Bug BD-64 
(http://www.crosswire.org/bugs/browse/BD-64), that the layout of 
BibleDesktop 0.9.9 on the Mac is entirely broken. For this reason, we 
have not supplied a 0.9.9 dmg.gz for BibleDesktop on the download page 
(http://www.crosswire.org/bibledesktop/download.html)

Mark is working on this. Anyone else with a Mac is welcomed to help. We 
will post when it is fixed amd when the dmg.gz if available.

For developers (I added this comment to BD-64):

I think the problem is tied to the issue of whether to use pack() or 
setSize() to set the size of the window.

The problem with pack is that it asks each component for its preferred 
size and uses that for layout. If a component does not have a preferred 
size, but is a container, it recurses into it to get the size. The 
reason that this is a problem is that it causes setPreferredSize, 
setMaximumSize and setMinimumSize to be called all over the code to 
establish the size of the components. When size problems occur, 
generally by the interaction of sub components, it is very hard to debug.

One solution to the problem is to use setPreferredSize only on the top 
level container in a window.

The other solution is to use setSize on the window. This also provides 
the advantage of being able to maximize the window on some platforms. 
The disadvantage is that if pack() is called, the window is squished to 
its minimum size.

Over time I have removed all the calls to setPreferredSize, 
setMinimumSize, and setMaximumSize and used GUIUtil.setSize() to set the 
size of the windows.

It appears that it is not being honored on Mac OSX.

As I don't have access to Mac OSX, I can't help much further.


More information about the jsword-devel mailing list