You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2012/04/28 02:26:43 UTC
[2/13] wp7 commit: metaviewport tag content attribute user-scalable
yes|no is observed.
metaviewport tag content attribute user-scalable yes|no is observed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/commit/d6bd4ced
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/tree/d6bd4ced
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/diff/d6bd4ced
Branch: refs/heads/master
Commit: d6bd4cedbbb7014b697387f33a4c93c4b8f4a4a3
Parents: fa9fff9
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Fri Apr 27 17:22:47 2012 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Fri Apr 27 17:22:47 2012 -0700
----------------------------------------------------------------------
framework/Cordova/BrowserMouseHelper.cs | 105 +++++++++++---------------
framework/CordovaView.xaml.cs | 2 +-
2 files changed, 44 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/d6bd4ced/framework/Cordova/BrowserMouseHelper.cs
----------------------------------------------------------------------
diff --git a/framework/Cordova/BrowserMouseHelper.cs b/framework/Cordova/BrowserMouseHelper.cs
index 4a23d41..65fc825 100644
--- a/framework/Cordova/BrowserMouseHelper.cs
+++ b/framework/Cordova/BrowserMouseHelper.cs
@@ -62,17 +62,15 @@ namespace WP7CordovaClassLib
/// the WebBrowser control;
/// </summary>
public bool ScrollDisabled { get; set; }
- public bool ZoomDisabled { get; set; }
-
- private bool isScaling = false;
private bool userScalable = true;
private double maxScale = 2.0;
private double minScale = 0.5;
protected Border border;
+ private bool firstMouseMove = false;
- public BrowserMouseHelper(WebBrowser browser)
+ public BrowserMouseHelper(ref WebBrowser browser)
{
_browser = browser;
browser.Loaded += new RoutedEventHandler(browser_Loaded);
@@ -86,7 +84,6 @@ namespace WP7CordovaClassLib
var grid = VisualTreeHelper.GetChild(panZoom, 0);
border = VisualTreeHelper.GetChild(grid, 0) as Border;
-
if (border != null)
{
border.ManipulationStarted += Border_ManipulationStarted;
@@ -142,10 +139,8 @@ namespace WP7CordovaClassLib
void Browser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
-
ParseViewportMeta();
-
try
{
_browser.InvokeScript("execScript", MinifiedMouseScript);
@@ -154,7 +149,6 @@ namespace WP7CordovaClassLib
{
Debug.WriteLine("BrowserHelper Failed to install mouse script in WebBrowser");
}
-
}
bool InvokeSimulatedMouseEvent(string eventName, Point pos)
@@ -167,7 +161,6 @@ namespace WP7CordovaClassLib
{
return bCancelled;
}
-
}
catch (Exception)
{
@@ -177,83 +170,91 @@ namespace WP7CordovaClassLib
return bCancelled;
}
+ #region Hold
+
void Border_Hold(object sender, GestureEventArgs e)
{
Debug.WriteLine("Border_Hold");
e.Handled = true;
}
+ #endregion
+
+ #region DoubleTap
+
void Border_DoubleTap(object sender, GestureEventArgs e)
{
Debug.WriteLine("Border_DoubleTap");
e.Handled = true;
}
- void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- if (isScaling)
- return;
+ #endregion
- Debug.WriteLine("Border_MouseLeftButtonDown");
+ #region MouseEvents
+ void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
border.MouseMove += new MouseEventHandler(Border_MouseMove);
border.MouseLeftButtonUp += new MouseButtonEventHandler(Border_MouseLeftButtonUp);
+ firstMouseMove = true;
+
Point pos = e.GetPosition(_browser);
+ InvokeSimulatedMouseEvent("mousedown", pos);
+ }
- bool bCancelled = InvokeSimulatedMouseEvent("mousedown", pos);
- e.Handled = bCancelled;
- ScrollDisabled = bCancelled;
+ void Border_MouseMove(object sender, MouseEventArgs e)
+ {
+ Point pos = e.GetPosition(_browser);
+ bool retVal = InvokeSimulatedMouseEvent("mousemove", pos);
+ // only the return value from the first mouse move event should be used to determine if scrolling is prevented.
+ if (firstMouseMove)
+ {
+ ScrollDisabled = retVal;
+ }
}
void Border_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
- if (isScaling)
- return;
-
- Debug.WriteLine("Border_MouseLeftButtonUp");
-
border.MouseMove -= new MouseEventHandler(Border_MouseMove);
border.MouseLeftButtonUp -= new MouseButtonEventHandler(Border_MouseLeftButtonUp);
Point pos = e.GetPosition(_browser);
-
- bool bCancelled = InvokeSimulatedMouseEvent("mouseup", pos);
- e.Handled = bCancelled;
+ e.Handled = InvokeSimulatedMouseEvent("mouseup", pos);
ScrollDisabled = false;
}
- void Border_MouseMove(object sender, MouseEventArgs e)
- {
- if (isScaling)
- return;
+ #endregion
- Debug.WriteLine("Border_MouseMove");
- Point pos = e.GetPosition(_browser);
-
- bool bCancelled = InvokeSimulatedMouseEvent("mousemove", pos);
- //ScrollDisabled = bCancelled;
-
- }
+ #region ManipulationEvents
void Border_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
- Debug.WriteLine("Border_ManipulationStarted");
-
if (ScrollDisabled)
{
e.Handled = true;
e.Complete();
}
- else if (this.userScalable)
+ }
+
+ private void Border_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
+ {
+ // optionally suppress zoom
+ if ((ScrollDisabled || !userScalable) && (e.DeltaManipulation.Scale.X != 0.0 || e.DeltaManipulation.Scale.Y != 0.0))
+ {
+ e.Handled = true;
+ e.Complete();
+ }
+ // optionally suppress scrolling
+ if (ScrollDisabled && (e.DeltaManipulation.Translation.X != 0.0 || e.DeltaManipulation.Translation.Y != 0.0))
{
- isScaling = true;
+ e.Handled = true;
+ e.Complete();
}
}
private void Border_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
- Debug.WriteLine("Border_ManipulationCompleted");
// suppress zoom
if (!userScalable && e.FinalVelocities != null)
{
@@ -263,30 +264,10 @@ namespace WP7CordovaClassLib
e.Handled = true;
}
}
- this.isScaling = false;
}
- private void Border_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
- {
- Debug.WriteLine("Border_ManipulationDelta");
- // optionally suppress zoom
- if (isScaling)
- {
- return;
- }
- if (!userScalable && (e.DeltaManipulation.Scale.X != 0.0 || e.DeltaManipulation.Scale.Y != 0.0))
- {
- e.Handled = true;
- e.Complete();
- }
- // optionally suppress scrolling
- if (ScrollDisabled && (e.DeltaManipulation.Translation.X != 0.0 || e.DeltaManipulation.Translation.Y != 0.0) )
- {
- e.Handled = true;
- e.Complete();
- }
- }
+ #endregion
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/d6bd4ced/framework/CordovaView.xaml.cs
----------------------------------------------------------------------
diff --git a/framework/CordovaView.xaml.cs b/framework/CordovaView.xaml.cs
index 776bf23..86b3298 100644
--- a/framework/CordovaView.xaml.cs
+++ b/framework/CordovaView.xaml.cs
@@ -147,7 +147,7 @@ namespace WP7CordovaClassLib
// initializes native execution logic
this.nativeExecution = new NativeExecution(ref this.CordovaBrowser);
- this.bmHelper = new BrowserMouseHelper(this.CordovaBrowser);
+ this.bmHelper = new BrowserMouseHelper(ref this.CordovaBrowser);
}