/**
  * Calculates the proper trim for the ruler.
  *
  * @param canvas The canvas.
  * @since 3.6
  */
 public static Rectangle calculateRulerTrim(Composite canvas) {
   // IMPORTANT: As stated in bug #314750, this is a Mac Carbon related
   // workaround that is not needed on Cocoa.
   if ("carbon".equals(SWT.getPlatform())) { // $NON-NLS-1$
     Rectangle trim = canvas.computeTrim(0, 0, 0, 0);
     trim.width = 0 - trim.x * 2;
     trim.height = 0 - trim.y * 2;
     return trim;
   }
   return new Rectangle(0, 0, 0, 0);
 }
 /**
  * Calculates the proper trim. Includes scrollbars' sizes only if they're visible.
  *
  * @param canvas The canvas.
  * @since 3.6
  */
 public static Rectangle calculateEditorTrim(Composite canvas) {
   /*
    * Workaround for Bug# 87712 Calculating the trim using the clientArea.
    */
   Rectangle bounds = canvas.getBounds();
   Rectangle clientArea = canvas.getClientArea();
   Rectangle result =
       new Rectangle(0, 0, bounds.width - clientArea.width, bounds.height - clientArea.height);
   if (result.width != 0 || result.height != 0) {
     Rectangle trim = canvas.computeTrim(0, 0, 0, 0);
     result.x = result.height == 0 ? 0 : trim.x;
     result.y = result.width == 0 ? 0 : trim.y;
   }
   return result;
 }