[jbosstools-commits] JBoss Tools SVN: r42293 - trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Jun 28 14:10:05 EDT 2012


Author: yradtsevich
Date: 2012-06-28 14:10:05 -0400 (Thu, 28 Jun 2012)
New Revision: 42293

Modified:
   trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java
Log:
https://issues.jboss.org/browse/JBIDE-12191	: BrowserSim: automatically hide/customize scrollbars

Modified: trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java	2012-06-28 17:57:32 UTC (rev 42292)
+++ trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java	2012-06-28 18:10:05 UTC (rev 42293)
@@ -26,6 +26,7 @@
 import org.eclipse.swt.SWTError;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.browser.BrowserFunction;
+import org.eclipse.swt.browser.LocationAdapter;
 import org.eclipse.swt.browser.LocationEvent;
 import org.eclipse.swt.browser.LocationListener;
 import org.eclipse.swt.browser.ProgressEvent;
@@ -236,12 +237,62 @@
 			}
 		});
 
-		browser.addLocationListener(new LocationListener() {
+		browser.addLocationListener(new LocationAdapter() {
 			public void changed(LocationEvent event) {
 				initOrientation(deviceOrientation.getOrientationAngle());
 			}
-			public void changing(LocationEvent event) {
+		});
+
+		browser.addLocationListener(new LocationAdapter() {
+			@Override
+			public void changed(LocationEvent event) {
+				Browser browser = (Browser) event.widget;
+				setCustomScrollbarStyles(browser);
 			}
+			
+			@SuppressWarnings("nls")
+			private void setCustomScrollbarStyles(Browser browser) {
+				browser.execute(
+					"if (window._browserSim_customScrollBarStylesSetter === undefined) {"
+						+"window._browserSim_customScrollBarStylesSetter = function () {"
+						+	"document.removeEventListener('DOMSubtreeModified', window._browserSim_customScrollBarStylesSetter, false);"
+						+	"var head = document.head;"
+						+	"var style = document.createElement('style');"
+						+	"style.type = 'text/css';"
+						+	"style.id='browserSimStyles';"
+						+	"head.appendChild(style);"
+						+	"style.innerText='"
+						// The following two rules fix a problem with showing scrollbars in Google Mail and similar,
+						// but autohiding of navigation bar stops to work with it. That is why they are commented.
+						//+	"html {"
+						//+		"overflow: hidden;"
+						//+	"}"
+						//+	"body {"
+						//+		"position: absolute;"
+						//+		"top: 0px;"
+						//+		"left: 0px;"
+						//+		"bottom: 0px;"
+						//+		"right: 0px;"
+						//+		"margin: 0px;"
+						//+		"overflow-y: auto;"
+						//+		"overflow-x: auto;"
+						//+	"}"
+						+		"::-webkit-scrollbar {"
+						+			"width: 5px;"
+						+			"height: 5px;"
+						+		"}"
+						+		"::-webkit-scrollbar-thumb {"
+						+			"background: rgba(0,0,0,0.4); "
+						+		"}"
+						+		"::-webkit-scrollbar-corner, ::-webkit-scrollbar-thumb:window-inactive {"
+						+			"background: rgba(0,0,0,0.0);"
+						+		"};"
+						+	"';"
+						+"};"
+						+ "document.addEventListener('DOMSubtreeModified', window._browserSim_customScrollBarStylesSetter, false);"
+					+ "}"
+				);
+			}
 		});
 		
 		browser.addLocationListener(new LocationListener() {
@@ -267,7 +318,8 @@
 					}
 				};
 				
-				((Browser)event.widget).execute(
+				Browser browser = (Browser)event.widget;
+				browser.execute(
 						"(function() {" +
 							"var scrollListener = function(e){" +
 								"window._browserSim_scrollListener(window.pageYOffset)" +



More information about the jbosstools-commits mailing list