<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="copyright" content="Copyright (c) Eclipse contributors and others 2017. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="STYLESHEET" href="news.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Project Oxygen - New and Noteworthy</title>
</head>

<body>
<h2>Platform and Equinox</h2>

<ul>
	<li><a href="#Editor">Editors</a></li>
	<li><a href="#Debug">Debug</a></li>
	<li><a href="#ViewsAndDialogs">Views, Dialogs and Toolbar</a></li>
	<li><a href="#Preferences">Preferences</a></li>
	<li><a href="#StylingThemes">Themes and Styling </a></li>
	<li><a href="#GeneralUpdates">General Updates</a></li>
</ul>

<table class="news">
<colgroup>
  <col class="title" />
  <col />
</colgroup>
<tbody>

  <!-- ******************* Editors ************************************* -->
  <tr>
    <td id="Editor" class="section" colspan="2">
    <h2>Editors </h2>
    </td>
  </tr>

  <tr id="generic-editor">
    <td class="title">An easily-extensible Generic Text Editor added</td>
    <td class="content">
        A new extensible <b>Generic Editor</b> has been added which makes it easier 
        to implement an editor for new languages or new content types. It reuses 
        the existing Eclipse editor infrastructure. The generic editor can be extended using 
        extension points instead of implementing an editor to supply required functionality.
        <p>
         Examples of some eclipse projects that have adopted the generic editor:
        </p>
        <ul>
         <li>
          <a href="https://projects.eclipse.org/projects/technology.lsp4e" target="_blank">Eclipse LSP4E</a>: contributes content-assist
          and hover to generic editor when a language server is available.</li>
         <li><a href="https://projects.eclipse.org/projects/technology.tm4e" target="_blank">Eclipse TM4E</a>: contributes syntax highlighting
          to the generic editor when a TextMate grammar is present.</li>
        </ul>
      </td>
    </tr>

  <tr id="patch-diff-generic-editor-extension">
    <td class="title">Generic editor can now read patch and diff files</td>
    <td class="content">
      An extension was provided to the generic editor so that it now can provide syntax highlighting for files with the <b>.patch</b>
      or <b>.diff</b> extension. Right-click the file and choose <b>Open with > Generic Text Editor</b> to see the editor in action.
      <p>
      	<img src="images/patch-diff-editor.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="open-images-in-eclipse">
    <td class="title">Images are opened in the Eclipse IDE</td>
    <td class="content">
      Image files are now opened directly in Eclipse by default.
      The Internal Web Browser has been registered as default editor for files with the png, jpg, jpeg, gif, bmp, and ico extensions.
     <p>
        <img src="images/image-opened-in-eclipse.png" alt=""/>
     </p>
     Use <b>Open With > System Editor</b> to open files in the default external program.
    </td>
  </tr>

  <tr id="editor-selection-dialog-one-click">
    <td class="title">Editor selection dialog: Use for all</td>
    <td class="content">
      The <b>Editor Selection</b> dialog now offers a one-click option for choosing the editor that
      should open all files with the same extension in the future.
      <p>
      Example when selecting "file.xyz" and choosing <b>Open with &gt; Other...</b>:
      </p>
      <p>
        <img src="images/editor-selection-dialog-one-click-for-all-files-by-type.png" alt="Highlighted checkbox: Use it for all '*.xyz' files"/>
      </p>
    </td>
  </tr>

  <tr id="show-revision-history-in-ruler">
    <td class="title">Show Annotation renamed to Show Revision Information</td>
    <td class="content">
       For files checked out from CVS, the <b>Show Annotation</b> command in the text editor's vertical ruler and in the <b>Team</b> menu
       has been renamed to <b>Show Revision Information</b>.
       <p>
         This change has been synchronized with the Eclipse Git team provider, so future versions of EGit will use the same name.
       </p>
    </td>
  </tr>

  <tr id="configurable-left-right-in-compare-editor">
    <td class="title">Configure left and right sides in Compare editors</td>
    <td class="content">
      <b>Compare</b> editors now offer a button <b>Swap Left and Right View</b>.
      <p>
        <img src="images/compare-editor.png" alt=""/>
      </p>
      <p>
      The direction of comparison is preserved between invocations of the <b>Compare</b> editor
      and can also be changed in the <b>Compare/Patch</b> preference page.
      </p>
      <p>
        <img src="images/compare-preferences.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="ctrl-e-command-improvements">
    <td class="title">Ctrl+E command improvements</td>
    <td class="content">
        You can use the <b>Quick Switch Editor</b> (<b>Ctrl+E</b>) command to list and filter all the open editors.
        This works now also if you have selected a view in the editor area.
        You can filter the list using wildcards, and select editors using mouse or keyboard.
        <p>
        	Now you can also cycle through the list by pressing <b>Ctrl+E</b> again. Or use <b>Arrow Up/Down</b> as before.
        </p>
        <p>
        	<img src="images/ctrl-e-improvements.png" alt=""/>
        </p>
    </td>
  </tr>

  <tr id="content-assist-model-editor">
    <td class="title">Content Assist for Feature Name in Model Editor</td>
    <td class="content">
      You can now use <b>Ctrl+Space</b> to trigger content assist when selecting the <b>Feature Name</b> in the <b>Model Editor</b>.
      <p>
      	<img src="images/content-assist-model-editor.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="model-editor-improvements">
    <td class="title">Model Editor improvements</td>
    <td class="content">
      The elements proposed in the <b>Add child</b> menu are now filtered to a minimal list containing allowed elements only.
      <p>
      	<img src="images/filter-suggested-elements.png" alt="" />
      </p>
    </td>
  </tr>

  <!-- ******************* Debug ************************************* -->
  <tr>
    <td id="Debug" class="section" colspan="2">
    <h2>Debug </h2>
    </td>
  </tr>

  <tr id="launch-groups">
    <td class="title">"Launch Group" launch configuration type</td>
    <td class="content">
      The new <b>Launch Group</b> launch configuration type allows you to launch multiple other launch configurations
      sequentially, with configurable actions after launching each group member:
      <ul>
      	<li>None: Continue launching the next member right away</li>
      	<li>Wait until terminated: Continue launching the next member only after this member has terminated</li>
      	<li>Delay: Delay launching the next member for a given amount of seconds.</li>
      	<li>Wait for console output (regexp):  Allows to delay further
      	     processing of launch group elements until a certain output (matching a regular expression)
      	     appears on the console of the given group element.</li>
      	<li>Adopt launch if already running: Allows to control the behaviour of the group when
      	      the launch configuration referenced by the launch group element is already running
      	      (no matter who launched it). If checked, the launch configuration will not be launched
      	      again if it is running already. The existing launch will be adopted by the group (i.e.
      	      terminating the group will also terminate this launch). Any configured post launch
      	      action will still be executed!</li>      
      </ul>
      Note that this is similar to the launch group in CDT, but with additional features.
      <p>
        New launch groups can be created via the <b>Run > Run Configurations...</b> or <b>Run > Debug Configurations...</b> dialogs.<br/>
        <img src="images/launch-groups.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="terminate-relaunch-history">
    <td class="title">"Terminate and Relaunch" from Run menu, context menu and tool bar</td>
    <td class="content">
      A <b>Terminate and Relaunch</b> option is now available while launching from Run menu, context menu and tool bar.
      The default setting is to launch without terminating previous launches. To enable automatic termination,
      select the option <b>Terminate and Relaunch while launching</b> on
      <b>Preferences &gt; Run/Debug &gt; Launching</b>.
      
      <p>
        The behavior not selected on the preference page can also be activated on-demand by holding
        the <b>Shift</b> key while launching the configuration from history.
      </p>
	  <p><img src="images/launch-preference-terminate-relaunch.png" alt="" /></p>
    </td>
  </tr>

  <tr id="breakpoints-sort-by">
    <td class="title">Breakpoints view: Sort By > Creation Time</td>
    <td class="content">
      In the <b>Breakpoints</b> view's view menu, a new <b>Sort By</b> option has been added.
      This allows sorting by two ways:
      <ul>
      	<li><b>Name</b>: Current default order, sorts by the displayed name</li>
      	<li><b>Creation Time</b>: Newly created breakpoints will be shown on top</li>
      </ul>
      <p>
        <img src="images/breakpoints-sort-by.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="breakpoint-overview-ruler">
    <td class="title">Breakpoints in Overview Ruler</td>
    <td class="content">
      <b>Breakpoints</b> are now visible in the <b>Overview Ruler</b> by default.
	  <p><img src="images/breakpoint-overview-ruler.png" alt="" /></p>
	  To configure the rendering of annotations, right-click the overview ruler and choose <b>Preferences...</b>.
	  This directly opens the preference page <b>General &gt; Editors &gt; Text Editors &gt; Annotations</b>.
    </td>
  </tr>

  <!-- ******************* Views, Dialogs and Toolbar ************************************* -->
  <tr>
    <td id="ViewsAndDialogs" class="section" colspan="2">
    <h2>Views, Dialogs and Toolbar </h2>
    </td>
  </tr>

  <tr id="quick-access-string-matching">
    <td class="title">Improved string matching in Quick Access</td>
    <td class="content">
      You can now search for partial descriptions in <b>Quick Access</b> (<b>Ctrl+3</b>).
      The search result matches space-separated words in the search string.
      For example, searching for "clone repo",
      will match the "Clone a Git Repository" command.
      <p>
        <img src="images/quick-access-better-string-matching.png" alt=""/>
      </p>
      The improved string matching works also in case of parenthesis,
      or when the search string matches the category name.
      <p>
        <img src="images/quick-access-better-string-matching-extended.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="wildcards-in-quickaccess">
    <td class="title">Wildcards in Quick Access</td>
    <td class="content">
      You can now use <b>*</b> and <b>?</b> as wildcards to filter <b>Quick Access</b> (<b>Ctrl+3</b>) items.
      The match ranges are displayed in bold.
      <p>
        <img src="images/quick-access-wildcard-filter.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="quick-access-search-in-help">
    <td class="title">Quick Access search text in Help</td>
    <td class="content">
      You can now <b>Search in Help</b> after you've entered text in the <b>Quick Access</b> dialog.
      The option is shown when the filter text is longer than three characters,
      and it is always added at the end of the results.
      <p>
      <b>Search in Help</b> using the new Quick Access dialog:
      </p>
      <p>
        <img src="images/quick-access-search-in-help.png" alt=""/>
      </p>
      <p>
      <b>Search in Help</b> using the standalone dialog:
      </p>
      <p>
        <img src="images/quick-access-search-in-help-standalone.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="quick-access-filter-previous-choices">
    <td class="title">Filter previous choices in Quick Access</td>
    <td class="content">
      The <b>Quick Access</b> (<b>Ctrl+3</b>) result list does not show duplicate elements anymore.
      Now, if a search result element is already in the "Previous Choices" category,
      it is no longer shown in another category.
      <p>
        <img src="images/quick-access-filter-previous-choices.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="quick-access-icons">
    <td class="title">Command icons shown in Quick Access</td>
    <td class="content">
      <b>Quick Access</b> (<b>Ctrl+3</b>) now shows the icon for a <b>Command</b> if available.
      Otherwise, it still shows the default blue ball.

      <p>
        <img src="images/command-image-visible-in-quick-access.png" alt=""/>
      </p>
    </td>
  </tr>
  
  <tr id="hide-show-status-bar">
    <td class="title">Show/hide Status Bar</td>
    <td class="content">
      You can now hide and show the bottom status bar via menu:
      <b>Window</b> &gt; <b>Appearance</b> &gt; <b>Hide (Show) Status Bar</b>.
      <p>
      	<img src="images/toggle-status-bar-from-menu.png" alt="" />
      </p>
      In Quick Access, the command is called <b>Toggle Statusbar</b>.
    </td>
  </tr>

  <tr id="GTK-tree-key-bindings">
    <td class="title">GTK tree collapse/expand key bindings</td>
    <td class="content">
      On GTK+ 3.6 and later, the <b>Left</b> and <b>Right arrow</b> keys now collapse and expand
      the current tree item (in addition to the GTK+ default <b>-</b>/<b>+</b> key bindings).
    </td>
  </tr>
  
  <tr id="simplified-bookmark-task-problems-filter-dialog">
    <td class="title">Simplified filters dialog for Problems, Bookmarks, and Tasks views</td>
    <td class="content">
      The <b>Filters</b> dialog of the Problems, Bookmarks, and Tasks views has been simplified.
      If you select several configurations, items matching any of these configurations will be shown.
      <p>
      Old dialog in Problems view:
      </p>
      <p>
        <img src="images/old-problems-filter.png" alt=""/>
      </p>
      <p>
      New dialog in Problems view:
      </p>
      <p>
        <img src="images/new-problems-filter.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="problems-and-tasks-copy-details-submenu">
    <td class="title">Copy Details submenu for Problems and Tasks views</td>
    <td class="content">
       You can copy the description or the resource qualified name of an error, warning, or task into the clipboard using commands in the <b>Copy Details</b> context menu.
      <p>
        <img src="images/problems-and-tasks-copy-details-submenu.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="improved-visiblity-of-filter-dialog">
    <td class="title">Filter dialog for Problems, Bookmarks, and Tasks views easier to reach</td>
    <td class="content">
	    The <b>Filters</b> dialog is now accessible from the toolbar of the Problems, Bookmarks, and Tasks views.
      <p>
      Previously, it was only accessible via view menu &gt; <b>Configure Contents...</b>:
      </p>
      <p>
        <img src="images/old-filter-location.png" alt=""/>
      </p>
      <p>
      Now also as a toolbar button:
      </p>
      <p>
        <img src="images/new-filter-location.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="copy-build-id-information-in-about-dialog">
    <td class="title">"Copy Build Id Information" in About dialog</td>
    <td class="content">
      In the <b>About</b> dialog, you can use the context menu to copy
      information about your Eclipse installation.
      <p>
        <img src="images/about-dialog-get-build-information.png" alt=""/>
      </p>
      The <b>Copy Build Id Information to Clipboard</b> command copies
      the product name, version, build id, OS, windowing system, and additional
      OS-specific info like the GTK or WebKit versions.
      <p>
        The command can also be invoked via Quick Access <b>Quick Access</b> (<b>Ctrl+3</b>).
      </p>
    </td>
  </tr>

  <tr id="filters-from-project-explorer-view-menu">
    <td class="title">'Filters and Customization...' in Project Explorer</td>
    <td class="content">
      The <b>Customize View...</b> command in the <b>Project Explorer</b>'s view menu has been
      renamed to <b>Filters and Customization...</b>
      <p>
        <img src="images/filters-and-customization-menu-item.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="project-explorer-recent-filters">
    <td class="title">"Recently used filters" feature in Project Explorer</td>
    <td class="content">
    	The <b>Project Explorer</b> view now has a <b>Recent Filters</b> menu that shows the most recently used filters.
      	<p>
        	<img src="images/recent-filters-project-explorer.png" alt=""/>
      	</p>
    </td>
  </tr>

  <tr id="project-explorer-others-working-set">
    <td class="title">"Other Projects" working set in Project Explorer</td>
    <td class="content">
      If you're using the <b>Project Explorer</b> and working sets as top-level elements, the <b>Top Level Elements</b> view
      menu now provides a way to show an <b>Other Projects</b> group for projects that are not in one of the currently active working sets.
      	<p>
        	<img src="images/other-projects-ws.png" alt=""/>
      	</p>
    </td>
  </tr>

  <tr id="open-perspective-dialog-description">
    <td class="title">Perspective descriptions in Open Perspective dialog</td>
    <td class="content">
      You can now see the description for a perspective (if provided by the contributing plug-in) by pressing <b>F2</b> in the <b>Open Perspective</b> dialog.
      <p>
        <img src="images/open-perspective-dialog-description.png" alt=""/>
      </p>
    </td>
  </tr>
  
  <tr id="maximize-and-minimize-window-appearance">
    <td class="title">Maximize and Minimize via Window &gt; Appearance menu</td>
    <td class="content">
      The <b>Maximize</b> and <b>Minimize Active View or Editor</b> menu items have been moved to
      the <b>Window &gt; Appearance</b> menu. They used to be in the <b>Window &gt; Navigate</b> menu.
    </td>
  </tr>

  <tr id="switch-workspace-and-restart-menu-items">
    <td class="title">'Switch Workspace' and 'Restart' menu items</td>
    <td class="content">
      The <b>Switch Workspace</b> and <b>Restart</b> menu items are now at the bottom of the <b>File</b> menu:
      just above the <b>Exit</b> item on Windows and Linux, and as last menu items on the Mac.

      <p>
        <img src="images/switch-workspace-restart-menu-items.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="improved-exit-and-restart-dialog">
    <td class="title">Improved exit and restart dialogs</td>
    <td class="content">
      The exit and restart dialogs now use verbs instead of OK/No/Yes, which makes the dialogs more direct and specific.
      <p>
      	<img src="images/confirm-exit-dialog-small.png" alt="" />
      </p>
      <p>
      	<img src="images/p2-restart-dialog-small.png" alt="" />
      </p>
    </td>
  </tr>

  <tr id="removed-installation-details-menu-entry">
    <td class="title">Installation Details menu entry removed</td>
    <td class="content">
      The <b>Help &gt; Installation Details</b> menu entry has been removed.
      You can access this dialog via <b>Help &gt; About &gt; Installation Details</b> or
      via <b>Quick Access</b> (<b>Ctrl+3</b>) and then typing "Installation Details".
    </td>
  </tr>

  <tr id="list-dnd-effect">
    <td class="title">DnD source image for List widget (GTK only)</td>
    <td class="content">
    When items are being dragged from a <code>List</code> widget, their content now moves with the mouse cursor.
    <p>
        <img src="images/listdnd.png" alt="" />
    </p>
    </td>
  </tr>

  <!-- ****************** Preferences ************************************* -->
  <tr>
    <td id="Preferences" class="section" colspan="2">
    <h2>Preferences </h2>
    </td>
  </tr>
  
  <tr id="window-title">
    <td class="title">Window title configuration</td>
    <td class="content">
      The title window is now simpler and you can configure it from Preferences.
	  By default the title displays <b>workspace name</b>, <b>editor path</b> and <b>product name</b>.
	  <p>
        <img src="images/simplified-window-title.png" alt=""/>
      </p>
      <p>
	  You can now use <b>Preferences &gt; Workspace</b> to choose what to display in the window title:
	  <b>workspace name</b>, <b>perspective name</b>, <b>workspace path</b>, and <b>product name</b>.
      </p>
      <p>
        <img src="images/improved-window-title.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="copy-preferences-during-ws-switch">
    <td class="title">Option to copy your preferences during workspace switch</td>
    <td class="content">
    You can now copy your preferences during a switch to a new or existing workspace.
    <p>
        <img src="images/copy-preferences-ws-switch.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="preference-for-problems-decorations-on-startup">
    <td class="title">Option to disable Problems view decoration on startup</td>
    <td class="content">
    By default, the <b>Problems</b> view icon no longer shows an errors/warnings overlay after startup,
    unless the Problems view is on top of the view stack.
    To enable the errors/warnings overlay also if the Problems view is minimized or not on top,
    a new <b>Show Problems view decorations on startup</b> option has been added to
    <b>Preferences &gt; General &gt; Startup and Shutdown</b>.
    By default, this preference is disabled.
    <p>
        <img src="images/problems-view-startup-preference.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="always-run-in-background">
    <td class="title">"Always run in background" enabled by default</td>
    <td class="content">
 		The <b>Always run in background</b> preference is now enabled by default.
 		If you prefer to see a progress dialog for long-running operations, you
 		can disable this option on the <b>General</b> preference page.
    </td>
  </tr>

  <tr id="browsers-linux-update">
    <td class="title">External browsers on Linux</td>
    <td class="content">
      On Linux, the list of recognized external browsers has been updated to include:
      
      <ul>
      <li><b>Firefox</b> (/usr/bin/firefox)</li>
      <li><b>Chrome</b> (/usr/bin/google-chrome)</li>
      <li><b>Chromium</b> (/usr/bin/chromium-browser)</li>
      <li><b>Epiphany/Gnome Web</b> (/usr/bin/epiphany)</li>
      <li><b>Konqueror</b> (/usr/bin/konqueror)</li>
      </ul>
      <p>
        <img src="images/browsers-linux-update.png" alt=""/>
      </p>
    </td>
  </tr>

  <!-- ******************* Themes and Styling ************************************* -->
  <tr>
    <td id="StylingThemes" class="section" colspan="2">
    <h2>Themes and Styling </h2>
    </td>
  </tr>
  
  <tr id="flat-gray-forms-based-styling">
    <td class="title">New default styling for form-based user interfaces</td>
    <td class="content">
      The default styling for form-based user interfaces was changed to use a flat, gray style.
      This change was inspired by the popular "Clean Sheet" plug-in.
      Below you see screenshots of the MANIFEST.MF editor and the Git Staging view in this new design.
      <p>
        <img src="images/forms-grey-styling1.png" alt=""/>
      </p>
      <p>
        <img src="images/forms-grey-styling2.png" alt=""/>
      </p>

    </td>
  </tr>

  <tr id="dark-styling-pseudo-attributes">
    <td class="title">Support for extending existing CSS preference nodes</td>
    <td class="content">
      CSS definitions for preferences can now use pseudo selectors.
      This allows that other plug-ins extend preference CSS nodes, instead of overriding them.
      This makes the default Eclipse dark theme much more consistent and usable.

      <p>
      Example styling with EGit installed before this development:
      </p>
      <p>
        <img src="images/code-completion-dark-theme-old.png" alt=""/>
      </p>
       <p>
        <img src="images/old-search-result-hightlight-color.png" alt=""/>
      </p>
      <p>
        Example styling with EGit installed after this development:
      </p>
      <p>
        <img src="images/code-completion-dark-theme-new.png" alt=""/>
      </p>
      <p>
        <img src="images/new-search-result-hightlight-color.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="default-dark-styling-table-headers">
    <td class="title">Default styling for table and tree headers</td>
    <td class="content">
    The Eclipse default dark theme includes styling for the table and tree headers on all supported platforms.
    <p>
        <img src="images/styled_table_header_dark_theme.png" alt="" />
    </p>
    <p>
        <img src="images/styled_tree_header_dark_theme.png" alt="" />
    </p>
    </td>
  </tr>

  <tr id="colors-interactive-popups">
    <td class="title">Colors in interactive popups</td>
    <td class="content">
      Interactive popups like JDT's <b>Quick Outline</b> don't use the platform's
      tooltip colors any more, since those were sometimes hard to read.
      <p>
      Old style:
      </p>
      <p>
        <img src="images/old-popup-color-constants.png" alt=""/>
      </p>
      <p>
      New style:
      </p>
      <p>
        <img src="images/new-popup-color-constants.png" alt=""/>
      </p>
    </td>
  </tr>
  
  <tr id="heap-status-colors">
    <td class="title">Consistent heap status colors under Linux</td>
    <td class="content">
      The heap status had poor contrast on Linux since GTK3.04.
      This has been resolved for the heap status to look consistent across all platforms.
      <p>
        <img src="images/heapstatusfix.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="dark-mode-progress-bar">
    <td class="title">Fixed Progress view colors for the dark theme</td>
    <td class="content">
      The <b>Progress</b> view has been adjusted for the Eclipse dark theme.
      <p>
      Before:
      </p>
      <p>
        <img src="images/old-progress-view.png" alt=""/>
      </p>
      <p>
      After:
      </p>
      <p>
        <img src="images/new-progress-view.png" alt=""/>
      </p>
    </td>
  </tr>
  
  <tr id="toolbar-improved-default-styling">
    <td class="title">Improved default styling for the toolbar</td>
    <td class="content">
      The styling of the window toolbar has been improved. 
      On Windows, the toolbar color is now consistent with the color of the perspective switcher.
      
      <p>
        <img src="images/css-styles-windows-toolbar.png" alt=""/>
      </p>
      <p>
        On Linux and Mac, the separator line was removed, which gives you a few more pixels on Linux
        and removes a yellow line on the Mac.
      </p>
      <p>
        <img src="images/css-styles-mac-toolbar.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr id="reduced-gtk-tabs-padding">
    <td class="title">Reduced TabItems padding under GTK+</td>
    <td class="content">
      On GTK+ 3.20 and later, the padding around TabItems has been reduced.
      <p>
      <img src="images/reduced-gtk-tabs-padding.png" alt="" />
      </p>
    </td>
  </tr>
  
  <tr id="less-window-margins">
    <td class="title">Reduced window margins</td>
    <td class="content">
    	The window margins have been reduced to provide more space in the IDE.
        <p>
      	Old style:
      	</p>
      	<p>
        	<img src="images/window-margins-old.png" alt=""/>
      	</p>
      	<p>
      	New style (see the reduced space below the Quick Access box).
      	</p>
      	<p>
        	<img src="images/window-margins-new.png" alt=""/>
      	</p>
    </td>
  </tr>

  <tr id="swt-gtk-theme-property">
    <td class="title">GTK theme system property</td>
    <td class="content">
        SWT now stores the GTK theme used at launch time in a system property, <code>org.eclipse.swt.internal.gtk.theme</code>.
        This property can help with troubleshooting issues that are specific to certain themes.
        It can be viewed in <b>About &gt; Installation Details &gt; Configuration</b>.
        <!-- TODO: Fix the path ^^^^ after bug 490752 has been reverted. -->
    </td>
  </tr>

  <tr id="more-high-resolution-images">
    <td class="title">More high resolution images</td>
    <td class="content">
      More images in the old GIF format were replaced by images in the PNG format. In addition, high resolution images where added. 
      <p>As PNG can handle transparency much better than GIF, the ugly white borders around shapes visible in the dark theme are now gone for these icons.
      </p>
      <p>To see their full beauty, a high-DPI monitor (e.g. a Retina Mac) is needed.
        The lower part of the screenshot shows the wizard banner image of the <b>Import</b> dialog in high resolution.
      </p>
      <p>
        <img src="images/import-before-and-after.png" alt=""/>
      </p>
      <p>
        The right part of the screenshot shows all the icons in high resolution.
      </p>
      <p>
        <img src="images/customize-navigator-before-and-after.png" alt=""/>
      </p>
    </td>
  </tr>

  <!-- ******************* General Updates ************************************* -->
  <tr>
    <td id="GeneralUpdates" class="section" colspan="2">
    <h2>General Updates </h2>
    </td>
  </tr>

  <tr id="eclipse-as-signed-dmg">
    <td class="title">Eclipse as Apple disk image</td>
    <td class="content">
      Eclipse SDK and Eclipse Platform Runtime products are now delivered as signed Apple disk images(dmg) on Mac OSX.
      
    </td>
  </tr>

  <tr id="ant-version-upgrade">
    <td class="title">Ant 1.10.1</td>
    <td class="content">
      Eclipse has adopted Ant version 1.10.1.
    </td>
  </tr>

  <tr id="unix-platforms-dropped">
    <td class="title">Dropped support for Unix platforms</td>
    <td class="content">
	  Eclipse has dropped support for the following Unix based platforms: AIX, Solaris, HP-UX, s390, s390x and ppc32.
	  No builds are available on the eclipse.org downloads page for these platforms.
	  <p>
	  For more information, please read the <a href="https://dev.eclipse.org/mhonarc/lists/eclipse-dev/msg10207.html">announcement</a> made by the Eclipse PMC.
	  </p>
	  <p>
	  For the Photon (4.8) release, we plan to drop support for the ppc64 as well, but continue to support ppc64le.
	  </p>
    </td>
  </tr>
  
  <tr id="java-9">
    <td class="title">Java 9 previews</td>
    <td class="content">
      You have to configure Eclipse Oxygen to work with Java 9. Please read this <a href="https://wiki.eclipse.org/Configure_Eclipse_for_Java_9" target="_blank">wiki</a> for the details.
    </td>
  </tr>

</tbody>
</table>
<script type="text/javascript" src="scripts.js"></script>

  <p style="text-align:center">
    <span style="color:#808080">Previous</span> <a style="margin:1em" href=".">Up</a> <a href="jdt.php">Next</a>
  </p>

</body>
</html>
