Buggy code:
public class FastViewBar implements IWindowTrim { private ToolBarManager fastViewBar ; private Menu fastViewBarMenu ; private Menu sidesMenu ; private WorkbenchWindow window ; private MenuItem restoreItem ; private IViewReference selection ; private boolean visible = false ; private Composite control ; private GridData toolBarData ; private static final int HIDDEN_WIDTH = 5 ; private MenuItem showOn ; private Cursor moveCursor ; private MenuItem closeItem ; private MenuItem orientationItem ; private IntModel side = new IntModel ( FastViewBar . getInitialSide ( ) ) ; private IntModel currentOrientation = new IntModel ( SWT . VERTICAL ) ; private RadioMenu radioButtons ; private IViewReference selectedView ; private int lastSide ; private Label fastViewLabel ; private Label fastViewLabel2 ; private int oldLength = 0 ; private IChangeListener orientationChangeListener = new IChangeListener ( ) { public void update ( boolean changed ) { } } ; private Map viewOrientation = new HashMap ( ) ; private Listener menuListener ; public FastViewBar ( WorkbenchWindow theWindow ) { } private static int getInitialSide ( ) { } public void setOrientation ( IViewReference refToSet , int newState ) { } private WorkbenchPage getPage ( ) { } private Perspective getPerspective ( ) { } public void createControl ( Composite parent ) { } protected void createChildControls ( ) { int newSide = getSide ( ) ; int flags = ( Geometry . isHorizontal ( newSide ) ) ? SWT . HORIZONTAL : SWT . VERTICAL ; fastViewBar = new ToolBarManager ( ( ( ( SWT . FLAT ) | ( SWT . WRAP ) ) | flags ) ) ; fastViewBar . add ( new ShowFastViewContribution ( window ) ) ; menuListener = new Listener ( ) { public void handleEvent ( Event event ) { Point loc = new Point ( event . x , event . y ) ; if ( ( event . type ) == ( SWT . MenuDetect ) ) { showFastViewBarPopup ( loc ) ; } } } ; <START_BUG> CellLayout controlLayout = new CellLayout ( 0 ) . setMargins ( 0 , 3 ) . setDefaultRow ( Row . growing ( ) ) . setDefaultColumn ( Row . fixed ( ) ) . setColumn ( ( newSide == ( SWT . BOTTOM ) ? 1 : 0 ) , Row . growing ( ) ) ; <END_BUG> control . setLayout ( controlLayout ) ; if ( newSide == ( SWT . BOTTOM ) ) { fastViewLabel = createFastViewSeparator ( control ) ; } fastViewBar . createControl ( control ) ; if ( newSide == ( SWT . BOTTOM ) ) { fastViewLabel2 = createFastViewSeparator ( control ) ; } getToolBar ( ) . addListener ( MenuDetect , menuListener ) ; Listener dragListener = new Listener ( ) { public void handleEvent ( Event event ) { Point position = DragUtil . getEventLoc ( event ) ; IViewReference ref = getViewAt ( position ) ; if ( ref == null ) { startDraggingFastViewBar ( position , false ) ; } else { startDraggingFastView ( ref , position , false ) ; } } } ; IDragOverListener fastViewDragTarget = new IDragOverListener ( ) { class ViewDropTarget extends AbstractDropTarget { List panes ; ToolItem position ; public ViewDropTarget ( List panesToDrop , ToolItem position ) { } public void drop ( ) { IViewReference view = getViewFor ( position ) ; Iterator iter = panes . iterator ( ) ; while ( iter . hasNext ( ) ) { ViewPane pane = ( ( ViewPane ) ( iter . next ( ) ) ) ; getPage ( ) . addFastView ( pane . getViewReference ( ) ) ; getPage ( ) . getActivePerspective ( ) . moveFastView ( pane . getViewReference ( ) , view ) ; } update ( true ) ; } public Cursor getCursor ( ) { return DragCursors . getCursor ( FASTVIEW ) ; } public Rectangle getSnapRectangle ( ) { if ( ( position ) == null ) { if ( ( getToolBar ( ) . getItemCount ( ) ) > 0 ) { return getLocationOfNextIcon ( ) ; } return DragUtil . getDisplayBounds ( getControl ( ) ) ; } else { return Geometry . toDisplay ( getToolBar ( ) , position . getBounds ( ) ) ; } } } public IDropTarget drag ( Control currentControl , Object draggedObject , Point position , Rectangle dragRectangle ) { ToolItem targetItem = getToolItem ( position ) ; if ( draggedObject instanceof ViewPane ) { ViewPane pane = ( ( ViewPane ) ( draggedObject ) ) ; if ( ( pane . getWorkbenchWindow ( ) ) != ( window ) ) { return null ; } List newList = new ArrayList ( 1 ) ; newList . add ( draggedObject ) ; return new ViewDropTarget ( newList , targetItem ) ; } if ( draggedObject instanceof ViewStack ) { ViewStack folder = ( ( ViewStack ) ( draggedObject ) ) ; if ( ( folder . getWorkbenchWindow ( ) ) != ( window ) ) { return null ; } List viewList = new ArrayList ( folder . getItemCount ( ) ) ; LayoutPart [ ] children = folder . getChildren ( ) ; for ( int idx = 0 ; idx < ( children . length ) ; idx ++ ) { if ( ! ( ( children [ idx ] ) instanceof PartPlaceholder ) ) { viewList . add ( children [ idx ] ) ; } } return new ViewDropTarget ( viewList , targetItem ) ; } return null ; } } ; toolBarData = new GridData ( GridData . FILL_BOTH ) ; toolBarData . widthHint = FastViewBar . HIDDEN_WIDTH ; visible = false ; getToolBar ( ) . setLayoutData ( toolBarData ) ; PresentationUtil . addDragListener ( getToolBar ( ) , dragListener ) ; DragUtil . addDragTarget ( getControl ( ) , fastViewDragTarget ) ; if ( ( fastViewLabel ) != null ) { PresentationUtil . addDragListener ( fastViewLabel , dragListener ) ; }

Fix:
CellLayout controlLayout = new CellLayout ( 0 ) . setMargins ( 0 , ( newSide == ( SWT . BOTTOM ) ? 0 : 3 ) ) . setDefaultRow ( Row . growing ( ) ) . setDefaultColumn ( Row . fixed ( ) ) . setColumn ( ( newSide == ( SWT . BOTTOM ) ? 1 : 0 ) , Row . growing ( ) ) ;