<!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.2 000 - Friday March 10, 2005 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
79934: Incorrect SWT.Deactivate received
</blockquote>

<h2> SWT Build 3.0.1 064 - Saturday February 11, 2005 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
<br>71854: Memory leak in ClipboardProxy.getFunc()
<br>61384: [browser] support mozilla 1.7
<br>75451: setBackground(index, color) does not set color when tableitem is in a Table
<br>82837: Embedding swing on swt _ problems with JDK1.4.1
<br>83819: JPopupMenu doesn't work correcty in a SWT composite
<br>51079: Resizing of TableColumns on Linux displays extra horizontal toolbar
<br>71237: Controls placed in group composite w/ text title are incorrect
</blockquote>

<h2> SWT Build 3.0.1 063 - Wednesday September 15, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
68855: org.eclipse.swt.tools.internal.SwtJniGen is not working properly 
<br>69009: Eclipse cannot be run on Itanium 64-bit platform
</blockquote>

<h2> SWT Build 3.0.1 062l - Wednesday September 8, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
70299: Eclipse dead slow on one system, normal on other
</blockquote>

<h2> SWT Build 3.0.1 062k - Wednesday September 1, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
47549:  GPF in XtSetValues on M5
<br>70077: [typing] Copy/paste doesn't work occasionally
<br>71019: Setting a ToolItem's control to a Button doesn't work in Linux GTK
<br>72040: ActiveX Accessibility
</blockquote>

<h2> SWT Build 3.0.1 062j - Wednesday August 25, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
67061:  [Browser] Blank page when opening page with Flash  
</blockquote>

<h2> SWT Build 3.0.1 062i - Wednesday August 18, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
66433: Need keyboard support for Nested Tabfolder Traversal
<br>69440: Inspect32 does not show name for CCombo
<br>38855: regression - Table.getImageBounds returns incorrect value
</blockquote>

<h2> SWT Build 3.0.1 062g - Wednesday August 11, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
68273: tabletree plus/minus not visible in High Contrast Mode
</blockquote>

<h2> SWT Build 3.0.1 062f - Wednesday August 04, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
39863: TableViewer / cellModifier / ComboBoxCellEditor: new value not set
</blockquote>

<h2> SWT Build 3.0.1 062e - Wednesday August 04, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
69410: TVT3.0: mnemonics doesn't work if focus is in a text widget
</blockquote>

<h2> SWT Build 3.0.1 062d - Wednesday August 04, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
39863: TableViewer / cellModifier / ComboBoxCellEditor: new value not set
</blockquote>

<h2> SWT Build 3.0.1 062c - Wednesday July 21, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
69398: Table.clearAll() does not force redraw
</blockquote>

<h2> SWT Build 3.0 062 - Thursday June 24, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
4410:  AWT/SWT - Applet Interop (1PQ8QG1)  
<br>30104:  Drag & Drop not implemented on the Mac  
<br>32434:  Javadoc typo  
<br>65439:  CBanner/CTabFolder comments.  
<br>66095:  Combo.setVisibleItemCount does nothing until resize/layout  
<br>67319:  CBanner javadoc incomplete  
<br>67979:  editor focus issue  
<br>68096:  SWT exception docking a detached view  
<br>68160:  Cannot use 'eclipse' command line launcher to launch eclipse app when no workspace specified on the command line  
</blockquote>

<h2> SWT Build 3.0 061c - Tuesday June 22, 2004 </h2>
<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
68056: GTK64 - CCombo does not work 
<br>67928: [Browser] Enter path to non-existing file brings NullPE 
<br>67935: Typo in SWT_AWT.new_Frame javadoc 
<br>68102: No mouse up when tree expansion indicator selected
</blockquote>

<h2> SWT Build 3.0 061 - Friday June 18, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
48492:  Eclipse crashes on GTK (linux) while Cell Editor in Property View loosing focus  
<br>60768:  CBanner at top does vertical sizing based on left components
<br>66962:  Tabbing from list in Property/Preference dialog takes you to sash instead of page  
<br>67458:  Resize is too slow for mouse events on GTK  
<br>67670:  cancelling Open Type dialog moves focus to Open Perspective button  
<br>67825:  [browser] browser crashes on jdk 1.5 beta applets  

</blockquote>

<h2> SWT Build 3.0 060 - Thursday June 17, 2004, 8:00pm </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
66813:  Browser does not handle setText twice  
<br>67185:  Bug in emulated TextLayout.setFont(Font)  
<br>67195:  Possible NPE in TextLayout (motif/emulated)  
<br>67219:  Segmentation fault in OS.gtk_main_do_event  
<br>67301:  Dll infos are bogus  
</blockquote>

<h2> SWT Build 3.0 059 - Thursday June 17, 2004, 4:25pm </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
44399:  SWTError when trying to copy entry from Error Log View  
<br>53920:  Slow performance updating target  
<br>55948:  BIDI: problems in rtl-oriented CTabFolder  
<br>58642:  [misc] caret disappears from java editor  
<br>65053:  [KeyBindings] Key bindings stop working  
<br>65975:  Ctrl+C broken in Java editor  
<br>66717:  SHADOW_IN style hides Group title  
<br>67483:  No chevron when not enough space to show all the tabs in CTabFolder  
</blockquote>

<h2> SWT Build 3.0 058d - Wednesday June 16, 2004, 8:00pm </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
66001:  package.html should not be included in binary plug-in JARs  
<br>67132:  Styled text example loses the text style when changing any style flag  
<br>67346:  Display.gdkEventWidgets leaks widgets  
<br>67355:  Setting font back to its default value in a table tree widget causes an illegalArgumentException  
</blockquote>

<h2> SWT Build 3.0 058c - Wednesday June 16, 2004, 4:00pm </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
65985:  Disabled controls still get keystrokes [was [Progress] NPE in log while refactoring]  
</blockquote>

<h2> SWT Build 3.0 058b - Tuesday June 15, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
34515:  GTK: Cascade MenuItem doesn't support image  
<br>40003:  Productize java_swt  
<br>59344:  Inspect Popups disappear on Mac  
<br>60657:  Default size of Shell is too big in multi-monitors  
<br>62565:  NPE in WM_KEYDOWN  
<br>66293:  Editor blank on startup  
<br>66633:  [Workbench] missing toolbar items  
<br>66653:  NPE on window close  
<br>66941:  SWT printing snippet not working on MacOS X  
<br>66942:  [browser] F5 blanks out the Browser widget when setText used  
</blockquote>

<h2> SWT Build 3.0 058 - Thursday June 10, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
6047:  setFocus fails if setRedraw turned off  
<br>6325:  No busy cursor for Open on Selection  
<br>9847:  Embedded Swing hangs eclipse when editor closes  
<br>35103:  OS X Editor has cursor problems  
<br>38408:  Caret.drawCaret ignores image content  
<br>42562:  Various improvements for the Os X Interface:  
<br>50216:  NPE in org.eclipse.swt.widgets.Control.hasFocus(Control.java:934)  
<br>51107:  ControlEditor sizing on the Macintosh  
<br>51697:  CustomControlExample: missing event listener part on CCombo tab  
<br>64400:  ON_TOP shell - can't setFocus to content  
<br>65350:  StyledText leaves second caret behind  
<br>65695:  TrayItem not coming back after an explorer crash  
<br>65697:  CCombo does not respond to keyboard or mouse actions when it it dropped down  
<br>66331:  exception in Members panel of java browsing perspective  
</blockquote>

<h2> SWT Build 3.0 057 - Wednesday June 9, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
35346:  Eclipse crash opening preferences of third party plugin  
<br>64349:  SWT of the eclipse 3.0 versions crashes on start (mouse-problem)  
<br>64429:  Progress bars use deprecated style  
<br>65269:  [EditorMgmt] Slow redraw/relayout when maximizing/unmaximizing an editor  
<br>65537:  [KeyBindings] Control (ctrl) key hotkeys not working eg Ctrl+F4  
<br>65792:  Blank lines in table [WAS: Table.showItem() works wrong in Win32]  
<br>66151:  Alt-clicking to expand a tree node doesn't work properly  
<br>66356:  DND - move reported to drag source even though cancelled  
</blockquote>

<h2> SWT Build 3.0 056 - Tuesday June 8, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
21245:  different disabled toolbar icons on GTK  
<br>32852:  Crash when using sub-pixel rendering in Xft 2.0  
<br>32978:  Export Javadoc: element not selected  
<br>37163:  Crash on startup: "Cannot open font file for font Verdana 10"  
<br>43270:  Non-Antialiased Fonts have wrong spacing  
<br>47464:  Second unused import message missing in problem display list view after rebuild  
<br>52276:  Blurred font rendering in editor under MacOS X  
<br>55600:  CVS perspective has busy cursor  
<br>56508:  Editor: some tab characters are not rendered missing in field declations  
<br>56765:  StyledText - Fix calculating of cursor level  
<br>57408:  DBCS: After pressing "Tab", anything can not be inputed  
<br>58615:  Setting italic font for tree items does not work on Mac  
<br>60659:  GP when asyncExec runs from DirectoryDialog modal loop (was Crash related to new Progress Viewer)  
<br>62336:  UI hangs while attempting to add missing methods.  
<br>64759:  Color buttons look bad on Mac  
<br>64793:  One line of cheese in CTabFolder selected tab  
<br>65387:  SWT depends on Swing (AWT not a problem)  
<br>65599:  Shell location is not properly used  
<br>65759:  TableItem does not redraw correctly on setText(int, String)  
<br>65905:  Possible Memory Leaks  
<br>65947:  SWT Carbon makefile still uses JNI 1.3.1 headers  
<br>66039:  org.eclipse.swt.widgets.Control has funky color issues  
</blockquote>

<h2> SWT Build 3.0 055 - Thursday June 3, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
14536  StyledText - bidi - change ctrl-arrow behavior  
<br>39493:  GTK Combo; first item is selected when Dropdown list is shown  
<br>42480:  JOGL method popups extremely slow; likely now SWT issue  
<br>43312:  Switching perspectives while debugging causes segfault  
<br>44003:  MenuItem.setAcceleratorText does not work properly on MacOS X  
<br>47972:  [KeyBindings] Incorrect drawing of accelerator text on mac os x  
<br>56509:  Details pane in Debug perspective doesn't render it's contents properly (repeats characters)  
<br>58176:  Screen scribbles when scrolling up in Java editor  
<br>62119:  setCursor() doesn't work for Text objects  
<br>63931:  [browser] setVisible(true) does not work  
<br>63991:  hang in gtk_clipboard_wait_for_contents()  
<br>64237:  [Menus] menu items missing on first click  
<br>64291:  mouse unusable over regions previously covered by fastview  
<br>64365:  Embedded AWT windows use wrong location  
<br>64645:  java.lang.ArrayIndexOutOfBoundsException in GTK Table.java  
<br>64705:  Expanding a Tree with left and right arrows does not trigger TreeExpanded or TreeCollapsed events.  
<br>64709:  Tree views don't update correctly using keyboard shortcuts  
<br>64752:  TableCurser.setSelection does not function properly after columns are disposed  
<br>64760:  add SINGLE/MULTI radios to ControlExample - Dialog tab - File Dialog Styles  
<br>64791:  [KeyBindings] accelerator strings displayed incorrectly.  
<br>64938:  [browser] NPE in test case  
<br>64980:  should use correct SIZE_ALL cursor on motifs  
<br>65169:  [browser] URLs with space don't show up on Safari  
<br>65214:  Regression: Tree.setRedraw(false) not reliable  
<br>65239:  new SWT Mac properties aren't boolean  
<br>65359:  Label.setText() causes a redraw when the string did not change  
</blockquote>

<h2> SWT Build 3.0 054 - Friday May 28, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
StyledText.getBaseline()
<br>Combo.getVisibleItemCount()
<br>Combo.setVisibleItemCount(int)
<br>CCombo.getVisibleItemCount()
<br>CCombo.setVisibleItemCount(int)
<br>CBanner.getSimple()
<br>CBanner.setSimple(boolean)
<br>CTabFolder.getSimpleTab() -> CTabFolder.getSimple()
<br>CTabFolder.setSimpleTab(boolean) -> CTabFolder.setSimple(boolean)
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
64518:  NPE in StyledText used by 'Change method signature' refactoring  
<br>64633   NPE caused by small font support
<br>64652   StyledText - Clicking at the end of a line place the care...
<br>62723:  javadoc console output: hyperlink not clickable, no hand ...
<br>53358:  GC copyArea(image, x, y) not implemented on Mac  
<br>7845:  API needed in Combo class to specify # of items visible  
<br>17346:  Missing busy cursor in Search dialog under GTK  
<br>22018:  GTK: Text.setCursor() does not function.  
<br>31023:  GP - using F3 to open new edit window  
<br>38260:  CCombo with Dialog  
<br>44648:  Support JDK1.1  
<br>45574:  Panther: Run... and Properties dialogs lay out incorrectly.  
<br>48006:  [SWT] layout problems on mac  
<br>50183:  Vertical scrollbar is not created as expected  
<br>54414:  [typing] Delete Next Word and others don't work quite right  
<br>58804:  Mac OSX : TableColumn Alignment  
<br>60452:  [Mac] Button Placed on Group does not get Dialog Font  
<br>60816:  Deferred events will not run during mousedrag  
<br>61728:  Need access to TextLayout styles and fonts  
<br>62329:  CTabFolder leaves a little cheese when resizing  
<br>62558:  Null Pointer when opening Folder in File>Open External File  
<br>62982:  TableColumn does not fire resize event  
<br>63003:  Ctrl+ Clicking on PackageExplorer expands items  
<br>63070:  some menus do not show their item texts  
<br>63701:  Display var in debugger exits eclipse JVM  
<br>63716:  Tree items do not display their children when unfolded by keyboard  
<br>63903:  setSimple  
<br>64216:  TableItem.getText - wrong for first column  
<br>64220:  Wrong cursor used for SWT.CURSOR_SIZEALL  
<br>64294:  Title and maximisation does not work on Pocket PC  
<br>64457:  calling CTabItem.setFont (and setImage) repeatedly with null causes repaints  
<br>64512:  Add smallFont and noFocusBorder properties to Info.plist file  
<br>20903:  ACC: Checkboxes not identified correctly  
<br>26632:  Table cloumn headers not drawn in GTK2  
<br>28990:  GTK: Paints not flushed after open()  
<br>35753:  missing API: TableCursor.removeSelectionListener(SelectionListener)  
<br>37956:  Crash in OS.gdk_pixbuf_scale_simple ()  
<br>38809:  DCR - need Display.getSystemCursor()  
<br>38828:  Eclipse Crach Closing Session  
<br>38875:  java.lang.reflect.InvocationTargetException on startup  
<br>40540:  Eclipse JVM crashes randomly in GTK native code.  
<br>42422:  eclipse crashes on startup with RedHat 9.0 system  
<br>47266:  [browser] how can we format URL links to pass on information to the SWT app  
<br>48850:  SWT Example projects build error  
<br>52109:  drawText() treats "\n" differently if antialiasing is on or off  
<br>56063:  [Colors] Perspective toolbar items have wrong background  
<br>56981:  [browser] need to support Alerts on Mozilla  
<br>57843:  Fatal Error in SWT causing Eclipse to crash.  
<br>58193:  [Browser] content embedded using the HTML OBJECT element doesn't show up in swt browser  
<br>59614:  Clicking the CTabFolder chevron twice does not make the drop down go away  
<br>59698:  [browser] investigate support for custom popup menu  
<br>60037:  Accessibility: Junit Preference Page checkboxes in list view not readable  
<br>60102:  Shell opened on KDE3.2.x does not paint  
<br>60237:  [browser] BrowserExample running inside Eclipse does not get key/mouse events  
<br>60457:  [browser] safari - does not fire location event for inner frame  
<br>60727:  BIDI: StyledText - Wrong cursor positioning on bidi boundary  
<br>60819:  Photon: Tree.java references java.util.Stack (not in JDK 1.1)  
<br>61316:  SWT error occurred on Eclipse 200405060200  
<br>62523:  launch eclipse with -DMBCS as a vmarg and copy-paste works incorrectly / ctrl f6 shows undisplayable characters  
<br>62528:  Tracker does not keep up with mouse movement  
<br>62761:  SWT should not grab focus on traversal events  
<br>62790:  packing a shell has the effect of creating an unusable shell on pocketpc  
<br>63006:  Typo in SWT doc for ON_TOP  
<br>63102:  [Icons] It is hard to distinguish pressed/non pressed icons on Mac OS 10.3.3  
<br>63105:  TableItem.getImageBounds() returns incorrect value for Column 0  
<br>63143:  malformed MANIFEST.MF in gtk/motif/gtk64 fragments  
<br>63296:  [browser] F1 crashes workbench  
<br>63661:  VM terminates abnormally  
</blockquote>

<h2> SWT Build 3.0 052 - Tuesday May 18, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
16620: 	GC.drawLine and GC.drawPolyline aren't consistent [portability]
<br>19828: 	CTabFolder popups should not span monitors.
<br>21574: 	Color selection for individual table cells
<br>27331: 	CTabFolder right control request
<br>28766: 	Printing Images does not respect transparency
<br>36732: 	Performance problems on Mac - slow appearance of cmd-space results
<br>39320: 	SWT.NO_BACKGROUND style does not work in Linux-GTK
<br>39881: 	BIDI: DCR - Need to implement a Text Layout class
<br>44915: 	Clipboard getAvailableTypes runs the event loop on GTK
<br>45093: 	Editor tab tooltip position wrong for dual monitor setup
<br>52458: 	[Workbench] wrong background color in tab corners
<br>52574: 	Rendering of CBanner with only one child
<br>52595: 	CTabFolder flashing during resize
<br>53791: 	Implement Control.setRedraw() on platforms other than Windows
<br>54264: 	[EditorMgmt] Editor close button
<br>54499: 	Tree.getItem(Point) returns element even if point is over +/- area
<br>55392: 	Critical GTK Error in gtkselection.c
<br>55748: 	[browser] fail to launch under RH EL3
<br>56170: 	SWT_AWT problems
<br>56694: 	Typing slow because too much data sent over the wire (was: [Workbench] since 3.0M8 typing is terribly slow)
<br>57777: 	[typing] Wrong behavior for append next "word" to selection action
<br>57965: 	GTK: Control.setBackground() with same color causes OS paint event (BBAWT)
<br>59329: 	[Browser] browser code fails if gre.conf contains a blank line before version number
<br>59333: 	[Browser] Exception error messages are not very meaningful
<br>59998: 	[browser] hover tooltips at wrong position
<br>60068: 	TableCursor crashes when scrolling vertically an empty table
<br>60662: 	version-match deprecated in SWT fragment manifests
<br>60934: 	[interop] tab focus problem
<br>61207: 	cannot use icons with > 8 bit color depth
<br>61397: 	UI seems to become "disconnected" from the application
<br>61496: 	[EditorMgmt] Editor tabs should adjust themselves on window resize
<br>61789: 	[Browser] browser code uses a hardcoded config file name /etc/gre.conf
<br>61818: 	Cheese in ViewForm
<br>61970: 	NPE in TableItem class in getImageBounds (int index)
<br>62010: 	NPE Pressing CTRL-O in java editor
<br>62090: 	Pressing enter in combo triggers dialog traversal
<br>62195: 	Error in SWT#SCROLL_LOCK JavaDoc
<br>62393: 	SWT_AWT enter key misbehaves with JTextArea in a wizard
<br>62477: 	Clicking on shell title bar causes activation events with null active shells
</blockquote>

<h2> SWT Build 3.0 051 - Tuesday May 11, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
TextLayout.getAscent() added
<br>TextLayout.getDescent() added
<br>TextLayout.setAscent(int) added
<br>TextLayout.setDescent(int) added
<br>Display.getSystemImage(int) added
<br>Display.getSystemCursor(int) added
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
12625:  Menu items still grab accelerators when disabled  
<br>25703:  Getting system icons for dialogs  
<br>28858:  Cursor appears behind character although it's in front of  
<br>40523:  [launcher] Allow launcher build using MinGW  
<br>43921:  gradient fill does not print its color properly  
<br>46824:  ControlExample: scrolling Canvas leaves screencheese  
<br>47511:  Shell.setVisible runs event loop  
<br>53034:  showItem() not working when setRedraw(false)  
<br>55616:  [browser] SWT.Browser (Mozilla) does not like https links (img src="https://..." or href="https://...")  
<br>57506:  Pressing TAB key creates junk in editor  
<br>59352:  [browser] GTK crashes on attachments  
<br>60420:  lots of crashes since M8  
<br>60454:  [browser] Browser crashes on Jaguar  
<br>60471:  Eclipse stops responding to mouse, NullPointerException on shutdown  
<br>60568:  Table TreeItem selection fails with MouseEvent position  
<br>60607:  inconsistent API in FontData  
<br>60704:  Long menu item labels cut off  
<br>60893:  [64] NPE on startup  
<br>60913:  StyledText shows lines when mulitple lines are selected  
<br>60937:  Hitting Enter when a combobox is open can invoke default button  
<br>60969:  [browser] clicking link to PDF crashes VM  
<br>61109:  Widget is disposed error disposing shell  
<br>61239:  TableItem NPE  
<br>61337:  Dialogs resize when moved on Solaris  
</blockquote>

<h2> SWT Build 3.0 050 - Tuesday May 4, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
New accessibility state and role constants ACC.STATE_LINKED and ROLE_LINK.
<br>StyleRange now accepts SWT.ITALIC.
<br>CTabFolder.MIN_TAB_WIDTH is deprecated and replaced by CTabFolder.setMinimumCharacters
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
4587:  StyledText - support italic fonts and italic font style (1G60C4X)  
<br>10846:  Tab titles not read by JAWS  
<br>21771:  Accessibility for Buttons ignored in JAWS  
<br>25629:  Need STATE_SYSTEM_LINKED mapped to one of the states in ACC.  
<br>41887:  [browser] Mac - HTML Browser widget - investigate Safari browser  
<br>42264:  [Outline] Show Outline popup very slow  
<br>44008:  [browser] Browser component grabs focus when loaded.  
<br>50524:  RCP: CTabFolder truncated tabs should appear as tooltip  
<br>51676:  New Look CTabFolder menu does not stay open  
<br>52087:  not showing close button makes it easy to close tabs accidentally  
<br>52482:  [New Look] black box around view tab labels  
<br>52489:  CTabFolder selected tab not properly rendered  
<br>52593:  CTabFolder.setTabHeight and paint problem  
<br>52837:  [Editor Mgmt] Closing an editor when using multi tabs does not always redraw properly  
<br>52958:  TabFolder, new look draws dotted selected  
<br>54575: CTabFolder: Selecting tabs should not affect whether chevron is shown (should use constant space)
<br>54591:  CTabFolder: screen cheese  
<br>55245:  CTabFolder does not give available space to tab early enough  
<br>56472:  [Font/Colour] Active part foreground on white povokes nasty looking close widgets  
<br>56535:  [Workbench] No separator between part trim and its content is difficult on the eyes  
<br>58272:  BIDI: The C/ C++ editor doesn't preserve the keyboard language after pressing sapce bar  
<br>58704:  CBanner computesize seems wrong when no control on the right hand side  
<br>58843:  TableCursor example in Javadoc doesn't work on GTK!  
<br>59524:  Evaluation pop-up keybindings are broken  
<br>59861:  asyncExec runnables not run until drag complete in Windows  
<br>60127:  [PropertiesView] garbage in the properties view  
<br>60334:  Can't force focus to a shell (BBAWT)  
<br>60492:  [browser] safari - 2 browsers on different tab items in same tab folder overlap  
<br>60686:  Program.hashCode() throws NullPointerException under linux with gnome  
</blockquote>

<h2> SWT Build 3.0 049 - Tuesday April 27, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
32524:  CoolBar Clips 'run' icon  
<br>37785:  ctrl+delete nukes non-alphanum chars  
<br>43769:  Eclipse crashes when loading web page with applet in OLE Browser view  
<br>47939:  [browser] Expose native menus in WebBrowser  
<br>51682:  update (custom)control example to permit setting font on single item  
<br>51727:  SWT_AWT's use of embeddedFrame does not allow required subclassing of the embedded Frame  
<br>53506:  Program.getProgram() Does Not Get Default Command  
<br>55625:  Compiling SWT on top of GTK 2.4.0  
<br>55956:  [DynamicUI] Perspective deleted only after Workbench restart  
<br>56126:  StyledText background highlighting doesn't work  
<br>56376:  [EditorMgmt] Immortal editor tab tooltips  
<br>57079:  [interop] SWT_AWT causes JVM crash  
<br>57143:  Fast view animate transition bad on Linux  
<br>57225:  [browser] SWT Browser Widget Crashes Workbench on XP when loading the Shockwave Plug-in  
<br>57380:  Excess clipping/dirty area for Table PaintListener's paintControl(PaintEvent)  
<br>57562:  [Workbench] DBCS: Window resizing does not work properly  
<br>58073:  Table.java java.lang.ArrayIndexOutOfBoundsException:  
<br>58308:  SWT_AWT - Embedded JSplitPane resizable arrows  
<br>58575:  drawRectangles in Tracker causes missed mouse events  
<br>58638:  Permit to have synchronous display to help debugging  
<br>58732:  Coolbar on Linux-GTK should draw native handles  
<br>58851:  When shell is created with SWT.NO_TRIM, windows does not show it on task bar  
<br>59051:  fillGradientRectangle doesn't work with XORMode on Windows  
<br>59279:  Item.setText() impl. doesn't follow JavaDoc  
<br>59424:  BIDI: level of the first directional run is never detected  
<br>59472:  Eclipse splash screen label is "Silenio"  
<br>59615:  Empty space before handle in a coolbar  
<br>59707:  StyledText is not setting the OS background  
<br>59872:  Documentation fix for RowLayout  
</blockquote>

<h2> SWT Build 3.0 048 - Tuesday April 20, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
CoolBar now has SWT.FLAT style.
</blockquote>

<h3><a NAME="Breaking Changes"></a>Breaking Changes</h3>
<blockquote>
CTabItem no longer supports set/getForeground and set/getBackground.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
20186:  Copyright dates still are 2001  
<br>22589:  GTK: StyledText widget is slow  
<br>23566:  Accessibility - toolbar not accessible by keyboard  
<br>41090:  THAI/VIET: The behavior of text editing functions are not correct.  
<br>49133:  SWT_AWT API class undocumented  
<br>53107:  Slider crashes when hooking resize callback  
<br>53814:  views are blank when detached automaticly by switching perspective  
<br>54051:  Font baselines don't line up in Java editor  
<br>54225:  Checkbox TableItems don't honor background color near checkbox  
<br>54989:  [CellEditors] [regression] ComboBoxCellEditor does not fire value applied  
<br>57003:  DBCS:Copy/Paste or input DBCS display incorrectly in project file  
<br>57004:  DBCS:Can not copy/Paste or input DBCS data in project file  
<br>57426:  Clipped items when setting a tree item to use a bold font  
<br>57627:  Can't click in Content Assist window of New Class wizard  
<br>57948:  [browser] how to distinguish between a call to setText and a hyperlink activation  
<br>58071:  ICO images painted not correctly when smaller than 17x17 pixels  
<br>58093:  swt-gtk: uses ~100% CPU while drawing using fillGradientRectangle()  
<br>58243:  [browser] hover messages don't show up in mozilla  
<br>58346:  [browser] Browser not working with default RH EL3 update 1  
<br>58569:  Regression: StyledText does not wrap correctly  
<br>58756:  Tables & Images refresh problem  
<br>59106:  SWT Snippet 139 fails to compile  
</blockquote>

<h2> SWT Build 3.0 047 - Tuesday April 13, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
4425:  List(SINGLE) - setSelection(int, int) doesn't deselect when start>end (1FCHJMQ)  
<br>48849:  Keyboard events ignored in Import Plug-ins and Fragments dialog  
<br>50657:  Can't input 2 bytes character To combo box  
<br>56390:  EXCEPTION_ACCESS_VIOLATION  
<br>56829:  CBanner not sized correctly after coolbar wraps  
<br>56915:  Chinese characters not rendered in StyledText  
<br>57099:  GTK: Text widget of style MULTI does not send mouse track events if added to realized Shell (BBAWT)  
<br>57182:  [browser] Browser displays a blank page if character encoding is specified (Linux GTK)  
<br>57647:  errant ON_TOP | SYSTEM_MODAL Shell behaviour if tooltiptext is set on any control  
<br>57876:  Constructor for Font has wrong-named argument; doesn't appear to be used  
<br>57884:  Javadoc on Text missing possible style  
<br>58156:  Unhandled event loop exception (Widget is disposed) when using "Open Type Hierarchy"  
</blockquote>

<h2> SWT Build 3.0 046 - Tuesday April 6, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
25646:  [launcher] After rebranding, "Eclipse" shows up in Windows toolbar during launch.  
<br>27696:  DCR - need to set font and color for a TableItem's individual cells  
<br>37052:  Shells assuming SWT.RESIZE on GTK and Motif (BBAWT)  
<br>40521:  [launcher] Launcher error messages cannot be rebranded  
<br>42032:  [browser] Browser Mozilla binding - problem submitting form  
<br>42313:  SWT.CENTER and SWT.RIGHT don't work with Text  
<br>54341:  [browser] swt.browser.Browser; buttons in html does not work on linux/gtk  
<br>55541:  StyledText - Bidi segments Listener is broken  
<br>55702:  [browser] Intro page does not show images on Linux  
<br>55806:  [64] crash on startup when using jit on AMD64  
<br>55926:  [64] [M8] AMD64 I20040324 build cannot work (unsatisfied link errro)  
<br>56089:  [misc] Extend selection causing horizontal scroll is slow  
<br>56149:  coolbar does not fill vertical space  
<br>56315:  performance bad when moving lines  
<br>56667:  Minimization of top Shell widgets impossible (SWT.MIN & SWT.NONE) on PocketPC (BBAWT)  
<br>56795:  NPE opening quick outline/hierarchy  
<br>56799:  NPE in WM_KEYDOWN  
<br>56918:  Problems disposing TrayItem  
<br>56999:  [KeyBindings] Regression: Alt+Numpad keystrokes broken  
<br>57165:  eclipse does not start when using lesstif, FAQ is wrong  
<br>57296:  BidiUtil static var retains references to runnables from StyledText  
<br>57395:  backspace in texteditors -> double backspace  
</blockquote>

<h2> SWT Build 3.0 045 - Tuesday March 30, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
15025:  implement java.awt.Robot for SWT  
<br>51719:  Need to suppress "untitled window" on GTK  
<br>53274:  [SWT Examples] Image Analyzer crashed when tried to save images as PNGs and ICOs  
<br>53978:  manifest.mf of org.eclipse.swt is not consistent with plugin.xml  
<br>55522:  Display.post - support/investigate mouse button 2 and 3  
<br>55525:  Display.post - don't send mouse down/up when doing mousemove  
<br>55556:  MacOS 10.2.x (Jaguar) has no strcasestr function  
<br>55561:  Display.post - hang when doing a mousedown  
<br>55738:  next word action broken on win2000  
<br>55756:  Double click is ignored on progress indicators  
<br>55849:  Keyboard shortcuts don't work in old workspace  
<br>55897:  StyledText doesn't compute preferred size properly  
<br>55913:  Styled Text draws on top of itself  
<br>55917:  Extra library dependency in Eclipse 2.1.2 GTK launcher  
<br>55920:  View presentation visual problems  
<br>55937:  Introduction page wizard not properly installing SWT examples  
<br>55967:  SWT should be a singleton bundle  
<br>55980:  display.post() does not handle uppercase characters  
<br>56245:  subtitle text does not fill available horizontal space  
<br>56366:  Tooltip for CTabFolder shows up on wrong monitor  
</blockquote>

<h2> SWT Build 3.0 044 - Tuesday March 23, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
For new API released in the last few builds, see the "New & Noteworthy" link
on the Downloads page for 3.0M8 after March 26th, 2004.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
15054:  OwnerData or "virtual" Table support  
<br>21659:  Frames drawn in inappropriate places  
<br>23335:  Odd lines around buttons  
<br>30848:  API for Table#showColumn() like Table#showItem()  
<br>40420:  Shell with style NO_TRIM should not appear in the Window Manager task bar  
<br>40663:  Dragging views is not synchronised with mouse position  
<br>47638:  NPE in getParentBackground.  
<br>50359:  Problem with vertical toolbars and GTK+ 2.3.x  
<br>51582:  Need the ability to determine "High Contrast" mode  
<br>54231:  CTabFolder now adds margin around page controls  
<br>54291:  new TaskTray widget does not compile on Windows CE and GTK64  
<br>54386:  Stray pixel in SWT table  
<br>54878:  Drop down coolbar/toolbar menus and combo boxes take too many clicks  
<br>54990:  ALT+DOWN does not drop down CCombo list  
<br>55113:  Hover text stuck after drag in CTabFolder  
<br>55133:  Table.java: java.lang.ArrayIndexOutOfBoundsException with SWT.VIRTUAL  
<br>55187:  swt v3043b does not work under gtk 2.0.6  
<br>55300:  StyledText - single and border cause cheese when resize  
<br>55307:  ViewForm's title area controls are off by one pixel  
</blockquote>

<h2> SWT Build 3.0 043 - Tuesday March 16, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
4809:  SWT Cursor Source and mask are flip-flopped (1GJ80FZ)  
<br>6593:  Doc: knowing the coordinate space for SWT  
<br>25336:  CoolBar - computeSize do not respect autobreaks [Emulated]  
<br>30834:  Minimize to system tray  
<br>43893:  Scrolling copies wrong bits  
<br>49778:  Images on MenuBar are not lining up with thier Hotstop  
<br>50151:  Using SWT.RIGHT on a ToolBar leaves blank space  
<br>52785:  Eclipse 3.0M7 doesn't run on Fedora Core 2 test1 release.  
<br>53401:  [64] junit tests don't compile - crashes  
<br>53837:  Workbench hangs up when hitting space key on readonly combo.  
<br>54358:  Shells don't fire move event when not visible (BBAWT)  
</blockquote>

<h2> SWT Build 3.0 042 - Tuesday March 9, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
19654:  Coolbar - resizing window can add rows to coolbars  
<br>32537:  Menu text and accelerator text overlapping  
<br>42022:  Mnemonic traversal cannot be suppressed  
<br>46369:  javadoc should be updated for behavior of selecting multiple items in a single select list  
<br>51464:  eclipse.exe review/updates  
<br>51537:  need a way to pass a string to the launcher  
<br>52536:  [SWT Examples] Setting the style to SWT.FLAT has no effect on Buttons  
<br>52935:  Emulated Coolbar does not support wrapping  
<br>52959:  setFont() in TableTreeItem  
<br>53014:  MessageBox opens modal but unparented  
<br>53045:  no more handles!  
<br>53057:  Browser widget and display of special chars  
<br>53141:  JVM crash at eclipse exit  
<br>53221:  [SWT Examples] ???Save As??? Dialog of Image Analyzer does not provide the correct file path  
<br>53236:  Setting font/color on an item when there is no change should not redraw  
<br>53361:  [EditorMgmt] New look: editor close button (x) does nothing sometimes  
<br>53388:  [64] Crash in g_signal_lookup  
<br>53394:  ArrayIndexOutOfBoundsException in ColorDialog  
<br>53419:  viewing preference page makes preferences tree unresponsive  
<br>53430:  Additional fixes for porting SWT to 64-bit  
<br>53487:  [browser] Suze 9 installs Mozilla into different folder than RH  
<br>53519:  CheckboxTableViewer does not receive selection events  
<br>53544:  [Viewers] Checkbox Table Viewer does not provide selection callbacks on a check  
<br>53549:  remove custom code in Program Gnome  
<br>53556:  Index out of bounds resizing preference page  
<br>53570:  Opening the file type association dialog to the external editors view causes Eclipse to crash  
<br>53638:  eclipse startup problem  
<br>53723:  Problems with setFont() on TreeItem  
<br>53832:  VM Crash releated to focus or set font  
<br>53853:  Selection event for checkbox Table is broken  
<br>53995:  java_swt crashes if application bundle is named .APP instead of .app  
</blockquote>

<h2> SWT Build 3.0 041 - Tuesday March 2, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Table.setItemCount(), SWT.VIRTUAL and SWT.SetData have been added and
implemented on all platforms to support the virtual Table.  This feature
is "under construction".  Use at your own risk.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
4575:  desire exception checks for inputProc/windowCallback (1G55O7P)  
<br>17659:  Eclipse crashes when switching Encoding to UTF-16 (little endian)  
<br>20364:  Slider control does not take focus  
<br>39892:  SWT error thrown when refreshing the properties page  
<br>45845:  scrollbars on ScrollingGraphicalViewer sometimes does not work  
<br>45945:  Drawing issues with SWT 2.1.1 under PocketPC 2002  
<br>46156:  Eclipse crash with KERN_PROTECTION_FAILURE when customizing perspective  
<br>49082:  Unsupported color depth does not throw an exception in Linux GTK  
<br>52295:  Monochrome bmp and ico image data, and icon masks are not always handle correctly  
<br>52733:  Deadlock expand of HEAD  
<br>52862:  SPACE gets inserted into styledtext using system menu  
<br>53063:  Changing the style of a Label from SWT.SHADOW_IN to SWT.SHADOW_NONE does not make a difference in the appearance of the Label  
<br>53128:  Shell.setRegion() should check if region is disposed...  
<br>53440:  critical warnings when running jnigen tool  
</blockquote>

<h2> SWT Build 3.0 040 - Tuesday February 24, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Point Menu.getSize() added
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
6781:  Cannot draw unicode string  
<br>38643:  Toolbar computeSize stop working after WM_SETFONT  
<br>38714:  Table and table cursor buggy scrolling. It is impossible to use properly the table widget when the table cursor is involved.  
<br>42554:  Double icon in the dock on OSX  
<br>48341:  Cannot get height of Menu and no capabilities for work around  
<br>50107:  SWT does not compile successfully against CLDC (i.e. j2me)  
<br>51374:  Need MenuBar to support Images on PocketPC  
<br>51645:  Java core when running event loop on the Sun  
<br>51671:  Text not redrawn on new look CTabFolder  
<br>51777:  TableItem.getBounds(int) returns the wrong values when table scrolled  
<br>52024:  [NewLook] curvy lines have inconsistent line width  
<br>52242:  New Look: white banding in view and editor tabs  
<br>52255:  Found small problem in snipets code  
<br>52335:  Snippet108.html missing code  
<br>52337:  LZWCodec#maskTable should be a static final field  
<br>52541:  [SWT Examples] CoolBar Buttons with a dropdown menu do not behave correctly  
</blockquote>

<h2> SWT Build 3.0 039 - Tuesday February 17, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<p>CTabFolder has been modified to display the new look for 3.0.  
Please note that the new 3.0 API in CTabFolder has not been finalized and is subject to change.</p>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
21430:  Accessibility:JAWS can not read label for multi-lines Text  
<br>38194:  SWT performance issues with JAWS 4.5  
<br>38564:  [Import/Export] On MacOS X SWT Buttons easily get wrong height  
<br>43257:  org.eclipse.swt.custom.StyledText is not accessible  
<br>44236:  Jaws doesn't read eclipse's main menus  
<br>44946:  TableCursor always paints left-aligned text  
<br>47264:  I-Beam displayed in wrong control (Run... dialog)  
<br>48273:  [wm2003] pocket pc - issues with popup menu  
<br>48327:  [WM2003] Problem with PaintListener on PocketPC WM2003  
<br>49797:  [WM2003] GC cannot instantiate on PPC 2003  
<br>51031:  Broken arrows on multi page  
<br>51036:  Tree Widget opens then closes on RETURN/ENTER  
<br>51088:  Patch(es) to fix redraw bug after ControlEditors close.  
<br>51248:  GUI thread does not process the GUI update requests timely, causing the display to be unresponsive  
<br>51401:  can't find java.awt.* packages using IBMs 1.4.1 VM on linux  
<br>51472:  Error launching Browser plugin in pre-M7 build  
<br>51492:  changing TabFolder foreground colour is not immediately reflected  
<br>51831:  StyledText doesn't specify contents of its SelectionEvents  
</blockquote>

<h2> SWT Build 3.0 038 - Tuesday February 10, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
ACC.ROLE_TREEITEM added
<br>ACC.ROLE_TABLECELL added
<br>ACC.ROLE_TABLECOLUMNHEADER added
<br>ACC.ROLE_TABLEROWHEADER added
<br>TableItem.setFont(Font) and TableItem.setFont(int, Font) added
<br>TableItem.getFont() and TableItem.getFont(int) added
<br>Table.showColumn(TableColumn) added
<br>LocationEvent.top added
</blockquote>

<h3><a NAME="Breaking Changes"></a>Breaking Changes</h3>
<blockquote>
ACC.ROLE_TABLECOLUMN deprecated - use ROLE_TABLECOLUMNHEADER instead.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
37742:  ACC: missing an item correspondent with ROLE_SYSTEM_OUTLINEITEM defined by MSAA  
<br>43091:  [browser] Browser - LocationEvent behavior  
<br>44063:  Clipboard of GTK on KDE : Eclipse crash  
<br>44943:  TableCursor color set incorrectly  
<br>50522:  [interop] Components in SWT_AWT don't show in Workbench.  
<br>50907:  JPEG loader fails to load image  
<br>51081:  Tracker flickers when using setRectangles to hold it in place  
<br>51325:  SWT_AWT:The color depth of the display changed cause NullPointerException  
<br>51372:  [browser] certain event strings contain an extra null char
</blockquote>

<h2> SWT Build 3.0 037 - Tuesday February 3, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
50639:  Deadlock creating image outside UI thread  
<br>50718:  get doc title from Browser  
<br>50130:  gtk and motif don't compile against CLDC  
<br>50778:  Java doc problems  
<br>50547:  MessageBox locks out application  
<br>50520:  RCP: Need ability to set close button per item on CTabFolder  
<br>50709:  Right Aligned Table Column Headers do not appear until after a resize  
<br>49828:  [browser] Browser control does not always send completed progress event  
<br>48899:  [browser] browser plugin not included into the eclipse example zip file  
<br>50991:  [browser] mozilla - must support older version mozilla 1.4  
<br>50777:  [browser] mozilla dependencies on unfrozen api  
</blockquote>

<h2> SWT Build 3.0 036d - Tuesday January 27, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Browser.backEnabled() added
<br>Browser.forwardEnabled() added 
<br>Browser.addTitleListener(TitleListener) added 
<br>Browser.removeTitleListener(TitleListener) added 
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
46225:  3.0M4 doesn't work with gtk2.3.0  
<br>50301:  Characters typed are displayed backwards.  
<br>50518:  CLabel should support a vertical gradient
<br>49971:  NPE when closing workbench  
<br>50377:  Swt MANIFEST.MF not adjusted to repackaging of SWT_AWT.  
<br>50256:  Text#getCaretLocation() sends erroneous Modify event  
<br>45419:  [browser] add api to read html from memory on Photon Browser  
<br>47936:  [browser] Back/Next event support in WebBrowser  
<br>48809:  [browser] breaking change - rename LocationEvent.cancel to LocationEvent.doit and reverse boolean meaning  
<br>50405:  [browser] Linux: switch to Mozilla 1.6  
<br>50437:  [browser] send title event  
<br>50034:  [interop] swing mouse events not received in RCP plugin  
<br>50483:  [interop] swt SWT_AWT & ui ViewPart  
</blockquote>

<h2> SWT Build 3.0 036 - Tuesday January 20, 2004 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Display.getIconSizes() added
<br>Display.getCursorSizes() added 
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
50153: API - Breaking change - replace Display.getCursorSize with Display.getCursorSizes  
<br>50161: NEW API - Display.getIconSizes
<br>49942: NPE in StyledText.getSelectionRange (line 4275)
<br>48653: NPE in StyledText.performPaint (line 6084)
</blockquote>

<h2> SWT Build 3.0 035 - Tuesday January 13, 2004 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote> 
46800:  Arrow button doesn't receive focus  
<br>49154:  Combo behavior not very user-friendly   
<br>49534:  Javadoc of 'Control' should mention 'Traverse' event  
<br>32828:  Loss of the modal context  
<br>49471:  M6 image leak   
<br>47279:  OS.ExpandEnvironmentStrings crashes on zero-length string  
<br>49502:  Snippet 90 miss class specification  
<br>49503:  Snippet 98 missing import statements  
<br>49723:  StyledText is leaking StyleRange objects again  
<br>49401:  SWT M6 outdated Manifest File prevents use of SWT_AWT from within Eclipse  
<br>49381:  SWT.RIGHT does not work in Text  
<br>49488:  swt_awt.c and swt_awt.rc files not in source bundle  
<br>45149:  The position of IME input field is wrong.  
</blockquote>

<h2> SWT Build 3.0 034 - Monday December 15, 2003 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
39606:  JAWS 4.5 not reading tabs    
<br>48263: EC: gtk allows TabItem.setControl(...) value to be non-child of TabFolder.    
<br>48343:  DCR: Provide means to get preferred cursor size
<br>47928:  overly stringent bounds tests in Text.getText
<br>48233:  [KeyBindings] shortcut Command+Space not working
<br>22228:  [Workbench] program icon in ALT+TAB window looks ugly
<br>48271:  EC: Control.setVisible doesn't do isDisposed() check
</blockquote>

<h2> SWT Build 3.0 033 - Tuesday December 9, 2003 </h2>

<h3><a NAME="Breaking Changes"></a>Breaking Changes</h3>
<blockquote>
<code>Slider.setThumb(int), Slider.setValues(...), ScrollBar.setThumb(int)</code> and
<code>ScrollBar.setValues(...)</code> now clamps the passed thumb value if it exceeds
the receiver's range.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
48036:  [browser] crash on IE when using javascript to close more...
<br>48022:  3 mouse clicks cause 4 mouseDown events
<br>47894:  Combo layout problems
<br>47916:  [browser] crash on IE when setting text multiple time wit...
<br>47885:  [browser] provide a resize event
<br>48168:  [browser] breaking change - changing names of WindowEvents
<br>45989:  Slider/Scrollbar API doc
<br>47898:  StyledText leaking StyleRanges
<br>47190:  Documentation missing
<br>48297:  [browser] investigate support for Mozilla Firebird
</blockquote>

<h2> SWT Build 3.0 032 - Tuesday December 2, 2003 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
org.eclipse.swt.awt.SWT_AWT class added for Windows, GTK and Motif - the class is not internal anymore
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
33687:  Combo widget does not size itself to handle largest entry
<br>47170:  cheese when resize with focus ring
<br>47557:  No images returned by Program.getImageData()
<br>47245:  setEditable() method for Combo or CCombo
<br>47468:  Support "full keyboard access" mode.
<br>38149:  SHIFT + spacebar doesn't work
<br>46810:  unexpected behavior for TableItem.setBackground() when co...
<br>46641:  Browser widget: footprint and guidelines question
<br>46707:  NPE when closing eclipse.
<br>47366:  [New Look] Area not painted when tab in the background
<br>46751:  [browser] Javascript window.close() does not work in the ...
<br>46896:  CCombo setEnabled
<br>47109:  Resize buttons horizontally leaves cheese
<br>47530:  [New Look] Cheese when adding to a banner
<br>47143:  List.add() != List.getItems() if string contains '\n'
<br>34797:  API: Clipboard:isDisposed
<br>47426:  [browser] breaking change - Replace NewWindowEvent with O...
<br>29396:  Unable to get session data when using internal browser
<br>47039:  Inconsistent shutdown
<br>47391:  Combo.deselect(int) and deselectAll() doesn't work
<br>44567:  Clipboard.dispose throws NPE
</blockquote>

<h2> SWT Build 3.0 031 - Tuesday November 25, 2003 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
46848:  Circumflex accent for characters does not work
<br>46859:  Combo API doc/problems
<br>16011:  Copy not working.
<br>47146:  Group label should have same foreground/background as Group
<br>47084:  No mouseUp events for the left mouse button
<br>46068:  [browser] linux motif Browser shows up non embedded if previous instance disposed
<br>40460:  [Key Bindings] Some shortcut keys broken
</blockquote>

<h2> SWT Build 3.0 030 - Tuesday November 18, 2003 </h2>

<h3><a NAME="Breaking Changes"></a>Breaking Changes</h3>
<blockquote>
<ul>
<li><code>DirectoryDialog.setMessage(String string)</code> now throws an <code>IllegalArgumentException</code> if
<code>string</code> is <code>null</code>
<li><code>MessageBox.setMessage(String string)</code> now throws an <code>IllegalArgumentException</code> if
<code>string</code> is <code>null</code>
<li><code>Text.getText(int start, int end)</code> now throws an <code>IllegalArgumentException</code> if
<code>start</code> is negative, if <code>end</code> is equal to or greater than the length of
the receiver's text, or if <code>start</code> is greater than <code>end</code>.
</ul>
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
34128:  classpath incomplete  
<br>46688:  eclipse 3.0M4 left out a char symbol behind
<br>46722:  Crash on open of any java source  
<br>38981:  Decorations.getMaximized() always returns false  
<br>46582:  gtk setSelection(*) does not set focus properly  
<br>22010:  GTK: Combo.setForeground() and Combo.setFont() dont change the drop-down list  
<br>46702:  List.getFocusIndex() does not answer -1  
<br>46500:  MessageBox.setMessage(null) has to be spec'd  
<br>45787:  Panther: intitial Textfield contents only partially visible  
<br>46419:  Text.getText(int,int) needs to spec behaviour for invalid range 
<br>42408:  [browser] Javascript window.open() does not work in the Browser widget  
<br>23084:  [StyledText Motif 2.0.1] Cursor disappears while moving by words (forwards/backwards)  
<br>36010:  [View Mgmt] View menu "Move" and "Size" commands have no effect.  
</blockquote>

<h2> SWT Build 3.0 029 - Tuesday November 11, 2003 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
GC.drawPoint(int x, int y) added
<br><code>DragDetect</code> event objects now have their <code>x</code> and <code>y</code> fields
set to the control-relative x and y coordinates of the drag start
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>
46354:  add to javadoc for List.remove(int start, int end)  
<br>42426:  Backport BiDi Mirroring Fixes from 3.0 and 2.1.x  
<br>46029:  bad alignment in Import plugins wizard  
<br>32772:  Cannot hold down stepping keys on OSX  
<br>44390:  column separator disappeares after resizing the first column to zero width  
<br>46306:  ControlExample: multiple Select Listeners dialogs is confusing  
<br>33637:  DCR - no printing on Mac [was Print on OSX 10.2.4]  
<br>43251:  DragDetect event should have x and y coordinates  
<br>28684:  Drop-Down arrows hard to hit  
<br>21075:  Import to filesystem can only browse when empty  
<br>45877:  many German strings are not displayed  
<br>38521:  Mouse events delivered to wrong Control  
<br>45946:  Need an efficient GC.setPixel( x,y ) method.  
<br>41465:  Panther: ToolItem(DROP_DOWN) arrow has wrong background  
<br>45453:  pocketpc - Pop-Up menus do not work on Tables  
<br>45422:  Pull-down menu only shows up on mouse-up, rather than mouse down  
<br>43108:  StyledText - Scrollwheel event interferes with last caret placement  
<br>46368:  Table array exception when removing invalid lower range  
<br>46037:  text editor - <home> positions editor in first page  
<br>45789:  Toolbar dropdown items don't fire immediately  
<br>45940:  Votes on closed bugs?  
<br>46028:  [browser] IE browser still shows default popup menu  
<br>45997:  [browser] support and require Mozilla 1.5  
<br>46147:  [browser] SWT accelerators get overriden by IE  
<br>44919:  [KeyBindings] dialog keyboard shortcuts gone  
<br>45362:  [KeyBindings] French Keyboard issue with 0 key (SHIFT + ???)  
<br>37740:  [KeyBindings] Text tool item on the Viewpart Title takes menu's accelerator key  
</blockquote>

<h2> SWT Build 3.0 028 - Tuesday November 4, 2003 </h2>

<h3><a NAME="Breaking Changes"></a>Breaking Changes</h3>
<blockquote>
<code>FileDialog.getFileNames()</code> now returns an empty <code>String</code> array instead of <code>null</code>
when there are no file names to answer.
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>   
36083: NPE in Cursor.dispose
<br>5096: FileDialog doesn't allow to set file name
<br>22785: FileDialog: File paths incorrect
<br>26771: motif test case failures
<br>26913: All platforms should clear mouse capture when modal dialog is opened
<br>34408: Shift Tab does not work in java editor
<br>44878: StyledText - Arrow_Down in text editor doesn't retain column when it scrolls
<br>45323: Error occurred using F3 to open class
<br>45628: cannot traverse to ToolBar items
<br>45800: Tracker (RESIZE) with multiple Rectangles losing precision
<br>45834: FileDialog API spec problems
<br>8507: SWTError thrown instead of SWTException
<br>11663: unnecessary focus events on linux-motif
<br>24319: Key events don't send to code completion dialog
<br>25494: Mnemonic keys in editor menu don't work on gtk.
<br>26101: Strange behaviour in VerifyListener under GTK
<br>26170: SWT widget org.eclipse.swt.widgets.Label does not properly display its text under Linux Gtk when given a SWT.WRAP style.
<br>35811: Resize workbench shell causes fastview z-order cheese
<br>36153: No F1 help in Java editor
<br>37510: Shift + F10 does not work in GEF on Linux
<br>43683: [SWT] request function keys F13, F14, and F15 be supported
<br>45457: [ViewMgmt] View contents rendered on top of fast view
<br>45552: Crash when viewing MicroAnalyzer trace on Linux
<br>21035: [Key Bindings] Ability to map keypad key events
<br>24178: (BBAWT) Certain keys do not generate KeyEvents
<br>43871: Ctrl+Break is interpreted as Ctrl+C Ctrl+C
<br>45640: PENs are being leaked during painting
<br>4622: DCR: No auto tab select on first tab created (1GCEDI4)
<br>31107: CTabFolder and CCombo - too many sheels from tooltip shell
<br>33934: CTabFolder's closeImage invisible in High Contrast mode
<br>33945: CTabFolder tooltips overlap cursor
<br>38805: Switching perspectives on Linux GTK seems to be slow due to large number of toolbar creations
<br>42278: CTabFolder throws exception when closing a tab
</blockquote> 

<h2> SWT Build 3.0 027 - Tuesday October 28, 2003 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>   
45267:  BIDI: Mirrored text appears on every editor  
<br>38585:  ControlExample - Checkbox Tree preferred size a tad too small  
<br>35494:  ControlExample - Table preferred size does not adjust width  
<br>22287:  Crash when calling SWT Combo.setText()  
<br>41420:  Deleting the first column of a Table may throw an exception  
<br>45439:  Double clicking the left upper corner of the nested Decoration closes the parent Shell  
<br>45341:  FileDialog crashes VM on invalid drive  
<br>34362:  GB18030-Motif: Crash when typing CN in the JavaEditor  
<br>43500:  InvalidThreadAccess when running a subset of JUnit tests  
<br>45306:  Mouse events lost in shell launched from secondary application modal shell  
<br>45337:  pocketpc - can't show popup menu in Tree  
<br>41060:  preferences dialog and editing paste functions wedged  
<br>42367:  StyledText - StringIndexOutOfBoundsException in StyledTextRenderer  
<br>44474:  StyledText does not handle case where printing not supported  
<br>44050:  SWT.BORDER Text should display thin black border on PocketPC  
</blockquote> 

<h2> SWT Build 3.0 026 - Wednesday October 21, 2003 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>   
44896: 2 junit tests have been intermittently failing in nightly build  
<br>43811: 3.0M3 fails startup  
<br>42410: A way to check if SWT Browser is implemented and working is needed.  
<br>44174: Eclipse crashes using SWT Designer plugin 
<br>44232: ImageData constructor should thrown IllegalArgumentException for scanlinePad == 0  
<br>44832: Opening a PRIMARY_MODAL dialog on top on another PRIMARY_MODAL dialog shoud not enable the parent of the first.  
<br>44301: SashForm - Sashes have no borders  
<br>45145: Second window comes to front when using first  
<br>40873: Splash Screen Has Wrong Colors on Linux  
<br>42947: StyledText - redraw problem on last line with word wrap   
<br>43837: [browser] Browser - linux can't dispose a browser and open a new one  
<br>45122: [browser] Mozilla browser forward() back() always return true  
<br>45118: [browser] mozilla browser throws exception after reload in some cases  
<br>39106: [DBCS] Cannot input Japanese characters into Text widget with GTK+2, kinput2 and canna  
</blockquote> 

<h2> SWT Build 3.0 025 - Wednesday October 15, 2003 </h2>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
TabFolder style bits SWT.TOP and SWT.BOTTOM added
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>   
44212: FocusEvents/KeyEvents from Scale not delivered  
<br>43729: GC.drawText() does not work on large images  
<br>44508: GC.getCharWidth JUnit test failure on Win98  
<br>44600: gnome Program does not return icon  
<br>44476: GP on shutdown  
<br>44223: Group widget doesn't pass focus when pressing mnemonic  
<br>44607: Gtk critical warning when running swt app  
<br>44372: NPE on hitting Esc to dismiss inline table edit  
<br>44516: Remove println's from FontData JUnit test  
<br>43878: SWT HTML Widget / Browser embedding problem on Linux  
<br>22983: Table.showItem() ignored before bounds are set  
<br>44778: TableItem.getImage periodically throws ArrayOutOfBoundsException  
<br>43281: Text field throws StackOverflowError when full  
<br>44509: Text.setTextLimit JUnit test failure on Win98   
</blockquote> 


<h2> SWT Build 3.0 024 - Tuesday October 7, 2003 </h2>

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

<p>Methods <code>ImageLoader.addImageLoaderListener(ImageLoaderListener)</code> and
<code>ImageLoader.removeImageLoaderListener(ImageLoaderListener)</code> now throw an SWT Error
if <code>null</code> is passed as the argument.
</p>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Region.add(int[] polygon) added
<br>Region.subtract(int[] polygon) added
<br>Shell.getRegion() added
<br>Shell.setRegion(Region) added
<br>ACC.TEXT_INSERT added
<br>ACC.TEXT_DELETE added
<br>Accessible.addAccessibleTextListener(AccessibleTextListener) added
<br>Accessible.removeAccessibleTextListener(AccessibleTextListener listener) added
<br>Accessible.selectionChange() added
<br>Accessible.textCaretMoved(int) added
<br>Accessible.textChanged(int,int,int) added
<br>Accessible.textSelectionChanged() added
<br>org.eclipse.swt.accessibility.AccessibleTextAdapter added
<br>org.eclipse.swt.accessibility.AccessibleTextEvent added
<br>org.eclipse.swt.accessibility.AccessibleTextListener added
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>  
44161:  addImageLoadListener should check for null 
<br>43971:  Double clicking no longer works  
<br>42559:  Eclipse 3.0 M3 - can't start Eclipse from the command line  
<br>43706:  Palette desc saying 'no items for this editor' doesnt wrap on linux  
<br>40940:  Printing disabled in Solaris  
<br>43918:  Some mouse clicks don't work  
<br>44164:  update needed in javadoc for constructor Image(Device , ImageData)  
<br>44165:  update needed in javadoc for constructors ImageData specifying colorDepth  
</blockquote> 


<h2> SWT Build 3.0 023 - Tuesday September 30, 2003 </h2>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>  
43610:  'Shift+Alt+' gives 0x00 as key code and character  
<br>43538:  Ctrl+Space gives two key down events  
<br>42225:  Can't assign command to Ctrl+Backspace  
<br>43597:  [SWT] Text.setText(..) can change font inappropriately on Mac OSX  
<br>43599:  [KeyBindings] accelerators on Mac OS X 'application menu' should not always be active  
<br>34790:  Search view doesn't reposition scrollbar  
<br>38757:  BIDI - on a 102 keyboard, English Layer, there is a key conflict  
<br>40085:  Cursor key scrolling in code assist table doesn't update scrollbars 
<br>43311:  KeyReleased event is not fired when the '4' key is released on spanish keyboards  
<br>43394:  ImageAnalyzer example failed to read PNG file.  
<br>43576:  "Alt+Space" traversal cannot be blocked  
<br>43613:  Integrate isComplete() work and merge with patches  
<br>43667:  New Synch View layout  
<br>43757:  Table answers its Header as a child  
<br>43778:  Browser - mozilla GTK into Motif appears in top level window  
<br>43779:  Browser - mozilla GTK into Motif gets hidden by shell proxy focus  
<br>43780:  Implement Browser on Linux Motif  
<br>43177:  Text.setText() triggers two ModifyEvents  
<br>43808:  StyledText deletes too many characters in some situations  
<br>43094:  Provide a how-to on running SWT snippets  
</blockquote> 


<h2> SWT Build 3.0 022 - Tuesday September 23, 2003 </h2>

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

<p>The Event.keyCode field now contains the unaffected keycode value.  For example,
when the user types Ctrl+Shift+'a', the keyCode field contains 'a'.  The character
field is unaffected and contains the same value as before (0x01).
</p>

<h3><a NAME="New APIs"></a>New APIs</h3>
<blockquote>
Combo.getOrientation() added
<br>Combo.setOrientation(int) added
<br>StyledText.getOrientation() added
<br>StyledText.setOrientation(int) added
<br>Text.getOrientation() added
<br>Text.setOrientation(int) added
</blockquote>

<h3><a NAME="Problem reports fixed"></a>Problem reports fixed</h3>
<blockquote>  
38094:  [Enter] key doesn't work in text editors  
<br>30273:  [Key Bindings] DBCS: "F1" funtion key does NOT work on Linux_GTK.  
<br>15538:  Label requires border to draw correctly  
<br>21555:  View menu remains open on GTK  
<br>33198:  [Wizards] Error message in Wizard clipped  
<br>37608:  [Bidi] StyledText - support dynamic changing of orientation  
<br>42467:  Photon - implement the SWT browser widget  
<br>43125:  Bidi: DCR setOrientation API for Text and Combo widget  
<br>43262:  XmTextPaste native declares jboolean return, does not do so  
</blockquote> 

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