/plugins/MiddleClickOpen.cs
using System;
using Gtk;
using WebKit;
using bytex64.WebThing;

public class MiddleClickOpen : WebThingPlugin {
    private string LinkUri = null;
    private WebThing wt;
    
    public override void Init(WebThing wt) {
        this.wt = wt;
    }

    public override void InitWebView(WebView wv) {
        wv.HoveringOverLink += delegate(object o, HoveringOverLinkArgs e) {
            LinkUri = e.Link;
        };

        wv.ButtonReleaseEvent += WebView_ButtonRelease;
    }

    private void WebView_ButtonRelease(object o, Gtk.ButtonReleaseEventArgs e) {
        if (e.Event.Button == 2) {
            if (LinkUri != null) {
                wt.OpenTab(LinkUri);
                wt.WebView.StopLoading();
                e.RetVal = true;   // WHY DOESN'T THIS WORK!?
            }
        }
    }
}