<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>Eclipse Project SDK R3.1 - SWT Release Notes</title>
</head>
<body>

<table COLS=1 WIDTH="604" HEIGHT="45" >
<tr>
<td BACKGROUND="workbench.gif"><b>Eclipse Project SDK R3.1 - SWT Release Notes</b></td>
</tr>
</table>

<h3>
Notices</h3>
(c) Copyright IBM Corp. 2000, 2005. All Rights Reserved.
<h3>Known Issues</h3>
<h3><a name="I-Platform-SWT">Platform - SWT</a></h3>

<h4>Eclipse plug-in based on the SWT Browser throws exception</h4>
<p>The SWT Browser widget uses a platform-specific web browser to render HTML.
The org.eclipse.swt.SWTError exception (&quot;No more handles&quot;) is thrown
on platforms that don't meet the requirements for running the Browser widget.
Supported platforms and prerequisites are listed on the SWT FAQ item 
<a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/faq.html#browserplatforms">
&quot;Which platforms are supported by the SWT Browser?&quot;</a>.</p>

<h4>Crash when using the file dialog on Windows XP with SP2</h4>
<p>With some versions of Synergy from Telelogic, Eclipse will crash when you try to open a file 
dialog.  This is due to a problem with the CMExplorer.dll.  The workaround is to
upgrade to Synergy 6.4 (or higher) or to run <code>"regsvr32 /u CMExplorer.dll"</code> and 
reboot (note that this will disable Active CM).
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87798">87798</a>)</p>

<h4>InternetExplorer sometimes freezes on PDF documents with Acrobat Reader 6.</h4>
<p>With Acrobat Reader 6 or 7, some users have experienced an unresponsive user 
interface for up to two minutes when closing a browser which is displaying a PDF document.
The workaround is to disable displaying PDF in the browser. In Adobe Reader
select Edit &gt; Preferences... &gt; Internet and uncheck 'Display PDF in browser'.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56184">56184</a>)</p>

<h4>Crash while editing text on Windows XP with SP2.</h4>
<p>Some users who have installed Service Pack 2 on Windows XP have experienced
crashes while using editors in Eclipse.  The workaround is to place a working version 
of Windows\System32\USP10.DLL in the Eclipse startup directory or uninstall
Service Pack 2.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56390">56390</a>)</p>

<h4>Input Method broken on Motif</h4>
<p>Some versions of RedHat Linux such as Fedora Core 3 and Enterprise Linux WS 
release 4 use a new technology called IIIM (Intranet/Internet Input Method
Framework) to replace the old XIM (X input method).   When running on these 
new systems, Eclipse will crash if you attempt to enter any DBCS character.  The 
workaround is to use a XIM based input method such as chinput.  This problem 
may be fixed in newer releases of RedHat.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=89722">89722</a>)</p>

<h4>Eclipse does not start on Linux-Motif with Xinerama and a UTF-8 locale</h4>
<p>The Linux-motif build of Eclipse does not launch properly when run on a 
computer with Xinerama (provides support for dual head monitors) and a UTF-8 
locale.  The workaround for this problem is to change the locale to a non-UTF-8 
value, or to disable Xinerama.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38843">38843</a>)
</p>

<h4>Eclipse crashes on RedHat Linux 9 with Bluecurve (GTK+ only)</h4>
<p>Users of the Bluecurve theme shipped with RedHat Linux 9 may experience problems running Eclipse.  
These problems may include crashes or reduced performance.  We recommend changing to a different theme.
(bugs <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=38305">38305</a>, 
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67906">67906</a>, 
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37683">37683</a>, 
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58738">58738</a>)</p>

<h4>Eclipse hangs when pasting from an unresponsive application (GTK only)</h4>
<p>If the application that is supplying the clipboard material is unresponsive,
the paste operation hangs Eclipse for several minutes. This situation can be
encountered when copying from an Eclipse target workbench, suspending the target
workbench at a breakpoint and pasting into the hosting Eclipse workbench. 
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44915">44915</a>)</p>

<h4> Unable to drag data between
applications in simplified Chinese locale (Motif only)</h4>
<p>When configured for the simplified Chinese locale, it is not possible to
drag data between applications running on the Motif window system. This is a
known limitation of the Open Motif library. 
(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29777">29777</a>)</p>

<h4> Crash when attempting to
launch file browser (AIX Motif only)</h4>
<p>There is a known AIX graphics bug affecting certain levels of AIX
releases. Ensure that the AIX install includes the necessary service updates as
described in the &quot;Install notes/requirements for Eclipse on AIX&quot;
attachment to the Eclipse bug report. 
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34524">34524</a>)</p>

<h4> Available colors on 8-bit Linux (Linux only)</h4>
<p>Typically, in Gnome Linux installs running with 8-bit visuals (i.e. 256
color mode), before the Eclipse application is started there are no free colors.
This may mean that Eclipse is unable to allocate the default widget background
color, causing it to display a white background. The functionality, however, is
otherwise unaffected.</p>

<h4> List and ComboBox on Windows
NT (Windows NT only)</h4>
<p>On Windows NT only, you should avoid creating items in a <code>List</code>
or <code>ComboBox</code> with strings longer than 1000 characters. Doing so may
result in a General Protection Fault. This has been fixed in more recent
versions of Windows.</p>

<h4> Excessive CPU consumption&nbsp; (Linux GTK only)</h4>
<p>When using Linux GTK 2.2.1, there are some scenarios where the CPU usage
goes to 100% for no good reason. When this occurs, resizing or closing the
dialog seems to return the CPU usage to normal. 
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35443">35443</a>)</p>

<h4>IME-related crash (Linux Motif only)</h4>
<p>When using Linux Motif and GB18030 IME &quot;chinput&quot;, Eclipse can
crash if the IME client window is left open when the parent window is disposed.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32045">32045</a>)</p>

<h4> Using IBM J9 VM (Photon and AIX)</h4>
<p>On QNX Photon and IBM AIX, the SWT library will not be found when running
with an IBM J9 1.5 VM. This is a bug in the IBM J9 class library in version 1.5.
You can workaround this problem by adding the SWT library directory to your
LD_LIBRARY_PATH environment variable.</p>

<h4> Missing permissions for SWT native libraries in workspace (HP-UX only)</h4>
<p>When retrieving the SWT Motif fragment into an Eclipse workspace, the
permissions of the native libraries are reset. This creates a problem on HP-UX
because shared libraries need to have execute permission. Attempting to
self-host with this fragment throws an UnsatisfiedLinkError...Permission Denied
error. You must manually change the permissions to make these libraries
accessible (assume the workspace is at <code>/workspace</code>):</p>
<blockquote>
  <blockquote>
    <p><code>cd /workspace/org.eclipse.swt.motif/os/hpux/PA_RISC<br>
    chmod 555 *.sl</code></p>
  </blockquote>
</blockquote>
<p>(bug <a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20305">20305</a>
describes a related problem)</p>

</body>
</html>
