Bug 145635 - Support for debug view pin & clone

- Changed background of breadcrumb in pinned view, vs. in Debug view.
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItemDetails.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItemDetails.java
index 2e8a4b0..548dabd 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItemDetails.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItemDetails.java
@@ -199,10 +199,10 @@
 	}
 	
 	public void setBackground(Color color) {
-		if (color == null) {
+		if (color != null) {
 			color = fTextComposite.getBackground();
+	        fElementText.setBackground(color);
 		}
-		fElementText.setBackground(color);
 	}
 
 	public Color getForeground() {
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbViewer.java
index 324309a..cff8d41 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbViewer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbViewer.java
@@ -825,10 +825,15 @@
 
         GC gc= new GC(result);
 
-        Color colorC= createColor(SWT.COLOR_WIDGET_BACKGROUND, SWT.COLOR_LIST_BACKGROUND, 35, display);
-        Color colorD= createColor(SWT.COLOR_WIDGET_BACKGROUND, SWT.COLOR_LIST_BACKGROUND, 45, display);
-        Color colorE= createColor(SWT.COLOR_WIDGET_BACKGROUND, SWT.COLOR_LIST_BACKGROUND, 80, display);
-        Color colorF= createColor(SWT.COLOR_WIDGET_BACKGROUND, SWT.COLOR_LIST_BACKGROUND, 70, display);
+        boolean flat = (getStyle() & SWT.FLAT) != 0;
+        
+        int blendForeground = flat ? SWT.COLOR_LIST_BACKGROUND : SWT.COLOR_WIDGET_BACKGROUND;
+        int blendBackground = flat ? SWT.COLOR_WIDGET_BACKGROUND : SWT.COLOR_WIDGET_NORMAL_SHADOW;
+        
+        Color colorC= createColor(blendBackground, blendForeground, 35, display);
+        Color colorD= createColor(blendBackground, blendForeground, 45, display);
+        Color colorE= createColor(blendBackground, blendForeground, 80, display);
+        Color colorF= createColor(blendBackground, blendForeground, 70, display);
         Color colorG= createColor(SWT.COLOR_WIDGET_BACKGROUND, SWT.COLOR_WHITE, 45, display);
         Color colorH= createColor(SWT.COLOR_WIDGET_NORMAL_SHADOW, SWT.COLOR_LIST_BACKGROUND, 35, display);
 
@@ -857,7 +862,7 @@
             colorG.dispose();
             colorH.dispose();
         }
-
+        
         return result;
     }
 
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/AbstractLaunchViewBreadcrumb.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/AbstractLaunchViewBreadcrumb.java
index 6b1afb7..6a8394f 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/AbstractLaunchViewBreadcrumb.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/AbstractLaunchViewBreadcrumb.java
@@ -516,8 +516,12 @@
         }
     }
 
+    protected int getStyle() {
+        return SWT.NONE;
+    }
+    
     protected BreadcrumbViewer createViewer(Composite parent) {
-        fViewer = new BreadcrumbViewer(parent, SWT.NONE) {
+        fViewer = new BreadcrumbViewer(parent, getStyle()) {
             protected Control createDropDown(Composite dropDownParent, IBreadcrumbDropDownSite site, TreePath path) {
                 return createDropDownControl(dropDownParent, site, path);
             }
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb.java
index 4cb32fa..39ce4a4 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb.java
@@ -15,6 +15,7 @@
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.MenuDetectEvent;
 import org.eclipse.swt.events.MenuDetectListener;
 import org.eclipse.swt.widgets.Menu;
@@ -46,6 +47,10 @@
     	return getLaunchView().isBreadcrumbVisible();
     }
     
+    protected int getStyle() {
+        return SWT.FLAT;
+    }
+    
     protected void createMenuManager() {
         MenuManager menuMgr = new MenuManager("#PopUp"); //$NON-NLS-1$
         menuMgr.setRemoveAllWhenShown(true);
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/NewViewInstanceAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/NewViewInstanceAction.java
index 7636fe3..8d53a89 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/NewViewInstanceAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/NewViewInstanceAction.java
@@ -58,7 +58,7 @@
 			if (fView instanceof IPinnablePart) {
 				createNewPart(fView);
 			}
-			fView.getSite().getPage().showView(viewId, secondaryId, IWorkbenchPage.VIEW_VISIBLE);
+			fView.getSite().getPage().showView(viewId, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
 		} catch (PartInitException e) {
 			DebugUIPlugin.log(e);
 		}