Qt 3.2.3 is a bugfix release. It maintains both forward and backward
compatibility (source and binary) with Qt 3.2.2


****************************************************************************
*                           General                                        *
****************************************************************************

Compilers
---------

Work around Solaris, AIX, and HP-UX bug affecting
QString::operator=(const QString &) when linking statically.

Fix gcc 3.4 compile problems.


****************************************************************************
*                          Library                                         *
****************************************************************************

General Fixes
-------------

- QJpegIO
	Fix memory leak when writing JPEG files.

- QLineEdit
	Preserve null and empty strings correctly in setText().

- QMessageBox
	Preserve undocumented behavior in 3.1: expand tabs.

- QMimeSourceFactory
	Don't crash when a factory uses a pointer to a QMimeSource
	which is owned by another factory.

- QMovie
	Respect the background color of a movie when loading
	animations with transparent pixels.
	Fix color mode if reading 1-bpp images or frames.

- QPainter
	Fill the complete bounding rect when rendering text with an
	opaque painter.

- QRichtext
	Fix special case where <nobr>\nfoo had an extra space.
	Fix line breaking for Latin text.

- QTextEdit
	Improve speed of syntax highlighting.

- QToolBar
	Do not grow in height when put inside a normal widget.

- QWheelEvent
	Wheel events are now only sent to the focus widget if the
	widget under the mouse doesn't handle the event.

- QWMatrix 
	Fix operator *(QRegion) when the world matrix is (-1 0 0 1 0 0)
	or similar.


Platform-Specific Issues
------------------------

Windows:

- QPrinter
	Fix resource leak when printing on Windows 9x.
	Fix crash for Win98 with HP OfficeJet Pro 1150C.

- QTextBrowser
	Fixed weight problem in setFont().

- QUriDrag
	Fix bugs with encoding and separators.

Mac:

Mac OS X 10.3 (Panther) changes:

- QMacStyle
	Draw push button text vertically-centered.

- QSplashScreen
	Make the splash screen centered.

- QWidget
	Tooltips are displayed in the correct place in Panther.
	Applications that save and restore their geometry will not
	"walk up" the screen.

General Mac OS X changes:

Fix crash on exit problem (e.g. with Qt Designer).

- QApplication
	Fix mouse release problem when Control is used to emulate
	mouse button 2.

- QDesktopWidget
	Fix problem with popup windows and dual monitors.

- QFont
	Improve fixed pitch font handling.

- QMenuBar
	Fix crash with empty menus.
	Make sure that when we show the application menu, the items we
	merged in from the other popup menu's are properly
	enabled/disabled.
	Fix case where clicking menu bar would stop timers firing.

X11:

- QApplication
	Avoid endless client message loops when replying to
	_NET_WM_PING events.

- QFont
	Fix crash when using high latin characters with GNU unifont.
	Fix scale factor for printing (rounding error).

- QPainter
	Fix an endless loop and a bug in the shape engine for Hangul
	Jamo. (Affects only ancient Korean texts.)

- QPrinter
	Work around bugs in Xft that cause memory corruption in the
	postscript printer when downloading certain fonts.

- QSound
	Fixed crash when deleting a QSound object while it was
	playing.


Embedded:

Fixed bug when applications connect then disconnect immediately.
Added experimental code to handle 1-bpp and 4-bpp displays for
big-endian architectures (turned off by default).

- QEventLoop
	Make processEvents(ExcludeUserInput) work.

- QPrinter
	Fix font metrics when printing with QPrinter::HighResolution.
