<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.7 [en] (WinNT; I) [Netscape]">
   <meta name="Author" content="IBM">
   <title>Eclipse Platform Build Notes - SWT</title>
</head>
<body>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 018 - Wednesday August 20, 2003

<h2>
<a NAME="New APIs"></a>New APIs</h2>

<p>Browser class added for Windows and Linux GTK</p>
<p>36952:	[Plan Item] Display HTML in a widget</p>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>    
41201:  GTK-BIDI: RTL support in Label
<br>41362:  GTK-BIDI: RTL support in Group
</blockquote>    

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 017a - Tuesday August 19, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>    
22322: AWT Container is a SWT container does not get its background painted in JDK 1.4.0  
<br>39752: SWT_AWT support for Java 1.4  
<br>40828: Vertical toolbar strange behavior       
<br>41418: FormLayout causing infinate loop.  
<br>41424: Javadoc is bogus for GC.drawArc  
<br>41455: TableColumn#setWidth(int width) allow width=0 but GTK doesn't like it  
<br>41620: eclipse.exe on Mac truncates error messages longer than 255 chars  
<br>41627: Editable Combo incorrect width  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 017 - Tuesday August 12, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>    
4608: Canvas.setRedraw(true) makes widget visible (1G975VG)  
<br>6220: Workbench is automatically brought to front in focus follows mouse mode  
<br>38605: CTabItem cannot be created in Linux-GTK  
<br>39173: Thread processing is extremely slow on GTK. (BBAWT)  
<br>40102: [Viewers] ITreeViewerListener.treeExpanded() is called twice  
<br>40156: CTabFolder's client area is off by a few pixels when there are no tabs  
<br>40624: JVM crash caused by org.eclipse.swt.internal.motif.OS.XmImSetValues(Native Method)  
<br>40884: Eclipse crashes with Sun jdk 1.4.2  
<br>40899: Eclipse 2.1.1 does not come up on HP when remotely attaching from a linux box  
<br>41067: OLE ref count problem when opening file for read  
<br>41111: [portability] DirectEdit editor misplaced after using scroll wheel  
<br>41188: GTK-BIDI: RTL support in Button  
<br>41200: GTK- contents of check and radio buttons can't be aligned to center and to the trailing edge of widget.  
<br>41233: Control added after open() doesn't get painted unless the window is resized.  
<br>41324: Preferences->Workbench->Appearance crashes JVM [Motif]  
<br>41347: CCombo shouldn't fire defaultSelection on mouse list selection  
<br>41366: Widget is disposed exception while layout  
<br>41375: FormLayout.layout takes too long for more controls  
</blockquote>   

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 015 - Tuesday July 29, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>    
36927: UI does not get focus on multiscreen Suse 8.2  
<br>37095: BIDI - When starting Eclipse from Arabic locale it is always RTL oriented  
<br>38349: wizard description showing border and caret  
</blockquote>   

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 015 - Tuesday July 29, 2003

<h2>
<a NAME="Breaking Changes"></a>Breaking Changes</h2>
<p>
<b>Motif and Photon: Change of event ordering in Table and Tree</b>
<p>
The ordering of selection events has changed on these platforms to become consistent with that of win32:
<ul>
<li>The previous ordering of Selection-MouseDown-MouseUp has been changed to MouseDown-Selection-MouseUp for mouse (de)selections</li>
<li>The previous ordering of Selection-KeyDown-KeyUp has been changed to KeyDown-Selection-KeyUp for keyboard (de)selections</li>
</ul>
<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>    
33370:  event firing differences (win32/motif)   
<br>37578:  TableColumn does not notify of Resize event  
<br>38712:  'Gtk CRITICAL' error being roported by SWT in Linux-GTK. (BBAWT)  
<br>39401:  Swing interoperability - solution proposal  
<br>39730:  code assist popup does not take focus  
<br>40652:  GTK Linux - Memory Leak  
</blockquote>   

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 014f - Tuesday July 22, 2003

<h2>
<a NAME="Breaking Changes"></a>Breaking Changes</h2>
<p>
<b>Clipboard API must be called from UI Thread</b>
<p>
On GTK, Clipboard interactions run an event loop which must 
be executed in the UI Thread.  As a result, on all platforms,
invoking the Clipboard API from a non UI thread will result 
in an SWT Exception of ERROR_THREAD_INVALID_ACCESS.

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>   
33355: Button with ARROW style answers getText() differently  
<br>35761: ControlExample - Label - Image labels issue with SWT.WRAP  
<br>35861: crash in gtk_editable_delete_selection on GTK 2.2.1/Redhat 7.1  
<br>36611: Tracker resize events are not sent correctly  
<br>38224: Tracker implementation on GTK incomplete  
<br>38777: Out of bound exception in ColorDialog  
<br>38855: Table.getImageBounds returns incorrect value  
<br>39011: Multimonitor - add api to get monitor which 'owns' a widget  
<br>39840: No context menu on the fast view icons and perspective icons  
<br>39965: gtk has trouble processing events until window pop  
<br>39987: BIDI: MIRRORED bit can't be switched on in the style's bitmap of any SWT widget.  
<br>40130: StyledText - add accessibility support to StyledText  
<br>40155: Font.dispose() throws NPE  
<br>40158: Right click on a tree doesn't select the element  
<br>40159: Combo throws exception in junit test  
<br>40216: Right CTRL+SHIFT right justifies text and reverses scroll bars  
<br>40242: Text being reversed while hitting Ctrl+Shift  
</blockquote>   

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 014 - Tuesday July 14, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>   
30021: Font and Color dialogs hang on JVM 1.4.1  
<br>37030: No focus listener control in SWT combo on Linux platform  
<br>37428: Extra pop up menu on text widget with setMenu  
<br>39032: StyledText - exception in autoscroll in bidi  
<br>39166: crash  
<br>39236: Completely different behaviour for creating a shell with a parent versus calling setParent
<br>40030: StyledText - auto scroll next in SINGLE mode does not stop  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 013 - Thursday July 10, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>   
37490: BIDI: text in the rtl-oriented Text control can't be aligned to the trailing edge of this control.  
<br>39013: scrolling down in editor corrupts contents  
<br>39380: TabFolder not working in QNX 6.2.1  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 012 - Tuesday July 8, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>   
39443: GTK Error calling TreeItem.getExpanded() on a tree item being disposed.  
<br>39084: Combo.add firing unnecessary events (BBAWT)  
<br>21212: GTK:Selecting a Checkbox from within the selection callback causes infinite loop(BBAWT)  
<br>19614: NO_RADIO_GROUP does not work on GTK  
<br>39119: Text.ComputeSize(0) returning 0 on GTK (BBAWT)  
<br>34386: Traversing out of Table header can lead to warning  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 011 - Tuesday July 1, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>   
38975: PropertySheetViewer gets IllegalArguementException if RootElement set before visible  
<br>39319: Eclipse often hangs. Right clicking helps sometimes  
<br>39105: Eclipse Crash inserting a New Project on CVS  
<br>19153: Combo fires too many SelectionEvents in GTK2    
<br>12220: SWT Mouse Enter comes before Mouse Exit [portability]  
<br>38606: List constructor with SWT.SIMPLE | SWT.MULTI style parameters behaves incorrectly (BBAWT)  
<br>39140: SWT.VERTICAL ignored in ToolBar   
<br>20083: CCombo method redraw() does not work  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 010 - Tuesday June 24, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
17656: Inconsistent combo box display behaviour  
<br>30871: [Cell Editors] Support for multiline text cell editor  
<br>33966: CCombo is padding it's drop-down items list with blank entries  
<br>34365: Display problem in the editor  
<br>35852: Crash on first startup in Mandrake 9.1    
<br>38596: ControlExample - 'return' inside text widget goes to button widget  
<br>38626: DirectoryDialog getFilterPath() always returns null  
<br>38627: [Contributions] Cascading menu does not show an arrow  
<br>38914: Clicking in the wrong sequence crashes Java VM  
<br>38987: PocketPC: MULTI Text control ES_WANTRETURN/_TAB_NEXT problem  
<br>39049: FormLayout performance  
<br>39078: FormData throws "Widget is disposed" when it's widget is dispose()d  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 009 - Tuesday June 17, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
38353:  crash in OS.gtk_main_iteration() when double-click disabled text widget  
<br>38912:  DBCS: input special symbol breaks input method on ja_JP   
<br>38344:  StyledText - exception when selecting lines in WRAP mode  
<br>31195:  StyledText - SWT.WRAP display StyledText incorrectly  
<br>38376:  SWT 3007 on Linux GTK is not handling threads properly (BBAWT)  
<br>35183:  DBCS: Set text generates Index of Bounds exception using 2.0 NLS language pack  
<br>38841:  NPE in Widget.filters  
<br>37782:  Shell setMinimized(true) doesn't deactivate Shell  
<br>38382:  DND in Packages View results in incorrect target element  
<br>7946:  List portion of CCombo goes off the bottom of the screen  
</blockquote>  

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 008 - Tuesday June 10, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>  
38385:  Japanese Input (IME) not doesn't come up  
<br>38388:  eclipse crash on redhat 9/ ja_JP   
<br>38213:  [Wizards] Dialogs require a resize to draw  
<br>36541:  Printing of java program causes failure  
<br>38331:  Inconsistent handling of Image on different platforms  
<br>38433:  Editor titlebars are not painted  
<br>21567:  GTK2: Text widget packing error with SWT.MULTI   
<br>29534:  Override default behavior of 'F10' key  
<br>35493:  OleClientSite hang  
</blockquote>  

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 007 - Tuesday June 3, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>  
30810:  Umlauts  
<br>38242:  Border width on Table incorrect - creates unwanted scrollbars  
<br>36636:  StyledText - Printing could end pages twice  
<br>38246:  swtexampessrc.zip is missing from distribution.  
<br>38337:  GC.drawRoundedRectangle(...) method doesn't include the right and bottom edge  
<br>38331:  Inconsistent handling of Image on different platforms  
<br>36610:  Tracker behaviour wrong when resizing  
<br>21191:  Decorations.setImage() could do a better job with masked images  
<br>38221:  Index out of bounds from Combo.select()  
<br>33359:  [JUNIT] Scrollbar tests fail  
<br>33162:  [JUNIT]Slider setMinimum setmaximum and setThumb fail  
<br>38076:  Combo doesn't calculate its size properly when only text is set.  
<br>22222:  Eclipse not properly redrawing MDI shell titlebar text  
<br>31839:  Flashing resize on GTK  
<br>38077:  Junk left on the screen after closing a drawer in Logic Example  
<br>35738:  problem with swt component bindings and XFree86-4.3.0  
<br>35315:  Reset imageHeight on Tables while refreshing items  
<br>17202:  inconsistent help hover placement  
<br>23787:  [Properties dialog] Project Properties -> Info page should not use text fields  
<br>4553:  Motif on KDE2: Things don't redraw (1GA4H7Z)  
<br>4455:  DCR - Tree - need item positioning (1FGPVAF)  
<br>4500:  Text widget has 3D effect although SWT.BORDER isn't specified (1FRSQXH)  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 006 - Tuesday May 27, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
24877: Cannot get file extension from swt FileDialog  
<br>37874: "Jumping" layout  
<br>34634: "Select a type" hierarchy view message cut off  
<br>37941: Coolbar setMinimumSize introduces chevrons on Linux  
<br>38015: Eclipse crashes when using inline outline (Ctrl+O)  
<br>37623: fillRoundRectangle doesn't completely fill  
<br>28535: rectangles with pensize > 1 draw at wrong position  
<br>38055: Shell Title bar displayed when only SWT.REZISE.  
<br>37858: Some SWT Labels draw text in white  
<br>24700: Text: Compute Size error  
<br>37950: Unable to launch Eclipse on Sun Solaris 2.8  
<br>33164: [JUNIT] Scale setMinimum and setMaximum fail  
<br>33166: [JUNIT]Combo setLocation fails  
<br>33158: [JUNIT]ProgressBar setMinimum and setMaximum fail  
<br>33080: [JUNIT]Shell.isMinimized() returns false after shell.setMinized(true)  
<br>33079: [JUNIT]Shell.isVisible returns false after shell.setVisible(true) called  
<br>33088: [JUNIT]TabFolder.setLocation or TabFolder.getLocation not working  
<br>25278: context menu click does not change selection  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 005 - Tuesday May 20, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
30434:  BIDI: StyledText to support RIGHT_TO_LEFT orientation  
<br>35657:  Eclipse crashes and throws exception when starting up in Chinese locales  
<br>37505:  GC.setXORMode() not applying to drawString/Text (BBAWT)  
<br>36934:  Invalid thread access error on creating a font in Motif (BBAWT)  
<br>34648:  [DND] file deleted when dropped in editor on Solaris  
<br>37479:  BIDI: Drop-down list of CCombo doesn't inherit it's orientation from CCombo.  
<br>37498:  BIDI: rtl-oriented TableCursor set next column instead of previos and vice versa, when it uses right and left arrow keys.  
<br>37519:  Bug in Decorations.setPlacement method  
<br>35804:  Cheese in Text  
<br>37164:  Crash when opening a MessageBox on a Text focusLost event  
<br>37497:  Creating of new Image is failed in some cases.  
<br>28525:  DragDetect required  
<br>4734:  drawText() does not respect setXORMode(true) (1GFQI15)  
<br>37138:  GC.drawImage throws Exception with boundary conditions (BBAWT)  
<br>37140:  GC.drawImage throws SWTError with boundary conditions (BBAWT)  
<br>37198:  gtk2 im - imhangul (korean IM) work bad in Eclipse  
<br>21384:  GTK: Random X Window System "Bad Implementation" error(BBAWT)  
<br>37591:  ImageLoader.save for GIF saves in compress GIF format  
<br>33496:  Multi-line text issues too many mouse track events on Photon (BBAWT)  
<br>34185:  Native Tree: Clicking into selection doesn't reselect  
<br>28529:  ProgressBar direction wrong + cheese  
<br>37564:  Remove dependency on X11 in Program  
<br>37303:  Remove X dependency  
<br>37881:  StyledText - NPE when using RIGHT_TO_LEFT style with StyledText on Linux  
<br>36450:  [Key Bindings] Only KeyUp event for Alt+[Shift]+<char> on Windows  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 004 - Tuesday May 13, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
29783:  BIDI: drop-down list of rtl-oriented CCombo is displayed in the wrong place.  
<br>37299:  BIDI:Caret cheese when resizing RIGHT_TO_LEFT StyledText  
<br>37293:  BIDI:GC.drawImage(0, ... draws at 1, ... when using RIGHT_TO_LEFT
<br>37285:  Add Tiff support  
<br>34516:  Cheese in ProgressBar  
<br>32352:  Display of SWT tabbed panes do not redraw during changes  
<br>36649:  Error Icons Draw Through  
<br>33083:  JUnit View not being updated early enough  
<br>29332:  new GC(this) produces a GC that does nothing  
<br>31011:  Paint example does not draw correctly  
<br>27474:  Provide a SWT Java Web Start extension  
<br>37172:  TableColumn align style has no effect on GTK  
<br>31783:  Text doesn't honor visibilty  
<br>29383:  Tree and Table - no gray check boxes on GTK  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 003 - Tuesday April 6, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
36993:  Tracing options not displayed in Run-time Workbench run configuration  
<br>29781:  BIDI: Lack of leading and trailig styles for alignment of widget's contents.  
<br>25623:  can't select items in Tree widget of local history  
<br>27777:  Combo box pixel corruptions  
<br>37102:  Eclipse doesn't start  
<br>37076:  Gtk CRITICAL warning gtktreeview.c  
<br>37202:  GTK Exception on gtk_progress_bar_set_fraction  
<br>31941:  gtk_progress_bar_set_fraction - crash when creating a class under latest Debian GTK 2.2 / Crux Theme  
<br>37075:  I20030429: no swt-carbon-3002 in java.library.path  
<br>18701:  image check box buttons are clipped  
<br>16814:  J2ME SWT - 3 classes not CLDC compliant  
<br>19824:  Needed multi-monitor methods.  
<br>37212:  Order sependencies in setting up menus  
<br>28589:  RedHat 8.0 - DefaultInformationControl hangs workbench  
<br>27202:  Running ControleExample with Device.DEBUG flag on  
<br>37065:  Spacing bug in RowLayout  
<br>31906:  The file dialog widget does not provide a way to programmatically change the type filter.  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 002 - Tuesday April 28, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
36910:  Setting font before setting text on Motif causes X error (BBAWT)  
<br>29765:  BIDI: ToolTiptext do not have Right to left Reading order  
<br>34365:  Display problem in the editor  
<br>35319:  TVT21: Cannot input characters in German for motif   
<br>36433:  Allow Cursors to be created with Images that have a depth >1  
<br>36746:  An overloaded glCallLists() would be useful    
<br>29786:  BIDI: keyborad's left and right arrows move focus between tabs of rtl-oriented CTabFolder in the opposite direction.  
<br>36684:  BIDI: LTR-oriented MessageBox can't be created, if it's parent has RTL orientation.  
<br>36679:  BIDI: PopupList can't be created with explicitly assigned orientation.  
<br>29787:  BIDI: problem with keyboard's left and right arrows, when them used to expand or to collapse rtl-oriented TableTree.  
<br>36276:  BIDI: When UpDown control of rtl-oriented TabFolder is used for scrolling tabs, they are scrolled in the wrong direction.  
<br>36727:  Can't use OpenGL in a plugin  
<br>22943:  Cannot cleanly kill an swt task  
<br>36209:  Copied text to on the clipboard is occasionally null terminated  
<br>34982:  Custom BusyIndicator - no hourglass cursor  
<br>36928:  Custom cursors are not working  
<br>36386:  Eclipse crashes on exit  
<br>7440:  Glitch on Navigation Bar on PocketPC while closing j9 running SWT app  
<br>36915:  java.lang.OutOfMemoryError when creating org.eclipse.swt.graphics.Image  
<br>36838:  OpenGL: GLYPHMETRICSFLOAT cannot be internal  
<br>36955:  ScrolledComposite unused background is painted wrong.  
<br>36562:  [CVS] commit log dialog doesn't set focus correctly  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 3.0 001 - Tuesday April 22, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
<br>7757 Packages view: title and tooltip should not used compress...  
<br>9366 Workbench appears with 1st toolbar item showing hover-ove...  
<br>19228 Try to control motif focus reassignments  
<br>19708 widgetIsDisposed for tootip text  
<br>20279 Division by zero when showing a zero-sized tracker  
<br>21283 Ctrl+/ performs undo, not comment, in emacs bindings  
<br>23847 Keyboard navigation doesn't work on Mac  
<br>24563 DBCS Support for Motif and GTK  
<br>28530 Cheese when moving Sash  
<br>28537 Task view help is wrong if previous focus was editor  
<br>28561 Can't arrow around table  
<br>28800 Switching to a not yet activated perspective doesn't set ...  
<br>28850 setFont() on Text control has no (visual) effect  
<br>29784 keyboard's left and right arrows change value of rt...  
<br>29788 rtl-oriented Tracker has wrong behavior.  
<br>32602 After pressing Cmd-F8, clicking will kill Eclipse  
<br>32965 Move dialog: tree doesn't have focus  
<br>33068 [JUNIT]Label.setAlignment not implemented  
<br>33100 [JUNIT]Table.getChildren does not return an empty array  
<br>33316 FontDialog needs FontData[] API  
<br>33336 Popup menus dont work on PocketPC (bbAWT)  
<br>33492 Addition of tasks to task window is too slow  
<br>33809 Request: add new event SWT.MenuDetect  
<br>33903 [SWT Examples] OLE Web browser view does not open  
<br>34122 Control Example  
<br>34270 Single-click in popups dismisses them (was: Quick F...  
<br>34283 Mac: No task description for progress monitor in wizards  
<br>34445 Reverse sort for AddressBook example  
<br>34446 [Tasks] Focus lost when switching form editor to Tasks View  
<br>34618 Missing keyboard focus  
<br>34940 Eclipse launcher crashes on Sun J2SDK 1.4.2-beta build18  
<br>34996 Tab Event weirdly handled in motif  
<br>35012 Setting the toolbar's background on RC2 doesn't work.  
<br>35090 Outline Popup: Enter doesn't work in tree  
<br>35210 KeyListener doesn't understand CTRL and ALT as a stateMask  
<br>35244 [Action Sets] Hierarchy fast view causes unhandled except...  
<br>35254 Unhandled exception caught in event loop. Reason:Widget i...  
<br>35607 Sash missing cursor in Structure Compare of the Sync view  
<br>35774 Unexpected Exit: Error: Object "" does not have windowed ...  
<br>35837 [DirectoryDialog] There is no disk in the drive. Please i...  
<br>35842 Outline view crashes on WinXP & Win2K  
<br>36000 [StyledText] ContentWidthCache initialization  
<br>36192 Native crash when closing tree nodes  
<br>36270 BIDI: Some custom widgets can't be created with explicitl...  
<br>36612 After install/update: no icon in dock - no focus  
<br>36644 Can not set the background color for ToolBar  
<br>36722 Mnemonic keys are not working for ToolItems  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 033d - Monday March 24, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
8442: NullPointerException and hang on startup in GTK Eclipse  
<br>17359: NLS: No Group2 input  
<br>26078: TabFolder.getClientArea() not correct
<br>34940: Eclipse launcher crashes on Sun J2SDK 1.4.2-beta build18  
<br>35434: [Motif] GC.getFontMetrics() causes VM to crash when font is really small
<br>35596: Event Processing issues under Photon
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 033 - Tuesday March 18, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
30768:  Performance - Typing in Java Editor is unacceptably slow.  
<br>32204: Signal 11 at at org.eclipse.swt.internal.gtk.OS.gtk_progress_bar_pulse(Native Method)  
<br>32602: After pressing Cmd-F8, clicking will kill Eclipse  
<br>33017: VM crash when pressing enter in table cell editor  
<br>33343: New file wizard freezes Eclipse UI  
<br>34166: Disabling, then enabling CVS decorators produced NPE  
<br>34183: The layout of the package explorer cannot be changed  
<br>34248: DBCS: shown up GnomeVFS-WARNING messages  
<br>34418: Crash when running DNDExample  
<br>34463: confirm exit checkbox cannot be selected  
<br>35022: Motif does not send dragFinished event on aborted drags  
<br>26388: Package Explorer does not position on files  
<br>30073: Graphical Editor is not refreshed properly when scrollbars disappear  
<br>31026: Hang on Linux  
<br>32851: Can't remove external tool builder after deleting launch config  
<br>33099: Context menu 'Display' doesn't work  
<br>33713: JRE popup menu in Run configuration dialog not reliable  
<br>34093: Menu missing items  
<br>34428: [Motif] Tree and Table views not getting proper selection  
<br>34633: Table with CHECK flashes cheese  
<br>34815: Cheese in CTabFolder widget  
<br>34879: Calling ScrollBar.setVisible() when a text widget has focus causes a focus lost event on the text widget
<br>25671: Javadoc for class swt/widgets/Dialog missing &lt;pre&gt;
<br>28644: Bold font in label results in missing character  
<br>29486: Keys need stronger filtering.  
<br>32424: [PROGRAMS} Gnome - Program.getPrograms needs to be updated  
<br>32947: Change method signature dialog too big  
<br>33480: Text cut off in Mac in labels.  
<br>33700: Running out of handles on Windows XP  
<br>33822: Strange scrolling of native table  
<br>34036: Native crash on dismissing help window  
<br>34512: ComputeSize of table and tree too small  
<br>34569: BIDI: Styled text change the characters with Large fonts  
<br>34649: TabFolder title does not handle mnemonics properly  
<br>34724: ControlExample  
<br>34835: Widget "default" styles should be reflected in style bits  
<br>34935: Missing border on toolbar  
<br>34983: Native drag and drop doesn't work under linux  
<br>35038: Refactoring dialog (Extract Local Variable) to big  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 032c - Tuesday March 11, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4434:  GPF when running SWT Tree code (1FNI25V)  
<br>23385:  Table vertical column separators redraw incorrectly on MacOSX  
<br>31685:  Entire Eclipse Platform loses focus and goes into the background...  
<br>33834:  [Viewers] NPE in TreeViewer  
<br>34181:  Ctrl-Click doesn't select underlying item before bringing up context menu  
<br>34188:  Progress bar in dialogs doesn't show task information  
<br>34614:  Mouse pointer does not change in table header  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 032 - Thursday March 06, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4592: multi select behavior for file dialog (1G7HZ2Q)  
<br>4659: Double-clicking on fixed size column header resizes it (1GE3WN6) 
<br>4843: EC DCR: Add keyboard support for multi-select to Tree (1GKMHS5)  
<br>4847: Property dialog put behind workbench window (1GKRN9Z)  
<br>7159: Missing Javadoc for Event fields  
<br>7712: No scroll bars in Microsoft Word documents opened from the workbench  
<br>12597: Cannot change OLE Event's VARIANT argument which has [out] directional attribute in IDL  
<br>14329: Modal dialog doesn't disable column resizing  
<br>16886: Address Book bug in the open a File dialog  
<br>16901: NPE removing expression from expression view  
<br>18059: RH7.3 clipboard problem  
<br>18810: Extra unprintable character in copy buffer  
<br>19896: Key up event says Ctrl is released when it's not  
<br>19922: Menu bar items get added one at a time when editors are switched  
<br>22416: NT4: Need context menu on window scroll bar to keep its consistency on Win2k  
<br>23419: [OLE] Do not get scrollbars in Excel  
<br>23841: Eclipse UI does not follow Mac L&F guidelines  
<br>23959: Use native Table and Tree  
<br>24393: DCR - Need to support Mac command key in SWT  
<br>24431: Eclipse M1 Under OSX crashes when using VirtualDesktops  
<br>25383: Variant needs a dispose method  
<br>25604: Quick release upon start of drag hangs eclipse with pointer grab  
<br>26051: [Workbench] Main Eclipse window activates itself very often  
<br>28514: Character positions differ between selected and unselected text 
<br>28982: Toolbar color problem when using the manifest in XP  
<br>29027: Add "delete previous word" and "delete next word" actions to eclipse editor  
<br>29330: JavaDoc does not match Windows - FIX LEFTTORIGHTdoc  
<br>29387: no lines in Table on GTK  
<br>29471: GP - XtDestroyApplicationContext - Closing M4 will sometimes crash the VM  
<br>29717: [PERFORMANCE]SWT Motif exteremely slow with LANG en_US.UTF-8  
<br>29814: GP - No core available - GPF on win2k  
<br>29911: TableEditors not displayed while scrolling.  
<br>30427: HANG/GP - XtDispatchEvent - Eclipse keeps locking up  
<br>30618: ctrl-o not working  
<br>31525: eclipse uses 100% CPU with gtk 2.2.1  
<br>31684: Unable to drag views.  
<br>31717: Unreproducible GP/Hang  
<br>31834: Label and Combo don't align well  
<br>32122: Cannot insert lines into new file code template (regression failure) 
<br>32286: ControlExample Button Tab - changing styles resets button orientation  
<br>32359: No Parent + SWT.APPLICATION_MODAL shell not modal  
<br>32408: I20030220 on MacOS X has generic application icon  
<br>32482: No F1 help on MacOS X  
<br>32734: NPE while viewing variables from debugger  
<br>32856: [Cell Editors] Can not see what value I am typing in the Properties 
<br>32954: [KDE] Programs - fix library build  
<br>33046: DBCS: Can type into read-only Text  
<br>33057: RC1 No caret in editor  
<br>33348: ControlExample: wider than screen, too many tabs  
<br>33580: Scrollable.WM_MOUSEWHEEL uses wrong variable for horizontal scroll  
<br>33590: RC1: "Application Modal" shell style behaves incorrectly  
<br>33592: Fix specification for event.character  
<br>33593: RC1: Toolbar foreground color changes ignored  
<br>33747: NO_TRIM window gives no resize feedback  
<br>33776: Resistering TraverseListenter with Shell changes tabbing behavior.  
<br>33813: List doesn't send out selection events for arrow keys  
<br>33855: Text Cursor Invisible in RC1  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 031 - Thursday February 27, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
16808: Icon in Windows taskbar incorrect  
<br>24494: Incorrect i18n char encoding in text areas  
<br>26541: Exit the Workbench: crash after saving the workspace  
<br>28643: Setting label's background color has no effect  
<br>28845: Refresh tab layout incorrect for lower composite  
<br>29198: Difficult to change character case of cached input values  
<br>29837: [Contributions] Combo control does not show on GTK toolbar, works fine on Win and Motif  
<br>30377: No caret in Java Editor  
<br>30905: Add Menu.setRedraw(boolean) API  
<br>30924: StyledText - StyleRange hashCode throws NullPointerException  
<br>31039: Eclipse does not responde when dialog is opened.  
<br>31187: Selection by mouse drag is out of kilter  
<br>31382: New Folder and New File dialogs UI problem  
<br>31833: wrong background for separator label on MacOS X  
<br>31857: No icons in Labels  
<br>31866: Scrolling in Readme editor is delayed  
<br>31946: Moving CoolBarItems leaves temporary cheese  
<br>31950: StyledText - Shift+UP broken in StyledText control  
<br>31973: GB18030: After created a GB18030 named class, Eclipse for Motif crashed when exiting.  
<br>32360: Embedded display not waking on new Photon events (BBAWT)  
<br>33022: NPE in FontDialog  
<br>33030: Arguments tab 'shows through' Main tab on OS X  
<br>33063: [JUNIT] Caret.setFont  
<br>33119: nullpointer dispose table column  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 030 - Tuesday February 18, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
17057: Outliner: focus causes select causes horizontal scroll  
<br>21469: Accessibility - Tabbing causes a button to become the default
<br>22767: toolbar looks very ugly with Win XP's lnf (using manifest file)
<br>23370: CLabel needs to allow transparent background for Mac OS X  
<br>28831: Displays ligature for fi & fl  
<br>29100: Mouse wheel scrolling not working in editors  
<br>29879: HANG - gtk_main_iteration - Eclipse Freezes moving between perspectives
<br>30055: DBCS: font rendering quality issue on motif  
<br>30570: DBCS - GB18030: Input GB18030 characters as run arguments cause eclipse for motif crash
<br>31568: TableLayoutComposite and Table.showItem don't mix  
<br>31686: Wrong margin correction in widgets.Text.computeSize(int, int, boolean)
<br>31823: Clicking on partially obscured tab should scroll it into view
<br>31855: [Editor Mgmt] Close buttons in editor get cut off  
<br>31880: Layout bug in commit menu  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 029 - Thursday February 13, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6230: ImageLoader: 32-bit colour depth unsupported  
<br>23472: Xlib: unexpected async reply (sequence 0x922d2)!  
<br>23842: "banded" default background look shows through where it shouldn't
<br>25446: Tree Shift-Click not working when item collapse changes selection
<br>26381: OpenType: Key Navigation  
<br>29456: GP - XmDSIGetChildPosition - Problem in Shutdown  
<br>29607: [Cell Editors] usability: ComboBoxCellEditor unusable on GTK  
<br>31009: ACC - I20030205 accelerators issues  
<br>31017: HANG - Hang on import external plugins  
<br>31267: Label and text box get the wrong order  
<br>31448: BIDI - Bidi enablement for StyledText - ArrayIndexOutOfBoundsException when highlighting a blank line
<br>31513: CTabFolder's close box highlight gets clipped at bottom  
<br>31566: FontData "equals()" and "hashcode()" methods do not consider height of the the fontdata
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 028 - Thursday February 6, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
23262: WebBrowser crashes when viewing Shockwave  
<br>25736: Memory leak while using OLE automation  
<br>29265: Control.setEnabled() not implemented properly on GTK  
<br>29593: Contextual menu too short near bottom of menu  
<br>29931: Mouse clicks are unreliable  
<br>30403: CTabItem close box shifts by 2 pixels when tab selected  
<br>30443: Menubar of SWT standalone applications is empty  
<br>30945: Change in mouse clicking behaviour makes FastViews unusable  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 027 - Wednesday February 5, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
20755: TVT2:  truncated text in dropdown for Dependencies tab in manifest editor
<br>22759: Input method does not work on GTK/GTK2  
<br>27180: Unable to copy and paste in editing java file  
<br>27183: Mouse drag select produces crash  
<br>28419: Crash when closing shells  
<br>29777: DBCS: Can't drag a file into Run-time workbench  
<br>30212: Read only text widget : can't copy selection  
<br>30401: SWT standalone examples can't come to foreground  
<br>30452: Mouse gets warped to upper left corner of workbench window on actions
<br>30500: "roaming" focus  
<br>30537: setSelection(allItems) not working on GTK  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 026 - Tuesday January 28, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
14814: Button mnemonics are not shown properly on Windows XP  
<br>24333: DCR - Tree.getTopItem/setTopItem  
<br>24489: Tab cannot get focus when child-composite has scrollbar  
<br>24815: Cannot launch eclipse: javacore dump  
<br>29142: Hyperlinking from stackdump locks up Eclipse  
<br>29191: Tree - no gray check boxes on MAC (carbon2)  
<br>29426: DBCS:Copy/Paste DBCS failed between eclipse and gedit  
<br>29428: DBCS: Pasted string can't be shown correctly in Search dialog
<br>29910: Checkbox not displayed until table scrolled  
<br>29966: No more handles on startup  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 025 - Tuesday January 21, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
25030: (BBAWT) Image Analyzer fails to load a .png file  
<br>25359: RuntimeExceptions thrown from OleListener.handleEvent crash VM
<br>27099: StyledText - Change CTRL key bindings to MOD1  
<br>27369: No more handles error  
<br>27822: Package Explorer allways centers opened file  
<br>28062: Text field in dialog doesn't get focus  
<br>28743: Trying to see test hiearchy freezes eclipse [JUnit]  
<br>28745: Esc does not cancel tracker  
<br>28967: [Editor Mgmt] no close button on last editor when editors drop-down is active
<br>29427: DBCS: Can't input DBCS characters in Search dialog  
<br>29496: Cut & paste does not work in dialog text fields  
<br>29503: DBCS:Can't sort by clicking "Description" on "Task View"  
<br>29599: DBCS: upper bar character will be padded  
<br>29608: DBCS: Selected DBCS Classpath can't be shown  
<br>29611: DBCS:Can not input Hangul(Korea font)  
<br>29612: DBCS:Browse function of "Export" doesn't work  
<br>29614: DBCS: Unable to get "Import" contents location with "Browse" button
<br>29664: SWT Styled Text Wrapping Doesn't Use Font Size Correctly  
<br>29685: DBCS: Candidate Selection Window will be disappeared at DBCS composition
<br>29730: RowLayout.computeSize provides wrong parameter to layoutVertical
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 024 - Tuesday January 14, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
21063: Can't drop views over some widgets  
<br>21561: Keyboard navigation in tree widgets on Linux  
<br>25619: OleControlSite event listener problem  
<br>25843: Info pops do not work for Red Hat 8.0.
<br>27677: [Key Bindings] ctrl-f7 not working  
<br>28879: [Navigator] right-clicking a file doesn't allow me to open it
<br>29208: Gtk directory dialog behaves like a file dialog  
<br>29252: Accelerators are not disabled when the toolbars and menus are on GTK
<br>29302: Slider and Scrollbar handle many boundary cases wrong in set* methods
<br>29334: Make javadoc available for download  
<br>29408: Invoking List.select(*) before open() does not select correct item
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 023 - Tuesday January 7, 2003

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
24283: Default button in the dialog get the enter when typing in japanese
<br>25486: Eclipse fails with 'no free callback slot'  
<br>26057: StyledText - cleanup passing around of fontdata  
<br>26079: Use PfLoadMetrics() to speed up text extenting
<br>27869: StyledText overuse of Font.getFontData  
<br>28286: BBAWT: Incorrect palette/color returned on 32-bit true color display
<br>28382: Extra separator line drawn in emulated CoolBar  
<br>28498: Help menu is confused  
<br>28607: Progress bar doesn't finish in PDE import wizard  
<br>28658: No context menu in perspective bar  
<br>28683: Ctrl-Click in TreeView loses selection  
<br>28701: Method "assert" declared in org.eclipse.swt.tests.junit.StyledTextContentSpec
<br>28719: Scrolling in Welcome editor is not 'live'  
<br>28812: Mouse cursor changes to arrow after hovering a hyperlinked indentifier
<br>28833: Eclipse no longer responds to 'Quit' AppleEvent  
<br>28835: Cursor doesn't change to arrow shape when over text scrollbars
<br>28991: TabFolder.computeSize is grows each time is it called  
<br>29017: ScrolledComposite always makes it's content  bigger on resize
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 022 - Tuesday December 17, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
21409: IllegalArgumentException when editing Java source  
<br>21993: Can't change font sizes  
<br>22305: Launch configuration pane gets visually messed up and ref...  
<br>23830: Out-of-box experience with the Mac.  
<br>23843: Chevrons show up in default layout of Java perspective  
<br>23844: Label doesn't wrap text initiallly  
<br>23850: Missing scrollbar in List  
<br>24437: KeyListeners don't get called  
<br>26322: NPE in Font Dialog  
<br>26331: Wrapped Labels - second line cut off  
<br>26587: Navigate -> Go To Type goes to wrong shell on Mac  
<br>27997: Color dialog crashes Eclipse  
<br>28288: [Editor Mgmt] Editor pane out of sync with views and tabs  
<br>28361: ToolItem leaks Images (?)  
<br>28524: Inconsistent behaviour of tab in password fields  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 021 - Friday December 13, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
27526: Color selection dialog takes a long time to display in 8-bit mode
<br>27862: Tree.setSelection() takes > 1 second  
<br>28035: Different callback behavior on Windows and Mac with Combo widget
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 020 - Tuesday December 10, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
24112: Keyboard shortcuts defined as Ctrl-Shift-x don't work  
<br>24436: Entering Asterisk crashes Eclipse  
<br>26506: Importing External Plug-ins is slow  
<br>27031: en_US.UTF-8 locale not supported on Motif  
<br>27410: [SWT Examples] Arrow buttons won't resize for 10x10,50x50,100x100
<br>27422: [SWT Examples] Progress bar reverts to 'black' color after Selection slider repositioning
<br>27501: Selection not correctly updated on right click on a tree  
<br>27524: [SWT Examples] Table item foreground color changes fail after first attempt
<br>27644: Dismissing open type dialog with Escape crashes Eclipse  
<br>27704: Remove csh build dependency  
<br>27710: Entry point not found SetLayout in GDI32  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 019 - Tuesday December 3, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
19080: Chaff in table tree of property sheet  
<br>20318: [StyledText] print selection prints whole page (at least in <=f2)
<br>26563: Crash in Carbon native CopyMask  
<br>26731: Attempting to create a view plug-in project crashes  
<br>27181: Sleak - instrumentation not done on GTK and Motif  
<br>27305: EC: CLabel keeps background colour after gradient is used  
<br>27411: [SWT Examples] SWT.FLAT has no effect for buttons  
<br>27442: Mouse click outside horizontal scroll bar does nothing  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 018 - Tuesday November 26, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
15031: Font parsing failed  
<br>17237: Progress monitor flickers  
<br>18172: Sig11 from GTK  
<br>19530: Saving locks resizing in second perspective  
<br>19735: No space between longest item in menu and accel keys  
<br>20953: StyledText - tilde problem with french keyboard (2000,NT,XP) on R2.0
<br>21626: TableItem.getImageBounds fails on Motif (Emulated Widget)  
<br>24872: Splash screen does not show at startup  
<br>24969: JP GP: showing Java-Editor pref. page with editor open  
<br>25053: Cannot use the pull down menu in GTK  
<br>25335: Scrollbars too small on variable selection dialog  
<br>25653: DCR: StyledText do not activate the default button  
<br>26179: Can't select items in a checkbox tree without toggling checked state
<br>26353: Infopop broken on solaris  
<br>26362: StyledText - investigate necessary state changes between handleTextChanging and handleTextChanged
<br>26733: Eclipse crashes when GTK theme is changed  
<br>26804: Gtk Label widget has focus decoration drawn too big  
<br>26935: Exception in StyledText with WRAP flag.  
<br>26997: StyledTextRenderer: creates too many Strings  
<br>27016: Default "Open" action not working in Navigator tree view
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 017 - Tuesday November 19, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
21251: Crash in org.eclipse.swt.internal.gtk.OS.pango_layout_set_font_description
<br>24835: GTK: Multiple selection and right click in tree  
<br>25741: StyledText does not set the background and foreground color in the OS
<br>25803: StyledText should use new Font API  
<br>26004: Removing a Text field leaves behind crud  
<br>26008: [StyledText] setTopPixel limits argument to logical line count
<br>26121: Cannot launch eclipse #2: javacore dump  
<br>26151: SWT widget org.eclipse.swt.widgets.Sash is not properly constrained when in HORIZONTAL mode
<br>26258: Accented characters bug in editors reinvented  
<br>26367: NPE when debugging as java application  
<br>26414: Accelerators don't work on aix  
<br>26419: StyledText - print pages causes walkback  
<br>26421: List hangs on GTK  
<br>26434: PrinterData startPage/endPage invalid when page >32767  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 016 - Tuesday November 12, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
23935: Text widget with Tree parent does not lose focus  
<br>23997: Tracker moves mouse cursor  
<br>24493: Cant type braces in java editor with italian keyboard in 2.1m1
<br>25732: MLEAK: Resize eclipse, usually 4K allocated  
<br>25775: Combo doesn't get restored after minimize/restore  
<br>25781: Some change broke compare with patch  
<br>25797: GTK: Selection Index not preserved after Combo item removal  
<br>25986: No source for SWT plugin imported as binary  
<br>25989: Radion buttons are not mutually exclusive in same composite  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 015 - Tuesday November 5, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4607: Missing API for Font(Display display, FontData fd[]) (1G93TPM)
<br>14956: StyledText - printing should support pagination, headers, and footers
<br>21695: Crash when starting eclipse on Solaris8 with java 1.4  
<br>22052: Launch configuration dialog loses workspace data dir  
<br>23049: Cannot write Swedish characters (������) in editor  
<br>24273: GP -Tree removeAll reboot windowsXp  
<br>24359: MenuItems with style SWT.RADIO should handle mutual exclusion on selection
<br>24757: GTK: X pointer grab when resizing a table column  
<br>25212: GPF synchronizing files with new Tree implementation  
<br>25253: Preference dialog doesn't display last preference page  
<br>25399: Drag and drop crashes Eclipse  
<br>25545: StyledText - printing ignores end page  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 014 - Tuesday October 29, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
10090: Cannot see Combo-box selection in DBCS locale  
<br>12078: SWT exception when running on debian woody on KDE using the motif build
<br>14448: Setting the accelerator of a menu item gives highlight to tool bar entries
<br>17361: Tree flickers on update  
<br>17428: Internal Error (SWT) opening a new perspective by double-clicking
<br>20075: Infopop exhibits strange behaviour under Motif  
<br>21066: Switch editors/views/perspectives windows have scrollbars  
<br>21121: [External Tools] Configuration default selection could be better on GTK
<br>21375: Reproducible JVM termination when using WebDAV.  
<br>21656: GTK: disposing all the columns in table.getColumns fails  
<br>22038: Wrong widget scrolls in Java Browsing perspective.  
<br>22120: Excessive redraw in debug view  
<br>22252: Project properties - java build path screen shows artifacts  
<br>22371: Invalid selection items in working set  
<br>22527: Working set dialog only selects projects  
<br>22743: Type dialog horizontal scroll too small to read contents  
<br>23657: Problems implementing MenuItem.setText (worked around for English)
<br>23789: GTK tree display problem  
<br>23845: Spurious scrollbar drawn on other controls  
<br>24150: Shift-Tab does not shift left  
<br>24257: Native exception when trying to export preferences  
<br>24314: FileDialog doesn't allow to navigate into packages  
<br>24372: StyledText - StringIndexOutOfBoundsException in ControlExample
<br>24426: StyledText - investigate replacing caretLine with simpler concept
<br>24504: StyledText - showSelection when selection RtoL problem  
<br>24619: DCR - State mask not set in MouseTracker.mouseHover  
<br>25016: [Viewers] Double click not working when item already selected
<br>25149: StyledText - WrappedContent API does not check line index range
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 013 - Tuesday October 22, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
20377: StyledText - SWT.WRAP style and widthHint specification  
<br>22986: SWT Controls Combo box Colors selection tool does not change foreground color
<br>24728: StyledText Enter/Ctrl-Enter VerifyEvent inconsistencies  
<br>24805: ComputeSize issue  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 012 - Tuesday October 15, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
16657: [Open Modes] Search results doesn't respond to double click  
<br>17334: Icon missing in check box tree  
<br>17918: Tree widgets with multiple entries  
<br>18902: PgUp key causes items to be selected in tree widget under GTK  
<br>20258: [CVS] Esc key doesn't work on Commit Dialog  
<br>21367: Display problem in the properties view  
<br>21438: Java core dump in gtk_ctree_get_node_info  
<br>24560: Ctrl+shift doesn't traverse word  
<br>24676: StyledText - double click word select and caret placement  
<br>24677: 32 bit image fails with a certain mask  
<br>24702: WinCE: Image 32bits is incorrect  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 011 - Tuesday October 8, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4822: Group size doesn't seem to consider group name (1GJYIWB)  
<br>10019: Right clicking in a list box should select before popping up menu 
<br>17160: Task List: missing icon  
<br>18842: Cheese when scrolling after deleting row in table  
<br>19773: Coolbar icons in Windows XP with Luna theme are not vertically aligned
<br>20094: Layout problems using StyledText with word wrap in a ScrolledComposite
<br>23978: Horizontal scrollbars in tables and trees don't scroll page-wise
<br>24225: DragSourceAdapter incorrect JavaDoc  
<br>24358: Incomplete JavaDoc on MenuItem.setText  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 010 - Tuesday October 1, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
10459: I can't run eclipse  
<br>19148: Tooltip pops up underneath code completion alternatives in F2
<br>20672: Shift+F10 has wrong keyCode  
<br>21287: Uncaught exception hanging Eclipse  
<br>22615: [Dialogs] Native ProgressBar look does not match look of AnimatedProgress
<br>22645: StyledText - cheese when typing in SWT.SINGLE mode  
<br>23645: Disabled default button can still be reached pressing ENTER  
<br>23846: Initial font height of text field is wrong  
<br>23851: Initial text in Text control is scrolled out of visible area  
<br>23910: CTabFolder selected tab loses synch with its contents  
<br>23936: NPE in ControlExample  
<br>23947: Menu implementation prevents KeybindingMenu from working correctly
<br>23975: No keyboard shortcuts displayed in menu items  
<br>23976: Function keys must be pressed twice  
<br>24000: No scrollwheel support for Mac OS X  
<br>24055: No more callback exception hang Eclipse  
<br>24088: File chooser for OSX returns wrong path  
<br>24106: Table Column Resizable Doesn't work if you click on Column itself
<br>24137: Top item on popup is often invisible  
<br>24139: Copy causes exception  
<br>24141: Keyboard not functional in editors (mac os x)  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 009 - Tuesday September 24, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
7435: ArrayIndexOutBoundsException occurs when using Solaris through remote terminal
<br>15146: Printing support under Linux?  
<br>18483: IE6 causes conflict with SWT.APPLICATION_MODAL on Windows 98  
<br>20461: WinCE - Wait cursor does not show up  
<br>20958: Eclipse crashes when pasting PDF text into a Java file editor
<br>21416: Gtk+ launcher  
<br>22121: Eclipse crashes when pasting URL in Java-code  
<br>23007: [Navigator] Import of workspace folder into parent  
<br>23744: Device.getFontList() uses wrong constant name  
<br>23745: Wrong flag used in Device.getFontList().  
<br>23748: Input group is hardcoded as 1 in PhWindowQueryVisible()  
<br>23753: Groups don't look like the platform  
<br>23754: Label.setFont() needs to check "text != null"  
<br>23766: Labels with image only have extra space on GTK  
<br>23795: ControlExample: Image Label leaves cheese when resized  
<br>23807: Display class needs to pick better default fonts.  
<br>23864: CoolBar - Plus 2, Minus 2 problem  
<br>23884: WinCE - OS.InitCommonControlsEx fails with flag DATETIMEPICK_CLASS
<br>23898: Group.setBackground() don't work on Gtk  
<br>23899: CTRL + Mouseclick  
<br>23974: Use native ComboBox  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 008 - Tuesday September 17, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4637: TreeEditor example does not show how to use double click (1GCP6OH)
<br>4656: Pop-up menu not showing for Composite (1GENYM0)  
<br>4710: Remaining Javadoc problems (1GF088W)  
<br>4730: Support for lesstif on Linux  
<br>4733: Issues with Win32 GDI setBkMode(), and similar things in Motif (1GFPGK3)
<br>4796: DCR: keyboard support for move/resize (accessibility issue)  
<br>5900: CheckboxTableViewer does disable correctly  
<br>10532: DCR: Table.setSelection(int, int) -- order matters  
<br>12048: NPE exiting workspace  
<br>16700: Coolbar tab order is backwards  
<br>17494: Veronika needs to check her javadoc  
<br>19256: SIP event  
<br>19736: Tooltips for long entries in code assist pop behind code assist
<br>21126: Print Dialog Is Not Modal, Resulting in Unpredictable Workbench Behavior
<br>21620: FontData.setLocale() crashes workbench  
<br>22189: Win32 GDI Resource Leak in WrappedContent.java  
<br>22210: Photon:Removing item from Combo does not remove the text(BBAWT)
<br>22364: Incorrect height of widget in TextViewer  
<br>22490: Background color of Graphical Editors is always black.  
<br>22534: No way to turn border off for linux text widget  
<br>22564: Cannot draw transparent PNG files properly  
<br>22577: List.setSelection(String[]) infinite loop  
<br>22839: When swt window in focus palettes of other windows hosed, and vise versa
<br>22862: StyledText - Tab does not tab out of non-editable  
<br>22926: Clipboard copy/paste is cut/paste on Windows 98  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 007 - Tuesday September 10, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
10050: StyledText - Change selection color when changing background color
<br>14637: StyledText - copy-from text edit feature  
<br>16009: Eclipse's toolbar buttons' icon in black and upside down  
<br>17793: Motif FileDialog often does not use reasonable default directory  
<br>20179: Coolbar item clipped on bottom edge with SWT.BORDER style  
<br>21185: GTK: Label positioning incorrect when style bit used and bounds set(BBAWT)
<br>22079: StyledText - BidiUtil.isBidiPlatform returns true when not running with bidi locale
<br>22114: * key expands TableTree but does not send SWT.Expand event  
<br>22115: MessageDialog does not wrap message  
<br>22158: getItem() crashes eclipse called with index 0  
<br>22647: Variant class incorrectly marshals VT_BOOL values  
<br>22746: Text cut off in GTK in TitleAreDialog  
<br>22868: Eclipse hangs while creating a shell from ControlExample  
<br>22874: 2104: Converter contains references to Converter.class  
<br>22916: CCombo not dropping down list properly  
<br>22918: Table.getItem(Point) throws ArrayIndexOutOfBounds  
<br>22959: Dragging over multiple stacked trees uses invisible tree for drop target
<br>22978: Motif FileDialog ignores SWT.MULTI bit  
<br>23003: Xcopyplane requires 11 args but HP-UX JRE can only handle 10  
<br>23028: EC: Tab un-indent does not work  
<br>23061: 'Back' key does not delete character on Smartphone 2002  
<br>23178: Eclipse Fails to Start First Time  
<br>23285: Linux Motif has become extremely slow  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 006 - Tuesday August 27, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
5678: TVT: Unable to open Filter dialog on Win98 if another view is undocked (free floating)
<br>12878: Combo setItems removes setText  
<br>13024: Two tooltips displayed on tree  
<br>14923: Show Text Hover toolbar item in wrong place  
<br>16333: Accessibility - tab key in dialog boxes  
<br>20321: Multiple opened ApplicationWindows with statuslines show incorrect display/event handling
<br>22231: Pressing ENTER in a text field no longer performs OK in dialogs
<br>22659: Function key events are often lost
<br>22661: StyledText - Shift+Alt+<character> inserts character  
<br>22721: Cannot use keyboard to toggle checkboxes  
<br>22737: Mouse Capture on Motif causes Context Menu not to work  
<br>22825: Consecutive vertical cursor movement commands don't retain column offset
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 005 - Tuesday August 20, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4554: Combo selection scrolls for certain fonts (1G1AD9Y)  
<br>4577: Ctrl+Backspace & Ctrl+del have the same key code and key event (1G54RAJ)
<br>4685: Variables View re-positions on each step (1GETE8F)  
<br>10091: MessageBox loses activation  
<br>10976: Workbench windows don't reopen correctly in Dual Monitor environments
<br>14942: Unexpected KeyDown event after pressing non existing menu mnemonic
<br>18705: Too much flashin in Control Example  
<br>21829: API needed to allow CCombo to display its list at the prefered width
<br>22443: OLE - org.eclipse.swt.internal.ole.win32.CONTROLINFO has a useless field 'filler'
<br>22457: Win32 org.eclipse.swt.widgets.Combo computeSize() is wrong  
<br>22507: Modal dialog does not prevent adjusting of table headers in parent.
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 004 - Tuesday August 13, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4737: Redraw problem in table (1GFW2PE)  
<br>9075: Tooltips only partially displayed in Hoverhelp.java example  
<br>15610: StyledText - Double-Click-Drag doesn't work, works on Text  
<br>16990: ToolBar does not send MouseHover events  
<br>20632: Polish national fonts  
<br>20792: sometimes resize callback is not sent to the shell when the shell is not visible
<br>20815: Menus not displayed on SmartPhone 2002  
<br>21268: StyledText - Ctrl+Shift+J inserts line  
<br>21272: StyledText does not support setting selection with caret on the left
<br>21921: Emulated Table setTopIndex fails and causes NPE when adding an item afterwards
<br>21933: TableColumn does not listen to ControlEvents  
<br>22004: no keyboard shortcuts for switching between pages of MultiPageEditorPart
<br>22188: StyledText - only first character of a line displayed  
<br>22204: Photon: Text.selectAll() does not select all the text(BBAWT)  
<br>22254: Command H is not mapped properly  
<br>22365: SWT_AWT does not compile under JDK 1.4  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 003 - Tuesday August 6, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4521: Display.syncExec or Display.asyncExec can block processing of native events (1G03DF0)
<br>20144: Enter key not working in packages view  
<br>21179: Step filter in-place text editor invisible  
<br>21243: Scroll lock inserts a character during incremental search on GTK
<br>21338: Accents and � don't work in editor using gtk  
<br>21472: keyPressed event ignored by org.eclipse.swt.widgets.Text for ENTER key
<br>21696: StyledText - RTF transfer codepage encoding  
<br>21698: StyledText - RTF writer performance improvement  
<br>21834: Coolbar - deleting items corrupting layout  
<br>22004: No keyboard shortcuts for switching between pages of MultiPageEditorPart
<br>22025: Motif: Unexplained termination running BBAWT JUnit tests  
<br>22036: MOTIF: Appearance issue with Combo  
<br>22060: StyledText - bidi - ArrayIndexOutOfBoundsException  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 002 - Tuesday July 30, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4578: Ctrl+J & Ctrl+Enter have the same key code (1G54RJJ)  
<br>4816: TabItem displays & (1GJL704)  
<br>6888: Combo sends ModifyEvent on setItems  
<br>9025: OLE, StyledText widget and WinCE  
<br>19632: Tracker should adjust cursor on mouse not down, not on MENU  
<br>19985: StyledText - Bulleting proofing RTF copy function  
<br>20691: StyledText - bidi - Win2K/XP support  
<br>20746: Inconsistent @param in Javadoc for  TableItem.setGrayed(boolean)
<br>21313: Combo.getItem wrong error thrown  
<br>21423: GTK: GPF in Shell.setVisible()  
<br>21500: GTK: SWT.Activate and SWT.Deactivate events not fired when Shell with NO_TRIM used as its style bit
<br>21526: Shell.computeTrim does not include menu bar  
<br>21563: Mnemonics give focus to the label on GTK  
<br>21564: GTK: Text of Button(with style bit SWT.CHECK) does not show up correctly
<br>21573: TableTreeItem should have get/setGrayed() methods like TableItem
<br>21601: getLineCount() method for Text widget does not work on Motif  
<br>21623: List.setSelection (int start, int end) fails on Motif  
<br>21653: WinCE/SH4: Arrow keys don't generate key events  
<br>21702: Debug Display view error msg to console on GTK  
<br>21706: BidiUtil in win32 has Class.forName() usage  
<br>21805: event.character = 0 for all Ctrl-<alpha> on QNX 6.2  
<br>21937: COMObject leakage on OleControlSite  
<br>21958: ControlExample FileDialog does not filter correctly  
<br>21964: GTK: Adding an item to Combo changes the selection index  
<br>21967: GTK: Setting selection index to -1 for a Combo throws an exception
<br>21969: List.getSelectionIndex bug  
<br>21976: GTK: Combo.getSelectionIndex() changes when an item is removed
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.1 001 - Tuesday July 23, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4428: Table - Grid lines not drawn correctly (1FE4K5U)  
<br>4451: Shell: setDefaultButton, default button cannot be reset to null (1FGLS6M)
<br>4489: MouseUp fired for button 1 when button 1 is still pressed (1FODDP4)
<br>4511: Pane title update flashes tool bar buttons (1FUUR7A)  
<br>4524: CTRL sequences not handled gracefully by TextEditor (1FVSBTS)  
<br>4544: CTRL combination not handled as accelerators when Caps are locked (1FZQDGR)
<br>4590: VerifyEvent values ignored (1G7G5Y3)  
<br>4626: TableTree: Two selection events generated for each checkbox selection (1GBRSLM)
<br>4642: DirectoryDialog does not support / on windows (1GD41DZ)  
<br>4648: MenuItem.setEnabled() always causes a redraw (1GDDCN2)  
<br>4786: FontDialog should give access to color setting (1GIEFBD)  
<br>4861: Key state for toolbar items (1GL54A0)  
<br>5935: StyledText - up/down arrow behavior wrt varying line lengths  
<br>6775: Radio button setSelection changes focus  
<br>9859: Combo widget doesn't fire keyPressed or keyReleased for Enter key
<br>11868: StyledText: text selection with key 'arrow down' does not include last line
<br>11994: StyledText - replace getXAtOffset(caretOffset) with caret.getLocation().x
<br>12178: StyledText - move StyledTextRenderer#bidiTextWidth to DisplayRenderer
<br>12181: StyledText - mixing text width/caret position is confusing  
<br>13944: DCR - Need cut/copy/paste routines on Combo  
<br>14672: Combo and Scale setBackground does not refresh  
<br>14799: Window manipulations block other threads from executing  
<br>15088: StyledText - getTopIndex semantics undefined when no line fully visible
<br>15554: DCR - alignment in a text widget  
<br>15559: JAWS reads the parent window for dialog shells  
<br>15728: Packages view selection always one too high  
<br>16110: StyledText scroll not working with PageUp/Down keys.  
<br>16205: StyledText - Tab does not tab out of read-only  
<br>16402: Working set dialog: table columns have incorrect size  
<br>16777: Busy cursor lost over progress indicator edges  
<br>16986: JavaViewer example should remember path  
<br>17191: SWT Error in JUnit view  
<br>17252: Accelerator labels: Ctrl-Shift-A, Shift-Ctrl-A or Shift-Ctl-A?
<br>17279: Extra CoolBar row created when switching perspectives.  
<br>17370: Combo box flashes to much when resizing dialog.  
<br>17993: Find/Replace shouldn't replace typed entry with value from history
<br>18253: Coolbar - disposing items not honoring setRedraw = false  
<br>18308: Ctrl+SHIFT+@ does not call the listener.  
<br>18429: ScrolledComposite with LayoutManager is VERY slow in iPAQ  
<br>18570: Combo flashes by resizing  
<br>19380: Listboxes flash as preferences dialog is resized  
<br>19434: ToolItem does not need to check for TOGGLE  
<br>19568: {} on a german keyboard [swt-carbon]  
<br>19615: StyledText - example Text Editor bug in copy/paste  
<br>19630: Coolbar - odd dispose behavior  
<br>19815: JRE crashes using error log and progress bar.  
<br>19964: Coolbar - can "lose" items when platform widget wraps  
<br>20159: Right-clicking on coolbar grabber causes strange behavior  
<br>20183: Motif : Coolbar preferred size is too small width wise  
<br>20190: CoolBar problems on Windows XP with Manifest  
<br>20339: Hitting spacebar does not press currently focused button  
<br>20583: Segfault when control tries to dispose of itself under Motif  
<br>20683: [ExternalTools]  F3 (and F2) crashes the JVM when trying to cancel an external tool on linux-gtk
<br>20690: StyledText - bidi - should force font script when keyboard language changed
<br>20705: Cursor Keys don't work in Dialogs  
<br>20722: GTK TableColumn#pack does not work if no header  
<br>20788: A composite is being mysteriously disposed for no reason  
<br>20846: WIN32: 'Combo.indexOf' always returns -1 for empty string  
<br>20893: Bad size for Text widget when flag READ_ONLY is set (Photon)  
<br>20904: SWT exception on LayoutExample (Photon)  
<br>20950: GTK: F1 help does not work for menu items.  
<br>20956: Emulated CoolItem do not respect SWT.DROP_DOWN flag  
<br>21030: StyledText - during cut if clipboard copy fails do not delete text
<br>21096: Properties accelerator missing ENTER  
<br>21122: Emacs: Accelerators not shown in menus under GTK  
<br>21154: StyledText - BIDI - Bad effect of RLO unicode character  
<br>21192: UnsatisfiedLinkError thrown when pressing a hardware key  
<br>21215: [Help] F1 Help does not close menu on GTK  
<br>21223: StyledText - Cursor should stop blinking when moving  
<br>21268: StyledText - Ctrl+Shift+J inserts line  
<br>21368: GTK: GC.drawImage() fails when scaling an image  
<br>21371: SWTError while using Navigator->Goto->Resource  
<br>21378: GTK: Shell event's doit flag ignored when shellClosed() is called
<br>21412: Paste with accelator key doesn't work  
<br>21413: CoolBar computeSize fails on XP  
<br>21415: Javadoc for CLabel.setBackground has typos  
<br>21440: Unable to display Today screen when SWT app running on WinCE  
<br>21449: GTK: Calling Text.setSelection() causes GPF  
<br>21456: GTK: Cannot type in Text widget contained in Shell which has style bit as NO_TRIM
<br>21484: Shift-Tab does nothing on GTK  
<br>21523: StyledText - caret does not move when widget shell is not open
<br>21524: StyledText - NPE when typing text and caret is null  
<br>21596: StyledText - initial bidi caret position wrong when widget empty
<br>21598: StyledText - setFont enables caret when it was disabled  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 052 - Wednesday October 30, 2002 (2.0.2 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
10459: I can't run eclipse
<br>24693: org.eclipse.swt.graphics.GC.drawString() fails to draw euro
<br>24869: GP - Eclipse crashed when entering invalid file name in FileDialog
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 050 - Wednesday October 16, 2002 (2.0.2 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
24542: [DND] Crash when drag&drop on the Package Explorer
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 049d - Monday August 26, 2002 (2.0.1 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
22729: Permissions.properties missing from the build script
<br>22779: Eclipse linux-motif GPFs on exit on J9
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 049b - Wednesday August 21, 2002 (2.0.1 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
22448: CoolBar - deleting first item in row does unnecessary collapse/expand of row
<br>22561: Hover Help broken in 2.0.1 I20020815
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 049 - Wednesday August 14, 2002 (2.0.1 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
22055: CoolBar - setWrapIndices causes rows to collapse/expand unnecessarily
<br>22144: Coolbar - setSize not being honored after setWrapIndices API used
<br>22320: Coolbar - delete item behavior problem
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 048 - Tuesday August 6, 2002 (2.0.1 stream)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
15559: JAWS reads the parent window for dialog shells
<br>18253: Coolbar - disposing items not honoring setRedraw = false
<br>19964: Coolbar - can "lose" items when platform widget wraps  
<br>21268: StyledText - Ctrl+Shift+J inserts line
<br>21834: Coolbar - deleting items corrupting layout
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 047 - Monday June 17, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4772: Javadoc: Graphics constructors need to doc if device null (1GHSPUW)
<br>14144: ScrollBars can't be made invisible on PocketPC  
<br>20265: F3. test C3. No new updates for Eclipse on HP.  
<br>20362: Coolbar cannot be traversed to  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 046 - Friday June 14, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
16809: Clicking to close non-active editor doesn't have an affect  
<br>16939: DnD: Moving the mouse while dropping behaves strangely while dragging views
<br>17190: No cell editor support  
<br>17563: Flat tool bar buttons  
<br>17621: Resource Patcher wizard - widgets not properly aligned  
<br>19089: No popup menu java editor ruler (Photon)  
<br>19243: Eclipse launchers have hardcoded j9 args  
<br>19244: Spacing between Table rows grows with number of rows  
<br>20006: X Pointer grab not released  
<br>20044: Unable to scroll license text using keyboard  
<br>20072: Workbench bounces when swtiching perspectives  
<br>20134: Eclipse CLOSES automatically, when i'm working in it  
<br>20184: Color javadoc could use reference to Device.getSystemColor()  
<br>20209: Hang due to OS locking  
<br>20354: GP when attempt to check out SWT from repository  
<br>20372: Tracker needs more javadoc  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 046 - Tuesday June 11, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
16809: Clicking to close non-active editor doesn't have an affect  
<br>16939: DnD: Moving the mouse while dropping behaves strangely while dragging views
<br>17190: No cell editor support  
<br>17563: Flat tool bar buttons  
<br>17621: Resource Patcher wizard - widgets not properly aligned  
<br>19089: No popup menu java editor ruler (Photon)  
<br>19243: Eclipse launchers have hardcoded j9 args  
<br>19244: Spacing between Table rows grows with number of rows  
<br>20006: X Pointer grab not released  
<br>20044: Unable to scroll license text using keyboard  
<br>20072: Workbench bounces when swtiching perspectives  
<br>20134: Eclipse CLOSES automatically, when i'm working in it  
<br>20184: Color javadoc could use reference to Device.getSystemColor()  
<br>20209: Hang due to OS locking  
<br>20354: GP when attempt to check out SWT from repository  
<br>20372: Tracker needs more javadoc  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 045 - Tuesday June 11, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
15242: CoolBar - layout issues  
<br>18517: Coolbar - delete and row layout bug  
<br>19090: Combo doesn't size itself properly in GTK2  
<br>19670: Regression in OLE support  
<br>19671: Unable to expand/collapse trees in properties view  
<br>19720: Coolbar - getPreferredSize problem (was getClientArea problem)
<br>19787: Hover help is not removed  
<br>19947: GTK2 sends key events with both keyCode and character equals to 0 for some keys
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 044 - Monday June 10, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4807: Text.setEchoChar spec should say 0 <= char < 128 (1GJ6CDM)  
<br>4837: Javadoc: Cursor constructor ERROR_NO_HANDLES is not spec'ed (1GKA7Q9)
<br>5577: Text javadoc  
<br>7526: No spec for Display.update()  
<br>8513: JavaDoc for Menu.addMenuListener incorrect  
<br>12820: Finishing preview of the refactoring code crashes Eclipse  
<br>14463: GP opening two files at the same time  
<br>15460: CoolBar doc unclear/insufficient  
<br>15939: KeyEvent character is not consistent between Linux and Windows
<br>16810: Mouse pointer not update  
<br>16837: Keys completely lost  
<br>16883: Variable sorting changes unexpectedly  
<br>16895: In-place text fields are unusable  
<br>17036: Disposing a CoolItem is triggering an activation callback.  
<br>17146: Editor Preference page buttom list clipped  
<br>17154: View part loses focus when opening context menu  
<br>17289: Combo doesn't take focus by clicking on it (Photon)  
<br>17290: Modify Method Parameters: wrong enablement of buttons  
<br>17507: AIX FileDialog is not responsive in stand-alone example  
<br>17613: Add from local history shows nothing in right and lower pane
<br>17670: Cannot move through Plug-in Code Generation page list with arrow keys
<br>17692: IAE when deleting line in Java Editor  
<br>17752: Cannot select a non-bold font  
<br>17788: Scale with preferred size is unusable (no range of motion)  
<br>17848: F1 build, JVM terminated Exit code 139  
<br>17936: Eclipse launcher must launch headless in headless environments
<br>18439: Ctrl+F6 editor switching is unusable  
<br>18508: Javacoredump when opening vertical ruler context menu  
<br>18521: Coolbar layout and chevron bug  
<br>18543: An invisible character is added when the 'Windows' key is pressed
<br>18625: Tabbing in Java editor takes cursor  
<br>18629: GTK: Unable to select dialog buttons with mouse  
<br>18645: Release SWT sources & javadoc in future builds  
<br>18733: ControlExample: List widget not being resized properly  
<br>18804: GPF setting image to menu item (Photon)  
<br>18838: Launch Configurations dialog creeps up  
<br>18841: Question: What does -DMBCS do?  
<br>18930: Wrong content displayed in tabs in the Launch Configuration Dialog
<br>18934: Scrollbars should be disabled in ImageAnalyzer example  
<br>19057: Problem saving java file through popup menu  
<br>19116: Missing about.html in source directory for examples  
<br>19169: NPE on Emulated CoolItem constructor  
<br>19345: Task View: Not clearing priority icons  
<br>19394: False "unsaved changes" notification from launch configs  
<br>19503: Widget in outliner gets wrapped/cropped  
<br>19595: StyledText - redrawRange not clearing properly when clear flag set
<br>19660: Preference page does not expand to fit all widgets  
<br>19769: Internet Explorer and Help, EXCEPTION_ACCESS_VIOLATION  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 043 - Friday May 31, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4692: Empty popup menu appears in Outline view (1GET1B1)  
<br>8821: Opening editors has become very slow  
<br>15565: Coolbar - minimumWidth not honored under certain conditions  
<br>16688: Selection background on emulated widgets is wrong  
<br>17150: Strange selection behaviour in Java Browsing Perspective  
<br>17156: Delete key not working in package view  
<br>17228: Weird Tree selection behaviour  
<br>17354: Double clicking expands and collapses item  
<br>17363: Test A4.4 cannot edit action set id in properties view  
<br>17680: Outline doesn't expand when adding new method  
<br>17825: ControlExample->Text beeps when I choose SWT.MULTI  
<br>17831: Coolbar - chevron not always displayed when it should be  
<br>18160: "Show in packages view" doesn't scroll to selection  
<br>18229: Walkback when closing ImageAnalyzer  
<br>18368: Get rid of all fragment.properties  
<br>18376: No execute permissions of libraries  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 042 - Thursday May 30, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4533: Cheese when resizing toolbar (1FWL943)  
<br>4841: SWT sample imageviewer nothing display at pixel data area (1GKEOUE)
<br>6735: AWT/SWT - Swing / Swt integration : JComboBox doesn't show correctly
<br>10972: Core dump drag and droppping from inline text  
<br>12498: Unable to add External Jar using the Java Project Wizard  
<br>16174: Wrong popup menu  
<br>16553: SWT_AWT.new_Panel does not work  
<br>16791: Can't select check boxes  
<br>17199: Table widget - only last column header is clickable  
<br>17375: Cheese on Java Scrapbook page ruler  
<br>17390: JUnit testcases result for Graphics (1 error, 2 failures)  
<br>17565: Add JRE validation not working  
<br>17568: Error doesn't disapear when switching to source folder layout
<br>17574: Status line contributions appear twice  
<br>17637: Resize problem when diableing overview ruler in Editor  
<br>17662: Incorrect status display in new Feature Wizard  
<br>17917: Shift-Tab does not work  
<br>18223: Text widget with SWT.MULTI has strange behavior on GTK  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 041 - Tuesday May 28, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4398: Visual Coordination: Borders (1FSGONG)  
<br>4411: DCR - Support printing (1PQ8QCK)  
<br>4426: ScrollBar - Can't query size (1FDVP23)  
<br>4431: Folder tab does not get focus (1FIGI95)  
<br>4437: Tree Keyboard Support (1FOLZPT)  
<br>4452: MenuItem: setImage does not show image on menu (1FGNP8U)  
<br>4469: Inconsistencies between single line Text and RichText widgets (1FK1RRM)
<br>4474: Not supportting Windows Accessibility Standard? (1FM0IFS)  
<br>4490: Fonts in examples appear too big (1FOMCWQ)  
<br>4496: DCR - Contour mouse middle button doesn't work (1FREAS4)  
<br>4503: FontDialog is missing fonts (1FSMRV0)  
<br>4526: Severe - Delete key is not redirected to editor (1FVXDST)  
<br>4529: Closing external MS Word makes in-place MS Word disappear (1FWG9AR)
<br>4534: Flashing when computeSize called on Toolbar (1FWLD1E)  
<br>4545: No OS.GetKeyState function on motif (1FZQOZM)  
<br>4550: JUnit tests assumes boundary condition which is setting dependant (1G0LQKD)
<br>4552: Adobe doesn't like ImageData... (1G0ZBE0)  
<br>4563: Need support for *.xpm and *.png image file formats (1G3HWSA)
<br>4636: Tooltips not working on Linux (1GCN4FK)  
<br>4672: DCR - Include "begining / end " arrows to select files (1GEFYCG)
<br>4679: Colour gradient of views is not gradual (16bit color depth) (1GELWSO)
<br>4699: DCR - outstanding issue for customer- Changing cursor during drag operation (1GETC8U)
<br>4703: WinME - Disabled icons in tabbed folder do not display properly. (1GEWXLI)
<br>4706: StackOverflow resizing Workbench window (1GEWLSU)  
<br>4708: FATAL X error (1GF07HN)  
<br>4709: GP running ( Eclipse ^ 2 ) (1GEZ9UR)  
<br>4711: Navigator messed up when midi(w/DBCS) in it -Can't create view (1GEZNVC)
<br>4728: Windows with tab pages should allow Ctrl-Tab switching (1GFIUG5)
<br>4785: DCR - Custom notebook scrolling not optimal (1GI97VZ)  
<br>4839: TabFolder mnemonic problem (1GKAPKK)  
<br>4840: Hebrew: cannot paste from external file into java editor (1GKCWVX)
<br>4851: Print ignores print to file option (1GKXC30)  
<br>4867: PgMemFlush() considered expensive (1GLEEJC)  
<br>5697: *Please* make SWT use GTK+ instead of Motif  
<br>8346: Workbench will not start  
<br>9217: Internal error at open the package view  
<br>9491: 1GRTRXQ: WSWB:Workbench 2.0 Problem- ArrayIndexOutOfBoundsException with MultiPageEditorPart
<br>11204: Some ActiveX control can not accept key input.  
<br>11436: Request for public interface to call "UIDeactivate()" of  IOleInPlaceObject
<br>11498: StyledText does not always redraw when the line style changes
<br>14846: Accessibility: getLocation does not position XP Magnifier  
<br>15218: Platform does not recognize the GUI - 20020502  
<br>15466: ImageData.blit throws ArrayIndexOutOfBounds Exception  
<br>15548: 'X' close box on tab hidden by arrows  
<br>15564: javaw.exe has generated errors and will be closed by windows  
<br>15653: Tab halts on CCombo objects  
<br>16094: Cheese on CTabFolder when resizing  
<br>16200: Tracker leaves cheese  
<br>16345: JVM termination when attepmting to run Update Manager  
<br>16458: Trying to free a GdkEvent: pointer=NULL  
<br>16549: Cannot navigate tabbed notebook with keyboard  
<br>16557: Tab does not move cursor between text fields  
<br>16565: Typed text is lost  
<br>16576: ACC: Checkboxes in lists are not real checkboxes  
<br>16828: CTabFolder flashing tooltip  
<br>16927: External programs support on Photon  
<br>16957: TreeItem.setForegroundColor() doesn't work  
<br>16967: Strange scroll behavior in package dialog  
<br>16995: HoverHelp example does not create ON_TOP Shell for tooltips  
<br>17022: SWT Layouts example - missing window title  
<br>17090: StyledText selects text when menu is showing  
<br>17183: Icon in wizard banner clipped  
<br>17208: Long operations are being modal.  
<br>17305: Search Dialog: Java Page clipped  
<br>17320: Search dialog freezes Eclipse  
<br>17368: 4 Toolbar icons pushed off the toolbar way to the right  
<br>17488: Image Support in SWT - FAQ (1G5Z1KS)  
<br>17497: FileDialog open() returns wrong result  
<br>17632: "Color Button" doesn't update  
<br>17802: Moving a sash requires an extra click to take effect  
<br>17811: Two menu bar items highlighted at the same time  
<br>17816: Menu appears then dissapprears with click after Alt.  
<br>17832: Vertical Scrollbar clipped  
<br>17834: JavaDoc API bad for Image  
<br>17835: Smalltalk code around :)  
<br>17928: NPE on addressbook example  
<br>17932: Emulated Coolbar do not resize when the last item on the row is removed
<br>17933: Emulated Coolbar chevron too narrow on Photon  
<br>18005: BusyIndicator should check args  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 040 - Tuesday May 21, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
3554: TP125: weird tab order in create project wizard (1G83VP8)  
<br>4424: Table draws a stray pixel in top left corner (1FS9QBQ)  
<br>4476: No syncExec runnables run during scrolling (1FMGG2X)  
<br>4528: Need FocusIn event for OleClientSite (1FW2S00)  
<br>4586: Use checkWidget() more often (1G80URQ)  
<br>4609: FillLayout should have FillLayout(type) constructor (1G9XBPI)
<br>4694: Editor Name is missing from tab (1GET93J)  
<br>4726: CODE CHANGES AFTER THE FREEZE (1GF9YF0)  
<br>4788: Feature request: styled tree items (1GIGJK4)  
<br>4789: XP - Look and feel problems (1GIGGKM)  
<br>4831: DND not working properly (1GJYOZC)  
<br>4838: Can create FontData with null name string (1GKA93P)  
<br>4941: Focus callback during OleClientSite deactivate call  
<br>4942: Combo selection index should move when upper item removed (1GLGA41)
<br>5910: Toolbar with all items disabled still shows up in tab order  
<br>5936: Composite.setTabList should accept null  
<br>6198: Focus lost in tab folder when switching pages  
<br>6406: J IME positioning incorrect
<br>6514: Code assist behaves differently on Linux  
<br>6856: Default buttons different on Variable dialog  
<br>8162: Accessibility: focus goes missing in CVS location wizard  
<br>8791: Overaggressive focus grabbing  
<br>9141: WorkBench->Preference dialog's buttons font is too small.  
<br>9287: Combo.setText does not work
<br>10491: Bold button will not bold text in SWT TextEditor Example  
<br>11074: EventTable.sendEvent should probably use try/finally  
<br>11349: Editor Tabs should fill to the right.  
<br>11369: Coolbar feature requests  
<br>11516: ViewForm should override computeTrim
<br>11738: growing status bar
<br>11847: OLE Editor prevents navigation without keys  
<br>12398: Accessibility problems  
<br>12641: Error in .classpath for Photon  
<br>12904: Accessible resizing of Views should move/change the Display's Cursor
<br>12972: Noticed increased number of Eclipse crashes  
<br>13622: DCR - need ability to cancel window system shutdown
<br>14449: [M5] error bringing up Code Formatter page  
<br>14546: TableColumn alignment problem with Motif  
<br>14656: Repaint of window does not wotk with IME up
<br>14801: Mnemonic character doesn't work on TabFolder on QNX  
<br>15124: NPE: Label Decorations preference page  
<br>15134: Open Type dialog has wrong initial focus  
<br>15172: focus not on text field for OpenTypeDialog  
<br>15224: FileDialog does not return the file selected on PocketPC  
<br>15237: Coolbar - corrupts wrap layout when items deleted  
<br>15513: CCombo.setTooltipText() doesn't work  
<br>15516: GP - Eclipse crashed  
<br>15575: Tree with checkbox items are not accessible  
<br>15613: Copy/paste inserts NULL  
<br>15705: Editor with focus, tab text disappears sometimes
<br>15872: Editor area frame should align with open editor's, excluding drop shadow
<br>15989: Coolbar walkback when adding item
<br>16069: Can't see source in imported binary SWT  
<br>16210: Core Dump Occurred while in Open Type dialog  
<br>16245: CTabFolder - tooltips and arrowing around
<br>16281: Eclipse does not come up
<br>16297: Wrong tab order in newer builds
<br>16318: Can't activate views; losing events
<br>16465: Stack Overflow when importing a project
<br>16523: Unable to double-click
<br>16525: Eclipse does not layout properly
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 039 - Tuesday May 14, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6103: Menu mnemonics don't work when toolbar has focus  
<br>8805: Context menus and finding references to methods  
<br>14823: Drag&Drop: need way to set the default behvaiour of a drop o  
<br>15055: Column Header Height in a Table or Table Tree SWT widget  
<br>15253: Linux GTK 2 library not found  
<br>15274: Can't add external jar in Linux-GTK version  
<br>15603: Preference page no longer resizes to fit contents  
<br>15634: Table not acting like list when last column deleted  
<br>15637: Cheese in Table when setting column image  
<br>15643: Cheese in Table when changing font  
<br>15705: Editor with focus, tab text disappears sometimes  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 038 - Tuesday May 7, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6391: Display.getActiveShell() can answer wrong value  
<br>7170: Tab space size problem  
<br>8542: Close perspective with mouse isn't possible  
<br>8591: Editor tabs should scroll automatically to fill available tab space
<br>8648: StyledText - Caret can be hidden under scrollbar  
<br>10263: Editor keeps scrolling after mouse up  
<br>12226: Solaris - can't copy file into same directory  
<br>12360: TraverseEvent e.doit doesn't turn off on TabFolder  
<br>12952: Alt+{char} gets inserted as text  
<br>13614: JFace Tables have an extra column  
<br>13651: Printed output issues  
<br>13725: Revert is much slower than close and re-open in java editor.  
<br>14431: TableViewer inconsistent when clicking off of item list  
<br>14866: Shift-selection doesn't work immediately after restart  
<br>14880: Column resize problems/cheese  
<br>14902: Executable launcher does not restart  
<br>14935: EmulatedWidgetTests fail on Linux  
<br>14937: Launch from New Office Document hangs until Eclipse exits.  
<br>14964: StyledText - add new API for replacing style ranges  
<br>14981: Focus not set anymore  
<br>15057: getSystemColor(SWT.COLOR_WIDGET_FOREGROUND) always returns black
<br>15115: removeColumn are broken in Emulated Table  
<br>15141: Tab is caught by read only text  
<br>15150: Progress bar behaves erraticaly
<br>15208: StyledText - text change even mechanism poorly documented  
<br>15348: GPF in OS.MoveMemoryW  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 037 - Tuesday April 30, 2002

<h2>
<a NAME="LIBRARY LOCATION CHANGE"></a>LIBRARY LOCATION CHANGE</h2>

As of this build, libraries are no longer in the org.eclipse.swt plugin.

<p>Libraries can now be found in the associated windowing system fragment which to date are:
<ul>
<li>org.eclipse.swt.win32 
<li>org.eclipse.swt.motif
<li>org.eclipse.swt.photon
<li>org.eclipse.swt.gtk
<li>org.eclipse.swt.gtk1x
</ul>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4641: Icon lookup fails for some windows icon paths (1GD2DEY)  
<br>4802: StyledText - Bidi Support Open Issues (1GIZ5G3)  
<br>4842: Can't launch external editors. (1GKEYOE)  
<br>6098: EXCEPTION_ACCESS_VIOLATION running Eclipse  
<br>6858: GP - Crash VM  
<br>8826: GPF - closing a Java editor  
<br>8837: Window position changed incorrectly in Shell.open()  
<br>9297: Eclipse crashed  
<br>11374: gp: Crash in swt-win32-2026.dll  
<br>11587: BIDI:Java editor and Text editor: User Interface issues.  
<br>12811: TableColumns don't pack properly  
<br>13200: gp - MoveMemory error on Windows XP  
<br>14049: gp - Crash in OS.MoveMemoryW  
<br>14220: gp - Crash closing editor  
<br>14245: gp - crash while debugging (NRCRASH)  
<br>14249: Exception while stepping  
<br>14280: Unsatisfied Link Errors running libswt-pi-gtk-2034.so on Linux/Gtk 2.0
<br>14425: Font dialog exception  
<br>14528: Problem with Label.computeSize.  
<br>14538: StyledText - bidi - change backspace and delete behavior  
<br>14813: ClassCastException creating a new Run configuration  
<br>14872: ArrayIndexOutOfBoundsException in TableItem.insertColumn  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 036 - Tuesday April 23, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4834: DCR - mnemonics do not work on tabbed pages (1GK7O0N)  
<br>7189: Method highlight in border does not match the method  
<br>8253: Right clicking does not bring up context menu  
<br>8306: Inconsistencies in SWT example descriptions  
<br>8538: Mismatch between selected tab and displayed tab  
<br>8544: Some problems with the editor-pane (repaint, focus)  
<br>9360: Text entry in cvs comment dialog can't deal with quick typing
<br>9794: Linux-GTK KeyEvents bad/different from the other platforms
<br>12947: Color Preferences in Preferences->Java->Editor  
<br>13826: Performance issue in Table.RemoveAll()  
<br>13922: Eclipse crashes when running LayoutExample  
<br>13999: StyledText - appending single line data doesn't update properly
<br>14047: StyledText - inefficient redraw during text change with word wrap
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 035 - Thursday April 18, 2002

<h2>
<a NAME="New APIs"></a>New APIs</h2>
<ul>
<li>Display.setCursorLocation</li>
<li>GridLayout(int,boolean)</li>
</ul>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4602: GridLayout should have GridLayout(numColumns) constructor (1G9Z73D)
<br>8549: org.eclipse.core.resources 4 Unhandled exception caught in event loop
<br>9029: GC.setClipping(Rectangle) should handle null argument on GTK  
<br>10590: GTK Version / Tree View blanks...  
<br>10715: Code Assist dialog hide after press and release CTRL + SPACE  
<br>11182: Property Sheet does not allow editing when there is only one property
<br>11515: computeTrim and getClientArea are inconsistent in CTabFolder  
<br>11713: Descriptions in preference pages aren't aligned  
<br>11715: Tab doesn't switch fields on gtk  
<br>11835: Strange behaviour of backspace in new Java Class dialog  
<br>11935: Can't Ctrl+Tab out of PDE Editor's dependencies page  
<br>12073: Moving shell above other shells does not work.  
<br>12882: DCR: Set Cursor location programmatically for accessibility  
<br>13194: Usability: editor tabs  
<br>13384: NPE on launching  
<br>13432: OleControlSIte doesn't propagate WM_SETFOCUS message to an ActiveX control
<br>13639: Controls do not appear in tool items  
<br>13800: Can not get FocusEvent from Combo  
<br>13982: Eclipse won't start on GTK2  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 034 - Tuesday April 9, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6774: WinCE - items regarding Pocket PC (including 2002) integration
<br>8806: Moving views is difficult  
<br>9245: ToolItems in a ToolBar not displaying images on WinCE  
<br>9616: Resize column leaves some cheese in the table  
<br>10603: Add Breakpoint keeps prompting me  
<br>10937: Converter problem on Solaris  
<br>11520: ShellAdapter.shellDeactivated() never called on Linux-Motif  
<br>11734: Focus not on "Finished" button  
<br>11940: Down arrow does not access drop-down portion of toolbar buttons
<br>12241: Codeassist disappear after a few seconds  
<br>12573: Table sends selection event twice when in TabFolder
<br>12787: Changing a menu item's text makes its icon disappear  
<br>12885: Label as a seperator doesn't resize properly  
<br>13006: Alt+1 with blank TabFolder results in NPE  
<br>13014: SetToolTipText called multiple times does not resize.
<br>13049: CTabFolder focus traversing is busted  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 033 - Tuesday April 2, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
12446: SWT Table Column Image Corruption  
<br>12447: Tree.getSelection() is slow for large trees  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 032 - Thursday March 28, 2002

<h2>
<a NAME="StyledText Bidi Printing"></a>StyledText Bidi Printing</h2>
<blockquote>
<p>Support has been added for printing the contents of a StyledText widget on
bidirectional language Windows platforms.</p>
<p> Note however that printing English or local language text does not work properly with some
printer drivers when using a non-TrueType font. This has been noticed on Windows
NT systems with the HP Laserjet 4 series printer driver. Please use a TrueType
font if text is printed garbled .  
<br></p>
</blockquote>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4467: DCR - Tree missing keyboard support (1FJH5GY)  
<br>4525: Property viewer doesn't adapt to bg color changes (1FX8XL1)  
<br>10317: StyledText - bidi printing support  
<br>10483: SWT ControlExample DirectoryDialog does not choose directories
<br>11081: Java Source Editing with Greek Locale no longer works  
<br>11549: Create project does not allow creation of folder in its project selection
<br>12099: Accessibility : JAWS can not read TabItem's text  
<br>12231: DND : Drag and Drop busted (mouse capture not released)  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 031 - Monday March 18, 2002

<h2>
<a NAME="New APIs"></a>New APIs</h2>
<ul>
<li>ScrolledComposite.getOrigin</li>
<li>ScrolledComposite.setOrigin</li>
<li>Variant.getType</li>
</ul>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
7500: Display.getBounds() calls from another thread give incorrect results
<br>10273: NPEs caused by unitialized 'item' field in event
<br>10481: View will not Size via Pull Down
<br>10511: Add programmatic scrolling to ScrolledComposite
<br>10942: Launcher should autodetect gtk only installation.
<br>11051: Invalid token pasting in callback.c
<br>11090: CLabel Javadoc says SmartLabel
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 030 - Tuesday March 12, 2002

<h2>
<a NAME="New APIs"></a>New APIs</h2>
<ul>
<li>OleControlSite.addEventListener(OleAutomation,int,OleListener)</li>
<li>TableItem.getForeground()</li>
<li>TableItem.getBackground()</li>
<li>TableItem.setForeground(Color)</li>
<li>TableItem.setBackground(Color)</li>
<li>TreeItem.getForeground()</li>
<li>TreeItem.getBackground()</li>
<li>TreeItem.setForeground(Color)</li>
<li>TreeItem.setBackground(Color)</li>
<li>TableTreeItem.getForeground()</li>
<li>TableTreeItem.getBackground()</li>
<li>TableTreeItem.setForeground(Color)</li>
<li>TableTreeItem.setBackground(Color)</li>
</ul>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
8737:  No Selection event when DND starts
<br>9950:  ColorDialog weird behavior
<br>9959:  Persistent Eclipse NPE on startup
<br>9993:  OleControlSite is not powerful enough
<br>10420: Mouse and DND Event notification out of order
<br>10480: Unable to open files with "System Editor"
<br>10482: View will not Move via Pull Down
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 029 - Tuesday March 5, 2002

<h2>
<a NAME="New APIs"></a>New APIs</h2>

<b>Note:</b> The new Accessibility API is experimental, and will likely change.
<ul>
<li>Control.getAccessible() added</li>
<li>package <b>org.eclipse.swt.accessibility</b> added, containing the following classes:<ul>
<li>Accessible</li>
<li>ACC</li>
<li>AccessibleListener</li>
<li>AccessibleAdapter</li>
<li>AccessibleEvent</li>
<li>AccessibleControlListener</li>
<li>AccessibleControlAdapter</li>
<li>AccessibleControlEvent</li>
</ul></li></ul>

Here are two examples that use the accessibility API:<ul>
<li>For a control with no child items:
<code><pre>
		button.getAccessible().addAccessibleListener(new AccessibleAdapter() {
			public void getName(AccessibleEvent e) {
				e.result = "My Button Label";
			}
		});
</pre></code></li>

<li>For a control that has child items:
<code><pre>
		list.getAccessible().addAccessibleListener(new AccessibleAdapter() {
			public void getName(AccessibleEvent e) {
				if (e.childID == ACC.CHILDID_SELF) {
					e.result = "My List Label";
				} else {
					e.result = "My List Item Label: " + list.getItem(e.childID);
				}
			}
		});
</pre></code></li></ul>
<b>Note:</b> The API involving the AccessibleControlXxx classes is more complex, and more likely to change. 
It is unlikely that application code will need to use it. 
It is primarily for the use of custom control implementors.

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4436: Grid Layout Problem (1FOLZZE)  
<br>4666: DCR - Need a way for child shells to disable ESC closing (1GE8RXW)
<br>4790: XInitThreads causes japanese input method to hang (1GIRYR6)
<br>4775: XInitThreads causes X printing to hang (1GITBQL)
<br>4454: DCR: Tables need to support cell editing (1FGPLPP)
<br>10002: Detection of CDE as active WM is platform-specific  
<br>10426: Esc traverse does not go up hierarchy  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 028 - Thursday February 28, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4688: J - Font Dialog does not select a font when selecting a font family (1GET5BW)
<br>7139: FontDialog: Selected font not used  
<br>8865: Exception when creating a ToolItem with a null image in Linux
<br>10250: Slider with VERTICAL orientation - down arrow increments  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 027 - Tuesday February 26, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6409: Node selection in package view  
<br>8389: MouseUp not reported correctly if DragDetect hooked  
<br>9364: Exception in StyledText  
<br>9773: Font and Color dialogs do not appear centred on parent  
<br>9950: ColorDialog weird behavior  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 026 - Tuesday February 12, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
6679: Image.getImageData() not implemented  
<br>7962: SWT.getPlatform() javadoc incorrect for return description  
<br>8984: CTabFolder.MIN_TAB_WIDTH should not be static  
<br>9022: Linux: Tree Viewer does not get defualt Selection  
<br>9072: Table Tree does not pick up windows settings changes  
<br>9091: StyledText in SINGLE mode should look more like a Text widget  
<br>9172: SWT AddressBook Example calls undefined method
<br>9432: The doc for Tracker widget should specify that rectangles are in screen coordinates
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 025 - Tuesday February 5, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
2430: Sorting the Tasks List should display icon for sort key/order (1GF5TQO)
<br>4485: DCR - Table column header decoration capability needed (1FOQQM8)
<br>6035: Difference in tree "expanded state" between Windows and Motif
<br>6983: Browse button in Import->Plugins not working.  
<br>7400: Single line text fields not firing "Key Pressed" events for the Enter, Up(arrow), and Down(arrow) keys
<br>8173: Accessibility: keyboard-invoked popup menu not usable  
<br>8196: Accessibility: shift+F10 does not display view menu  
<br>8273: Horizontal scorllbar does not allow scrolling when required  
<br>8396: WINCE: Menu bar obscures control when control location is 0,0
<br>8397: WINCE: Menu item colors don't match menu bar  
<br>8412: WINCE: Background color of buttons looks wrong  
<br>8640: GP: opening Synchronization perspective  
<br>8942: Wrong text indent in a table when use image  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 024 - Tuesday January 29, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4654: VAJ hangs when dragging from file manager to the desktop. (1GDQFZ6)
<br>4720: Eclipse freezes during drag & drop operation (1GF7RRH)  
<br>4724: GP - Fatal app error - renaming resource on linux (1GF7TXO)  
<br>4736: Fix printing (1GFW2CW)  
<br>4817: Need JavaDoc comments for SWT Photon (1GJLEU0)  
<br>6835: Characters ��� and � doesn't work in Java editor on Swedish  
<br>8255: Closing paint viewer causes internal error  
<br>8410: Black color become transparent in ToolBar images  
<br>8503: StyledText - cheese if resize in word wrap tries to keep partial top line
<br>8547: Intellimouse scrolling does not work in eclipse  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 023a - Thursday January 24, 2002 (Eclipse Milestone 2)

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4700: NumLock and CapsLock disable accelerators (1GETDT9)  
<br>6180: Wake mechanism broken on Motif  
<br>6873: Decorations.setImage() throws NPE on WINCE  
<br>7805: A new ImageData(from an InputStream) throwing NPE  
<br>8133: When toolbar has focus, can't use mnemonics for File menus  
<br>8213: exception: widget is disposed  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 023 - Tuesday January 22, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4610: StyledText - DCR - Word wrap (1GABS6C)  
<br>4644: Mouse click on a link displayed in embedded IE5 ActiveX is not reliable (1GD7TT2)
<br>5660: SWT default font's need to honor accesability settings  
<br>6324: SWT.CLOSE implies rendering of Minimize and Maximize buttons  
<br>6997: StyledText - mark new API  
<br>7123: Shell shows the maximize button enabled when SWT.TITLE | SWT.BORDER | SWT.CLOSE style passed
<br>7361: Add getOffsetAtLine API  
<br>7632: Tree widget doesn't select item with focus on right-click  
<br>7849: Labels on WINCE don't use background color of parent when color isn't set
<br>7867: DCR: Delete checkSubclass method from Dialog  
<br>7959: Potential problems when running on big endian machines  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 022 - Tuesday January 15, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4663: Fail to tab the views. (1GGYV8T)  
<br>4718: Tool tip is openning when on dragging. (1GF5Z7Z)  
<br>5866: Can't multiselect in Tree using keyboard  
<br>6592: Box for checkbox table items is too large when using large fonts
<br>6770: Only the left mouse button should select in a Table.  
<br>6852: StyledText - verify event character invalid value  
<br>6940: MenuShortcuts only respond to Ctrl-N  
<br>7190: Ctrl-S does not work  
<br>7458: WinCE - top level Shells created through Display.asyncexec can have incorrect Z-order
<br>7459: Caret leaving garbage  
<br>7486: Cannot use keyboard Shift Select in a Tree  
<br>7559: ScrollBar thumb is reset when ScrollBar is hidden, then shown
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 021 - Tuesday January 8, 2002

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4443: Layout: Exceptions when horizontalSpan > remaining columns (1FFC6XZ)
<br>4462: ScrollBar - vbar.setMaximum does not work after hbar is hidden (and vice versa) (1FIG5CG)
<br>4722: First editor tab missing close button (1GF7QIQ)  
<br>4755: Rebuilding launcher from another directory (1GGNRG0)  
<br>6315: Some perspective save confirmation messages cut off  
<br>6352: Editor doesn't get activated when revealing first match  
<br>6908: Menu handle leak in org.eclipse.swt.widgets.Menu.destroyItem(MenuItem)
<br>6945: Child shells not displaying on WinCE  
<br>6982: CheckedTables have no check boxes  
<br>7005: Missing methods in SWT/GTK implementation  
<br>7018: Tree does not honor SWT.CHECK style  
<br>7068: ScrollBar.setVisible(true) does not work after changing values
<br>7150: StyledText - bidi - partial styling of ligatures bug  
<br>7191: Dialogs not big enough for content  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 020 - Tuesday December 18, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4715: First help click on a chapter is ignored (1GF5TV9)  
<br>4784: MIF Files sometime fail (1GI7H7V)  
<br>4797: Table does not use System fonts (1GIV4PZ)  
<br>6635: WinCE: decorations.setMenuBar can be set only once  
<br>6685: StyledText - on setFont caret not being positioned correctly  
<br>6773: StyledText.computeSize uses display width to calculate number of visible lines
<br>6790: Touching code assist scrollbar dumps javacore  
<br>6863: Remaining issues in emulated CoolBar and CoolItem  
<br>6933: Switching to help perspective crashes the workbench  
<br>7014: Tree not accepting children  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 019 - Tuesday December 11, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4461: SWTException should overwrite printStackTrace(..) (1GLDW6P)  
<br>4493: Check multilingual support on Windows 2000 (1FQFCBQ)  
<br>4611: StyledText - StringIndexOutOfBounds exception inserting text in line break (1GEID8B)
<br>4620: Workbench does not close ActiveX control's file handle (1GB76AZ)
<br>4660: Moving  
<br>4719: Background colour of views/editors (1GF6C8Y)  
<br>4739: DCR: Provide auto-scrolling and expansion by default in the tree during DND (1GFW7NQ)
<br>4767: Tab Folders can not be toggled using keys. (1GHFCZU)  
<br>4780: YAM: Cannot read some JPEG files (1GI6ZEN)  
<br>4783: Can't scroll to the top of the navigator (1GI7GTG)  
<br>5071: Shift-TAB doesn't generate proper event  
<br>5677: Hierarchy outline has empty space  
<br>5857: Image.getImageData needs to support 15 bit color depth  
<br>6472: Table widget has empty entries  
<br>6572: Default background color of Lists and Combos not consistent with Win2K
<br>6651: Text.setSelection() doesn't actually display the selection visually for SWT.SINGLE
<br>6654: Text.getSelection() not returning correct info on WINCE  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 018 - Tuesday December 4, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4419: Widgets - Missing features and API on MOTIF (1FBPKCT)  
<br>4494: ColorDialog doesn't open in VA/Java with JDK 1.2 (1FQGM6H)  
<br>4833: Remove focus button from Table (1GK7MK4)  
<br>4860: StyledText - StyledTextBidi, BidiUtil need doc (1GL32C8)  
<br>6204: KeyListener on table does not work.  
<br>6438: StyledText - bidi - isBidi test not working on XP  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 017 - Tuesday November 27, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4714: Label draws wrong background when image is set (1GF0IC6)  
<br>5503: Tabbing broken  
<br>5986: BidiUtil handling of WM_INPUTLANGCHANGE needs to be fixed
<br>5992: Changing Java Editor font in Preference Page makes Eclipse hang or crash
<br>6171: NullPointerException in ImageLoader save method with SWT.IMAGE_JPEG
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 015 - Tuesday November 20, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4791: StyledText does not switch colour (1GILHIW)  
<br>4956: StyledText - change StyledTextBidi.toString to conform with standard SWT format
<br>5599: StyledText - redrawRange does not check range  
<br>5722: Selecting font crashes eclipse with a javacore  
<br>5815: StyledText - setFont refresh problem  
<br>5846: Combo.select does not ignore an out of range index
<br>5990: Printing single page prints entire document  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 014 - Thursday November 15, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4542: Menu accelerators CTRL+ / and CTRL + SHIFT + / don't work (1FYAF8V)
<br>4754: Arrow keys not accepted as keyboard accelerators (1GGM4U3)  
<br>5815: StyledText - setFont refresh problem  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 013 - Tuesday November 13, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
4846: StyledText - bidi - partial styling of ligatures (1GL3AWT)  
<br>4859: StyledText - bidi - provide solution for bidi coloring hack (1GL2UNC)
<br>5491: StyledText - getStyleRangeAtOffset allows offset == getCharCount
<br>5497: StyledText - ExtendedModify event not sent on setText
<br>5602: StyledText - page down causes IllegalArgumentException in invisible/small widget
<br>5615: StyledText - window start does not always work  
<br>5622: StyledText - print causes NPE when invoked on empty widget  
<br>5626: StyledText - print does not check for null Printer argument  
<br>5633: StyledText - replaceTextRange and setText do not check for null argument
<br>5664: StyledText - Single line should not accept tab  
<br>5673: StyledText - SINGLE line mode still allows some multi line cursor navigation
<br>5722: Selecting font crashes eclipse with a javacore
<br>5725: Please rename "Eclipse Launcher"  
<br>5802: EC: ControlExample does not run on Solaris  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 012 - Monday November 5, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>
<blockquote>
5470: User is lost when trying to move views around  
<br>5484: Tab no longer traverses between widgets!!!  
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 011 - Thursday November 1, 2001
<h2>
<a NAME="API Changes"></a>API Changes</h2>
<code>FontData.setLocale(Locale)</code> has been changed to <code>FontData.setLocale(String)</code>.
<ul>
<li>
J2SE code can simply create a <code>Locale</code> and invoke <code>toString()</code> to pass it onto the new <code>setLocale</code>.
<li>
CLDC code will have to form a string matching the format specified in the J2SE javadoc of <code>java.util.Locale.toString()</code>.
</ul>
Example:
<blockquote><code><pre>
Locale[] locales = {
	Locale.US, new Locale("iw", "IL"), new Locale("ar", "SA"), new Locale("ru", "RU"),
	Locale.GERMAN, new Locale("ja", "JP"),
	null,
};
// old code: fd.setLocale(locales[i]);
String locale = (locales[i] != null ? locales[i].toString() : null);
fd.setLocale(locale);
</pre></code></blockquote></p>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
4664: StyledText does not compute correct text width (1GELJXD)  
<br>4832: German: Fonts cannot handle German characters (1GKMHHY)  
<br>4961: Preferences dialog disappears when you click on certain pages
<br>5180: Open Motif for Linux shared libraries are duplicated in Eclipse  
<br>5304: StyledText - ArrayIndexOutOfBoundsException in StyledTextBidi.segmentedRangesFor
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 010 - Thursday October 25, 2001

<h2>
<a NAME="Behaviour change"></a>Behaviour change</h2>
<p>
1) The Drag Under effect of scrolling and expanding items as you drag over the <code>Tree</code> or <code>Table</code> has been added.  To enable this drag under effect, in the <code>DragOver</code> event set the <code>event.feedback</code> to have a bitwise combination of <code>DND.FEEDBACK_SCROLL, DND.FEEDBACK_EXPAND</code> and (<code>DND.FEEDBACK_SELECT, DND.FEEDBACK_INSERT_BEFORE, DND.FEEDBACK_INSERT_AFTER</code>) - where the last three items are mutually exclusive.
<blockquote><code><pre>
target.addDropListener (new DropTargetAdapter() {
	public void dragOver(DropTargetEvent event){
		event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
	}
}
</pre></code></blockquote></p>
<p>
2) On some operating systems it is preferred to move files in a drag and drop operation rather than for the drop target to make a copy of the file and the drag source to delete the original file.  The operation of moving the file is preformed by the drop target.  For these cases, the new drop type <code>DND.DROP_TARGET_MOVE</code> has been added.  The Eclipse <code>DropTarget</code> does not support this behaviour but the Eclipse <code>DragSource</code> can recognize this scenario.  If another application has chosen to move the file rather than copy/delete, the <code>DragFinished</code> event on the <code>DragSource</code> will have an <code>event.detail</code> value of <code>DND.DROP_TARGET_MOVE</code>.
<blockquote><code><pre>
source.addDragListener (new DragSourceAdapter () {
	public void dragFinished(DragSourceEvent event) {
		if (event.detail == DND.DROP_TARGET_MOVE) {
			// clean up presentation but do not delete underlying file
		}
	}
}
</pre></code></blockquote></p>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1767: Display ASCII for values greater than 127 fails (1GLE8I5)  
<br>4725: FontData spec should disallow null name (1GL34H3)  
<br>4844: Tab appears narrower than space (1GL2WTY)  
<br>4852: German: Cannot start Eclipse in Linux 7.2 (1GKYY99)  
<br>4865: TableTreeEditor.getItem returns an item after setting it to null (1GLE0IQ)
<br>4932: StyledTextBidi has equals but no hashCode method  
<br>4957: StyledText - implement StyledTextBidi.isLigated  
<br>5132: StyledText - remove hardcoded margin  
<br>5178: Change BidiUtil calls to handle true Unicode/Windows CE changes
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 009 - Thursday October 18, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
4444: EWT - incorrect selection feedback when the item's text is changed (1FFP3U2)
<br>4446: DCR - GridBagLayout compatible LayoutManager (1FGCPO2)  
<br>4762: StyledText - default lineStyler remove line background color hack (1GHBMUV)
<br>4819: StyledText - bidi - cursor navigation (1GJLKSN)  
<br>4820: StyledText with style SINGLE does not handle CR/LF well (1GJM2Z5)
<br>4855: Severe: Check boxes are black (1GL0XSI)  
<br>4909: EC: Combo.setText doesn't work on Linux  
<br>4910: EC: Combo.select() fires a selected event on Linux only  
<br>5045: Control.moveAbove() throws NPE if argument is null  
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 008 - Thursday October 11, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GLDQYB: SWT:WIN - Text widget with DND enabled, MouseDown but no MouseUp
<br>1GLADBK: SWT:ALL - StyledText - getOffsetAtLocation should throw exception
<br>1GL4ZVE: SWT:ALL - StyledText - getOffsetAtLocation(getLocationAtOffset(N)) != N
<br>1GKO6NY: SWT:ALL - Backspacing in StyledText does not fire selection changed
<br>1GKB1OC: ITPJUI:ALL - Error in JavaDoc hover help
<br>1GK9API: SWT:ALL - StyledText - bidi - numbers,mixed LtoR/RtoL text and caret positioning
<br>1GJLQ16: SWT:ALL - StyledText - bidi - backspace and delete behavior
<br>1GIK7D4: SWT:ALL - StyledText - Selection cleared when deletion disallowed by verify listeners
<br>1GDOMBI: SWT:WINNT - StyledText - redrawRange() doesn't checkWidget
<br>1GDKK3R: SWT:WINNT - StyledText - setCaretOffset and line delimiters bug
<br>1FMRQOT: SWT:ALL - No null argument checks in Dialog constructors
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 007 - Thursday October 4, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GKZH74: ITPJUI:WIN2000 - Disappearing Stop icon
<br>1GKZ8CV: SWT:WINNT - setSelection triggers SelectionChanged event
<br>1GKU4C5: SWT:ALL - StyledText - bidi - scrolling to show cursor should take cursor direction into account
<br>1GKPYMK: SWT:WINNT - StyledText - bidi - caret moves when switching keyboard from Hebrew to Arabic
<br>1GKOGQO: SWT:ALL - Javadoc: setSelection in Button and ToolItem
<br>1GKM2O5: SWT:WINNT - StyledText - bidi - ArrayIndexOutOfBounds exception in StyledTextBidi.isRightToLeft
<br>1GKM193: SWT:WINNT - StyledText - bidi autoscroll left does not always scroll all the way to the left
<br>1GKKC0U: SWT:ALL - Tracker calls OS.DispatchMessage(msg) on windows but does not on Linux.
<br>1GIVAXX: SWT:ALL - StyledText - Editors should support shift-backspace
<br>1GELQ14: SWT:WINNT - StyledText - DefaultContent - handle weird line delimiter cases
<br>1GE8LG0: SWT:Linux - Toolbar is not showing the separators.
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 006 - Thursday Sept 27, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GHWA19: SWT:WINNT - Problem with callbacks from CCombo
<br>1GHFDPV: SWT:WIN2000 - Setting selection in Table does not update focus item
<br>1GF644V: ITPUI:Linux - Unzoom is changing the active editor.
<br>1GKM3XS: SWT:WINNT - StyledText - bidi autoscroll left: selection reset on mouse move
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 005 - Friday Sept 21, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GK09Z0: SWT:Linux - setEnabled(false) has no effect on aToolbar
<br>1GJZZS6: SWT:Linux - File Dialog returns a directory
<br>1GF7SMC: ITPUI:Linux - Wrong bg for close button on editor tab
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 004 - Thursday Sept 13, 2001

<h2>
<a NAME="API Behaviour change"></a>API Behaviour change</h2>
The behaviour of dispose for GCs has been modified such that attempting to dispose of
a GC on a control <em>after</em> the control has been disposed will generate an
SWTException.  This fixes an OS resource leak and potential GPF situation.

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GJUAKL: SWT:Neutrino - Control.internal_new_GC() needs !isValidWidget() check
<br>1GJN52N: SWT:Linux - Text prints system error message for horizontal scrollbar
<br>1GJBOAV: SWT:ALL - ScrolledComposite bugs
<br>1GIXELI: SWT:ALL - Need Caret to allow bitmaps so bidi caret can be created
<br>1GI5O1T: SWT:WINNT - Composite.setFocus takes focus when it should not
<br>1GHOND7: SWT:WIN2000 - Selection problem with single-selection trees
<br>1GHG990: SWT:ALL - Probable bug in Slider page increment setting
<br>1GENJ60: SWT:ALL - ScrolledComposite should include example in its class comment
<br>1GEA7K7: ITPUI:Linux - Default button not working
</blockquote>


<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 003 - Friday Sept 07, 2001

<h2>
<a NAME="New APIs"></a>New APIs</h2>

<blockquote>
FontData.setLocale(java.util.Locale) added
<br>Caret.getImage() added
<br>Caret.setImage(Image) added
<br>GC.fillGradientRectangle(int, int, int, int, boolean) added
</blockquote>

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GJM7KM: SWT:Linux - Table and Tree return a different size for every second call to computeSize
<br>1GJLKHE: SWT:SPARC - GP on "Installed JREs" preference page
<br>1GJLK63: SWT:ALL - StyledText - bidi - keyboard switching
<br>1GJLE36: SWT:WINNT - Alpha data redrawing improperly after occlusion
<br>1GJA2L7: SWT:WIN - Different behavior for GC.drawString() args on Win vs. Photon
<br>1GIZ0P6: SWT:WINNT - GC.drawImage() problem with transparent pixels
<br>1GIXELI: SWT:ALL - Need Caret to allow bitmaps so bidi caret can be created
<br>1GI7FQF: SWT:ALL - Can't set focus to Tasks View by Keyboard
<br>1GI7EBL: SWT:Linux - api typo: ToolItem>>getDisabledmage()
<br>1GI3P86: SWT:ALL - Semantic differences between emulated Table and Tree codebase on Motif and Photon
<br>1GI1WEA: SWT:Neutrino - Text selection code not working correctly
<br>1GHWED2: SWT:WINNT - GC.stringExtent() not correct for Windows Arial font
<br>1GHWB7G: SWT:Linux - Linux font dialog doesn't open with given values.
<br>1GHVRFY: SWT:Neutrino - Text#ClearSelection changes the CaretPosition in a SINGLE-line widget
<br>1GHVLV6: SWT:Neutrino - Text#SetTopIndex and getTopIndex inconsistent
<br>1GHOJ6T: SWT:Neutrino - Text#setSelection inconsistent between SINGLE and MULTI
<br>1GHBLRA: SWT:Neutrino - Display.getBounds() returns incorrect info
<br>1GH48UQ: SWT:Neutrino - Enter key does not insert new line with Text.MULTI widget
<br>1GGT0TM: SWT:Neutrino - GC#drawArc inconsistent between NT and NTO
<br>1GG1DBT: SWT:SPARC - Solaris loses input characters
<br>1GG07HW: SWT:Linux - Tree.getItem() modifies its argument on Motif
<br>1GG0069: SWT:Linux - Weird layout issues seen in Control Example
<br>1GFZZLK: SWT:Linux - ToolItems not disabled when containing ToolBar is disabled
<br>1GFZU3X: SWT:ALL - ImageLoader.load(String) not closing file input stream
<br>1GFZPDP: SWT:Linux - Combo box with SWT.SIMPLE style does not respect Disabled flag (visually)
<br>1GFW85H: SWT:ALL - Printer.getPrinterData() has stale comment
<br>1GFW6MQ: SWT:ALL - DCR: Program class needs .equals() and .hashCode()
<br>1GFW4YN: SWT:ALL - Help KevinH add printing to Eclipse
<br>1GFQKDT: SWT:ALL - Image.setBackground() / getBackground() asymmetry
<br>1GFONVW: SWT:Linux - Empty Combo should not fire Selection event
<br>1GFL0HP: SWT:Linux - Remaining items in SWT comments to fix
<br>1GET90D: SWT:Linux - SWTExceptions bring down Eclipse
<br>1GESQBK: ITPJUI:WINNT - How to get access to pop-up menus of the Java editor ?
<br>1GELX4A: ITPUI:ALL - Hover help is not visible if pane is dragged out of workbench
<br>1GEHWAF: ITPUI:WIN2000 - Can't enter text in a Swing TextField or TextArea
<br>1GE5ECJ: ITPUI:WIN2000 - Hover help for title bar buttons appears behind detached view
<br>1GDX7R8: ITPUI:ALL - SWT setText() does NOT have any way to avoid making mnemonics.
<br>1GD5UHA: SWT:WIN2000 - Double-clicking on toolbar item gives double-click event on toolbar
<br>1GBXIEO: SWT:ALL - DCR: Include cursor pos in Tracker move event
<br>1G4IMQ3: SWT:WINNT - Table images incorrect after rapid removal and creation
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 002 - Wednesday July 18, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GGZ13T: SWT:Neutrino - invalid mouse state occuring in Photon
<br>1GGRCCS: SWT:Neutrino - Label does not wrap in SWT0125
<br>1GGAON2: SWT:ALL - Scaling image with alphas does not work correctly
<br>1GFZQVQ: SWT:Linux - Vertical ProgressBar grows incorrectly
<br>1GFQA18: SWT:Linux - Cheese with GC drawRoundedRectangle() on Motif
<br>1GFPK6G: SWT:Linux - Motif fillPolygon() specifies improper hint
</blockquote>

<h1>
Eclipse Platform Build Notes<br>
SWT</h1>
SWT Build 2.0 001 - Thursday July 12, 2001

<h2>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h2>

<blockquote>
1GGET76: SWT:Neutrino - Canvas does not respond to setFocus()
<br>1GGAS5P: SWT:Neutrino - Photon on QNX 6.1.x needs SWT native changes
<br>1GG96RO: SWT:Neutrino - drawOval and fillOval not compatible
<br>1GG8ZLV: SWT:WINNT - drawOval behaves differently on Windows vs. other platforms
<br>1GFKYD9: SWT:Linux - -HANG- (Xserver) When perfoming display.wake() in a DND dragStart()
<br>1GFKK37: SWT:Linux - FileViewer examples issues
<br>1GFBHX6: SWT:ALL - CTabItem tool tip flashing
<br>1GF9ZMT: SWT:SPARC - 8-bit Icons are losing colors
<br>1GF9ZJG: SWT:SPARC - Icons are being masked incorrectly on Solaris
<br>1GF9YHD: ITPUI:WIN2000 - SWTException: help view
<br>1GF9Y32: SWT:SPARC - 24-bit MSB Icons are wrong color (greenish)
<br>1GF0D05: SWT:Linux - GPFs when running JUnit TestRunner in J9 AWT
<br>1GEUZZC: SWT:ALL - "Name" of plugin inconsistant with other plugins
<br>1GETDP5: ITPUI:Linux - NPE while closing editor on linux
<br>1GDVRT5: SWT:Neutrino - Alpha channel memory leak
<br>1GDRXZR: ITPJUI:Linux - SWT: Context-Menus issue under Linux 
<br>1GD0OSK: SWT:ALL - API - package javadoc for SWT packages missing
<br>1GCHS75: SWT:WINNT - workbench exits during expand collapse
<br>1GCFUS0: SWT:ALL - CTabFolder "floating" X sticks sometimes
<br>1GAR95O: SWT:ALL - Remove Smalltalk comments from SWT code
<br>1GAQRND: SWT:ALL - DOC: Write good Javadoc comments for all of SWT
<br>1G97I28: SWT:Linux - Tool bar buttons do not always work
<br>1G84AZB: ITPDUI:ALL - Rename truncates name
<br>1G845EZ: SWT:WIN2000 - Spec for Layout.computeSize() is truncated
<br>1G7YXLB: SWT:WIN - StyledText - NLS Support
<br>1G7NSHR: SWT:ALL - Widget.addListener(int, Listener) vs. adding typed listeners
<br>1G4XDJO: SWT:Linux - Tree needs to display an insert marker
<br>1G0Y8NZ: SWT:ALL - Combo box doesn't send key and mouse events 
<br>1FXAVLF: SWT:WINNT - Disabled toolbar icons don't adapt to appearance changes
<br>1FV1S18: SWT:ALL - Need more WM_* messages passed to ActiveX Control
<br>1FTWX55: SWT:ALL - Inconsistant commenting of which SWT objects need to be disposed.
</blockquote>
<a href="hglegal.htm"><img SRC="ngibmcpy.gif" BORDER=0 height=12 width=195></a>
</body>
</html>
