Fix scrolling functionality
[WebThing.git] / plugins / FFNav.cs
index 4869c2f..15d3504 100644 (file)
@@ -8,12 +8,28 @@ public class FFNav : WebThingPlugin {
 
     public override void Init(WebThing wt) {
         this.wt = wt;
+
+        wt.Window.KeyPressEvent += Window_KeyPress;
     }
 
     public override void InitWebView(WebView wv) {
         wv.KeyPressEvent += WebView_KeyPress;
     }
 
+    private void Window_KeyPress(object o, KeyPressEventArgs e) {
+        if ((e.Event.State & Gdk.ModifierType.ControlMask) != 0) {
+            switch(e.Event.Key) {
+            case Gdk.Key.t:
+                wt.NewTab();
+                wt.Tabs.CurrentPage = wt.Tabs.NPages - 1;
+                break;
+            case Gdk.Key.w:
+                wt.CloseTab();
+                break;
+            }
+        }
+    }
+
     private void WebView_KeyPress(object o, KeyPressEventArgs e) {
         WebView wv = (WebView) o;
         if ((e.Event.State & Gdk.ModifierType.Mod1Mask) != 0) {
@@ -27,13 +43,6 @@ public class FFNav : WebThingPlugin {
             }
         } else if ((e.Event.State & Gdk.ModifierType.ControlMask) != 0) {
             switch(e.Event.Key) {
-            case Gdk.Key.t:
-                wt.NewTab();
-                wt.Tabs.CurrentPage = wt.Tabs.NPages - 1;
-                break;
-            case Gdk.Key.w:
-                wt.CloseTab();
-                break;
             case Gdk.Key.ISO_Left_Tab:
                 if (wt.Tabs.CurrentPage == 0)
                     wt.Tabs.CurrentPage = wt.Tabs.NPages - 1;
@@ -52,6 +61,9 @@ public class FFNav : WebThingPlugin {
             case Gdk.Key.BackSpace:
                 wv.GoBack();
                 break;
+            case Gdk.Key.Escape:
+                wv.StopLoading();
+                break;
             }
         }
     }