refs bug 371116 - added overrides for setMenu() and some pertinent listener registration methods.
diff --git a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
index a953bac..871a82a 100644
--- a/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
+++ b/bundles/org.eclipse.draw2d/src/org/eclipse/draw2d/FigureCanvas.java
@@ -14,6 +14,11 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DragDetectListener;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MenuDetectListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Font;
@@ -21,12 +26,13 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Slider;
 
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
 
 /**
  * A scrolling Canvas that contains {@link Figure Figures} viewed through a
@@ -52,8 +58,12 @@
 public class FigureCanvas extends Composite {
 
 	private static final int ACCEPTED_STYLES = org.eclipse.draw2d.rap.swt.SWT.RIGHT_TO_LEFT
-			| SWT.LEFT_TO_RIGHT | SWT.V_SCROLL | SWT.H_SCROLL
-			| SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.DOUBLE_BUFFERED
+			| SWT.LEFT_TO_RIGHT
+			| SWT.V_SCROLL
+			| SWT.H_SCROLL
+			| SWT.NO_BACKGROUND
+			| SWT.NO_REDRAW_RESIZE
+			| SWT.DOUBLE_BUFFERED
 			| SWT.BORDER;
 
 	/**
@@ -264,6 +274,56 @@
 		return style;
 	}
 
+	public void addFocusListener(FocusListener listener) {
+		super.addFocusListener(listener);
+		getInnerCanvas().addFocusListener(listener);
+	}
+
+	public void addDragDetectListener(DragDetectListener listener) {
+		super.addDragDetectListener(listener);
+		getInnerCanvas().addDragDetectListener(listener);
+	}
+
+	public void addMenuDetectListener(MenuDetectListener listener) {
+		super.addMenuDetectListener(listener);
+		getInnerCanvas().addMenuDetectListener(listener);
+	}
+
+	public void addKeyListener(KeyListener listener) {
+		super.addKeyListener(listener);
+		getInnerCanvas().addKeyListener(listener);
+	}
+
+	public void addListener(int eventType, Listener listener) {
+		super.addListener(eventType, listener);
+		getInnerCanvas().addListener(eventType, listener);
+	}
+
+	public void removeFocusListener(FocusListener listener) {
+		super.removeFocusListener(listener);
+		getInnerCanvas().removeFocusListener(listener);
+	}
+
+	public void removeDragDetectListener(DragDetectListener listener) {
+		super.removeDragDetectListener(listener);
+		getInnerCanvas().removeDragDetectListener(listener);
+	}
+
+	public void removeMenuDetectListener(MenuDetectListener listener) {
+		super.removeMenuDetectListener(listener);
+		getInnerCanvas().removeMenuDetectListener(listener);
+	}
+
+	public void removeKeyListener(KeyListener listener) {
+		super.removeKeyListener(listener);
+		getInnerCanvas().removeKeyListener(listener);
+	}
+
+	public void removeListener(int eventType, Listener listener) {
+		super.removeListener(eventType, listener);
+		getInnerCanvas().removeListener(eventType, listener);
+	}
+
 	/**
 	 * @see org.eclipse.swt.widgets.Composite#computeSize(int, int, boolean)
 	 */
@@ -641,6 +701,11 @@
 		super.setFont(font);
 	}
 
+	public void setMenu(Menu menu) {
+		super.setMenu(menu);
+		getInnerCanvas().setMenu(menu);
+	}
+
 	/**
 	 * Sets the horizontal scrollbar visibility. Possible values are
 	 * {@link #AUTOMATIC}, {@link #ALWAYS}, and {@link #NEVER}.