<!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>

<h2> SWT Build 3.0 021 - Tuesday September 16, 2003 </h2>

<h3>
<a NAME="Breaking Changes"></a>Breaking Changes</h3>

<p>Canvases now see Ctrl+Tab, Shift+Tab, Ctrl+PgUp and Ctrl+PgDn by default instead of traversing.
This change was made for the Eclipse key binding work.  The rule that Canvases see every key was
broken in previous versions of SWT due to a last minute accessibility work around for 2.0.
</p>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote> 
42897:  BIDI: CHECK style doesn't work with RTL Tree or Table  
<br>42787:  CheckboxTableViewer does not clear selection   
<br>42202:  JDTUI tests don't finish    
<br>15307:  DCR - Ability to forbid SWT button (PUSH style) to become default needed  
<br>32790:  Breakpoint hover is flaky on OS X  
<br>37863:  Text's focus border has wrong background 
<br>39987:  BIDI: MIRRORED bit can't be switched on in the style's bitmap of any SWT widget.  
<br>40006:  BIDI: rtl-oriented StyledText has overlapping segments problem  
<br>41039:  Hitting the Enter/Return key in the Find/Replace dialog doesn't do anything on Mac OS X  
<br>42349:  Bogus implementation for GC.drawText (String string, int x, int y, int flags) on Mac  
<br>42353:  drawString/drawText do not work properly on GTK.  
<br>42512:  MenuBar on Decorations are not refreshed  
<br>42724:  StyledText - selection rendered incorrectly on bidi platforms  
<br>42818:  DirectoryDialog does not show its set message  
<br>42882:  remove platform code throwing ClassNotFound exception  
<br>43011:  "Alt+" key strokes not always received on "zh_CN.GB18030"  
</blockquote>


<h2> SWT Build 3.0 020 - Tuesday September 9, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote> 
4776:  StyledText - GC.stringExtent returns incorrect value (1GI7ALA)  
<br>35589:  StyledText - add getStyleRanges(start, offset) API  
<br>35826:  GPs on exit  
<br>38983:  StyledText - ignore WRAP when SINGLE style is specified  
<br>40019:  BIDI: StyledText has problem with drawing of selection in both ltr and rtl orientation of this widget in the bidi locale.  
<br>40406:  Clicking in tree does not bring window to the front.  
<br>40693:  Text - No Verify/Modify when a modifier key is down  
<br>40800:  org.eclipse.swt.widgets.Text, method append(), bottom focusing error  
<br>41748:  [Keybindings] Keyboard Shortcuts not working  
<br>41773:  underscore dissapears in editor if font is bold Courier New size 9  
<br>41899:  Odd font names returned by getFontList on Mac  
<br>42259:  StringIndexOutOfBoundsException in FontData.getLocale()  
<br>42266:  NPE when opening Compiler preference page  
<br>42275:  Device.getFontList() is inconsistent across platforms.  
<br>42293:  Menu item too large  
<br>42323:  Eclipse won't start after renaming Eclipse.app  
<br>42460:  Browser - report location before it is changed  
<br>42465:  StackOverflow on Keys preference page  
<br>42697:  multiselect in pocket pc  
</blockquote>


<h2> SWT Build 3.0 019c - Tuesday September 2, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
39781:  Selection events not fired from Combo  
<br>40560:  Label with text and image set tries to display both  
<br>41330:  Import|filesystem Form Directory input acts strange  
<br>41619:  SWT does not render Unicode glyphs > 255  
<br>41707:  Exception causes Members view to become empty  
<br>41968:  Some menu item texts appear blank on Solaris 9 x86  
<br>41980:  GP showing Workbench - Appearance preference page  
<br>42008:  Corrupt Tree view-model after disposing last treeItem  
<br>42150:  Browser plugin not working on GTK  
<br>42182:  Externalize strings wizard is broken  
</blockquote>


<h2> SWT Build 3.0 019 - Monday August 25, 2003 </h2>

<h3>
<a NAME="Breaking Changes"></a>Breaking Changes</h3>

<p>Keydown events now run before the work is done in the Operating System.  This means, for example, 
that if you hook a key down event in a text widget and inside the key down event, get the content of 
the text widget (Text.getText()), the content will not contain the key that was just typed.  
To get the content with the latest character you can use Display.asyncExec - this will run after 
the Operating System has processed the key down.  Note: in this case you probably should 
have been using the SWT.Modify or SWT.Verify event.</p>

<p>This change was made to support key bindings in Eclipse so that they could intercept
key events before any widget had a chance to process the character.</p>

<h3>
<a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Region(Device) added
<br>Region.intersect(Rectangle) added
<br>Region.intersect(Region) added
<br>Region.subtract(Rectangle) added
<br>Region.subtract(Region) added
<br>Rectangle.intersect(Rectangle) added
<br>Rectangle.intersects(int, int, int, int) added
<br>TableItem.setBackground(int, Color) added
<br>TableItem.setForeground(int, Color) added
<br>TableItem.getBackground(int) added
<br>TableItem.getForeground(int) added
</blockquote>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
20536: SWT error during Tracker instantiation in GTK  
<br>40529: SWT examples: setup doc bug    
<br>41840: Windows only - Browser widget with Mozilla  
</blockquote>


<h2> SWT Build 3.0 018 - Wednesday August 20, 2003 </h2>

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

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

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


<h2> SWT Build 3.0 017a - Tuesday August 19, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 017 - Tuesday August 12, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>   


<h2> SWT Build 3.0 015 - Tuesday July 29, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>   


<h2> SWT Build 3.0 015 - Tuesday July 29, 2003 </h2>

<h3>
<a NAME="Breaking Changes"></a>Breaking Changes</h3>
<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>
<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>   


<h2> SWT Build 3.0 014f - Tuesday July 22, 2003 </h2>

<h3>
<a NAME="Breaking Changes"></a>Breaking Changes</h3>
<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.

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>   


<h2> SWT Build 3.0 014 - Tuesday July 14, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 013 - Thursday July 10, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 012 - Tuesday July 8, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 011 - Tuesday July 1, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 010 - Tuesday June 24, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 009 - Tuesday June 17, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>  


<h2> SWT Build 3.0 008 - Tuesday June 10, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>  


<h2> SWT Build 3.0 007 - Tuesday June 3, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 006 - Tuesday May 27, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>




<h2> SWT Build 3.0 005 - Tuesday May 20, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 004 - Tuesday May 13, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 003 - Tuesday April 6, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 002 - Tuesday April 28, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 3.0 001 - Tuesday April 22, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 033d - Monday March 24, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 033 - Tuesday March 18, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 032c - Tuesday March 11, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 032 - Thursday March 06, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 031 - Thursday February 27, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 030 - Tuesday February 18, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 029 - Thursday February 13, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 028 - Thursday February 6, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 027 - Wednesday February 5, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>




<h2> SWT Build 2.1 026 - Tuesday January 28, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 025 - Tuesday January 21, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 024 - Tuesday January 14, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 023 - Tuesday January 7, 2003 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 022 - Tuesday December 17, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>




<h2> SWT Build 2.1 021 - Friday December 13, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 020 - Tuesday December 10, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 019 - Tuesday December 3, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 018 - Tuesday November 26, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 017 - Tuesday November 19, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 016 - Tuesday November 12, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 015 - Tuesday November 5, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>




<h2> SWT Build 2.1 014 - Tuesday October 29, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 013 - Tuesday October 22, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 012 - Tuesday October 15, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 011 - Tuesday October 8, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 010 - Tuesday October 1, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 009 - Tuesday September 24, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 008 - Tuesday September 17, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 007 - Tuesday September 10, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 006 - Tuesday August 27, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 005 - Tuesday August 20, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 004 - Tuesday August 13, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 003 - Tuesday August 6, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 002 - Tuesday July 30, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.1 001 - Tuesday July 23, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 052 - Wednesday October 30, 2002 </h2> (2.0.2 stream)

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 050 - Wednesday October 16, 2002 </h2> (2.0.2 stream)

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


<h2> SWT Build 2.0 049d - Monday August 26, 2002 </h2> (2.0.1 stream)

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


<h2> SWT Build 2.0 049b - Wednesday August 21, 2002 </h2> (2.0.1 stream)

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 049 - Wednesday August 14, 2002 </h2> (2.0.1 stream)

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 048 - Tuesday August 6, 2002 </h2> (2.0.1 stream)

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 047 - Monday June 17, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 046 - Friday June 14, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 046 - Tuesday June 11, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 045 - Tuesday June 11, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 044 - Monday June 10, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 043 - Friday May 31, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 042 - Thursday May 30, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 041 - Tuesday May 28, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 040 - Tuesday May 21, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 039 - Tuesday May 14, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 038 - Tuesday May 7, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 037 - Tuesday April 30, 2002 </h2>

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

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>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 036 - Tuesday April 23, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 035 - Thursday April 18, 2002 </h2>

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

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 034 - Tuesday April 9, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 033 - Tuesday April 2, 2002 </h2>

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


<h2> SWT Build 2.0 032 - Thursday March 28, 2002 </h2>

<h3>
<a NAME="StyledText Bidi Printing"></a>StyledText Bidi Printing</h3>
<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>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 031 - Monday March 18, 2002 </h2>

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

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 030 - Tuesday March 12, 2002 </h2>

<h3>
<a NAME="New APIs"></a>New APIs</h3>
<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>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 029 - Tuesday March 5, 2002 </h2>

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

<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.

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 028 - Thursday February 28, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 027 - Tuesday February 26, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 026 - Tuesday February 12, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 025 - Tuesday February 5, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 024 - Tuesday January 29, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 023a - Thursday January 24, 2002 </h2> (Eclipse Milestone 2)

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>




<h2> SWT Build 2.0 023 - Tuesday January 22, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 022 - Tuesday January 15, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 021 - Tuesday January 8, 2002 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 020 - Tuesday December 18, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 019 - Tuesday December 11, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 018 - Tuesday December 4, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 017 - Tuesday November 27, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 015 - Tuesday November 20, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 014 - Thursday November 15, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 013 - Tuesday November 13, 2001 </h2>

<h3>
<a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<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>


<h2> SWT Build 2.0 012 - Monday November 5, 2001 </h2>

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


<h2> SWT Build 2.0 011 - Thursday November 1, 2001 </h2>
<h3>
<a NAME="API Changes"></a>API Changes</h3>
<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>

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

<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>



<h2> SWT Build 2.0 010 - Thursday October 25, 2001 </h2>

<h3>
<a NAME="Behaviour change"></a>Behaviour change</h3>
<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>

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

<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>


<h2> SWT Build 2.0 009 - Thursday October 18, 2001 </h2>

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

<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>



<h2> SWT Build 2.0 008 - Thursday October 11, 2001 </h2>

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

<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>



<h2> SWT Build 2.0 007 - Thursday October 4, 2001 </h2>

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

<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>



<h2> SWT Build 2.0 006 - Thursday Sept 27, 2001 </h2>

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

<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>



<h2> SWT Build 2.0 005 - Friday Sept 21, 2001 </h2>

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

<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>



<h2> SWT Build 2.0 004 - Thursday Sept 13, 2001 </h2>

<h3>
<a NAME="API Behaviour change"></a>API Behaviour change</h3>
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.

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

<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>



<h2> SWT Build 2.0 003 - Friday Sept 07, 2001 </h2>

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

<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>

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

<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>


<h2> SWT Build 2.0 002 - Wednesday July 18, 2001 </h2>

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

<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>


<h2> SWT Build 2.0 001 - Thursday July 12, 2001 </h2>

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

<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>
</body>
</html>
