Eclipse 4.4 (Luna) - New and Noteworthy in SWT

Milestone M2

Added UI Timing API SWT has added two new events: SWT.PreEvent and SWT.PostEvent which are sent before and after all events and async runnables. These events can be used to measure the time spent on processing any events. This can be useful for detecting slow event listeners. Because of its pervasive effect on all events, this listener should be used with extreme caution. For an example of how this can be used, take a look at the Watchdog plugin in SWT examples.

Milestone M3

GTK+ 3 used by default instead of GTK+ 2 SWT and Eclipse will use the GTK+ 3 libraries by default on all Linux/Unix platforms, whenever GTK+ 3 is installed and available.

The GTK+ 3 port of SWT is still early access and you can force Eclipse to use the more stable GTK+2 port by setting the environment variable SWT_GTK3 to 0, if needed. (For example: export SWT_GTK3=0)

Added new API in StyledText to get text selection state StyledText.isTextSelected() can be used to quickly determine whether any text in the widget is selected or not.

Milestone M4

SWT requires JRE 1.5 The SWT project has moved to Java 1.5 compliance level. SWT applications will now require JRE 1.5 or higher to run.

Milestone M5

SWT Browser now supports XULRunner 24.x An SWT Browser created with style SWT.MOZILLA can now be used with the XULRunner 24.x runtime.
Added API for sleep monitoring SWT has added two new events, SWT.Sleep and SWT.Wakeup, which are sent before the Display event loop goes into sleep and after it wakes up from sleep respectively. These events can e.g. be used to monitor the duration of sleep time in SWT applications.

Milestone M6

Experimental support for WebKit2 added to the SWT Browser The SWT Browser now has preliminary support for WebKit2. To try it out, create a browser widget with style SWT.WEBKIT, and set the environment variable SWT_WEBKIT2 to 1. This is only supported with GTK+ 3.x; if GTK+ 3 is disabled the browser will fallback to WebKit1.
BIDI segments support for Combo on Windows The Combo widget now supports the same SegmentListener API as Text. This allows an application to specify segment boundaries and Unicode Control Characters to use in the segment boundaries.

Snippet332 shows how to accomplish RTL override in a Combo.

JFace clients can use BidiUtils#applyBidiProcessing(...) to set pre-defined text types.

Milestone M7

Set text direction for the StyledText widget on Windows The StyledText widget now supports setting the text direction via the setTextDirection(int) API on the Windows platform. The setTextDirection (int) and getTextDirection () APIs are also added to TextLayout (implemented only on Windows currently).
SWT applications will not be grouped together in the Windows taskbar by default SWT does not initialize the AppUserModelID (which is used by Windows for taskbar grouping) to "SWT" by default anymore. SWT applications which desire to be grouped together in the Windows taskbar should set an appropriate application name before creating the Display object as shown below:

Display.setAppName("APP_NAME"); // APP_NAME will used as AppUserModelID
Display display = new Display ();