<!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 2018, 2019. This page is made available under license. For full details see the LEGAL in the documentation book 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 4.21 - New and Noteworthy</title>
</head>

<body>
<h2>Platform and Equinox API</h2>
  <ul>
    <li><a href="#Platform">Platform Changes</a></li>
    <li><a href="#SWT">SWT Changes</a></li>
  </ul>

<!-- ****************** START OF N&N TABLE****************** -->
<table class="news">
<colgroup>
  <col class="title" />
  <col />
</colgroup>
<tbody>
  <!-- ******************** Platform ********************** -->
  <tr>
    <td id="Platform" class="section" colspan="2"><h2>Platform Changes</h2></td>
  </tr>
  <tr id="path-to-bundlepool-launcher-dir"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=573131 -->
    <td class="title">Path to bundlepool expressed using @launcher.dir</td>
    <td class="content">
      When creating a bundlepool installation of eclipse, the location of the bundlepool is expressed using the @launcher.dir varliable.
      The launcher, typically eclipse.exe, will replace the string "@launcher.dir" with the location where the launcher is located on disk at startup.
      This delayed resolution of the bundlepool location allows the bundled pool and the eclipse installations to be relocated in the file system as
      long as the internal relationship stays the same. Previously, the path to the bundlepool (expressed using the "-install" launcher option) was
      always an absolute path and produced when the installation took place.
    </td>
  </tr>
  <!-- ******************** End of Platform ********************** -->

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

  <tr id="styled-text-multi-selection"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=562676 -->
    <td class="title">StyledText API to use multiple carets or selection ranges</td>
    <td class="content">
      StyledText widget now has a new <code>setSelectionRanges(int[] ranges)</code> API which allows to pass
      an arbitraty number of selection ranges. When multiple ranges are used, the text widget will display them
      as distinct carets and selection ranges and will allow simultaneous edits at those locations.
    </td>
  </tr>
  <tr id="swt-win-dark-themed-tooltips"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=574685 -->
    <td class="title">SWT Windows now supports dark-theme tool-tips</td>
    <td class="content">
      Table, Tree, CTabFolder, ToolBar and MenuItem widgets now support dark-theme tool-tips.
      Refer below screen-shots which show combined tool-tips for various widgets.
      <img src="images/swt-win-darkthemed-tooltips.png" alt=""/>
    </td>
  </tr>
  <!-- *********************** End of SWT *********************** -->

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

  <tr id="trust-PGP"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=572816 -->
    <td class="title">Trust signers of PGP-signed artifacts</td>
    <td class="content">
      When artifacts to be installed have the <code>pgp.signatures</code> property set, additionally to the integrity check that
      are responsible of verifying the signatures are valid for the given artifact, the public key of the signers will now be
      prompted to user in the same <b>Trust</b> dialog as unknown certificates, and user will have to declare the signer
      key as trusted for installation to complete. All PGP-signed artifacts need to have at least 1 trusted signer for installation
      to complete; an artifact that has no trusted signer will block the installation.
      <p>The behavior is similar to what's already in place for artifacts signed with jarsigner. However, some convenience
      behavior such as remembering what was already trusted is not implemented yet.</p>
      <p>For extenders or users of p2's API, beware that <code>org.eclipse.equinox.p2.core.UIServices</code> now has an
      extra <code>getTrustInfo(Certificate[][] unTrustedCertificateChains, Collection&lt;PGPPublicKey> untrustedPGPKeys,
      String[] details)</code> method that should be used and implemented in place of legacy method with same name,
      but without the <code>PGPPublicKey</code> parameter.</p>
    </td>
  </tr>

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

  <tr id="splash-screen-image-formats"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=114567 -->
    <td class="title">Splash screen image format</td>
    <td class="content">
      Launcher splash screen image can be in any of the following formats: PNG, JPG, GIF and BMP.
      Transparency and animation are not supported yet.
    </td>
  </tr>
  <!-- ******************** End of Equinox ********************** -->

</tbody>
</table>
<!-- ****************** END OF N&N TABLE ****************** -->

<script type="text/javascript" src="scripts.js"></script>
  <p style="text-align:center">
    <a href="jdt.php">Previous</a> <a style="margin:1em" href=".">Up</a> <a href="pde.php">Next</a>
  </p>
</body>
</html>
