diff -up surf-2.0/surf.c surf/surf.c --- surf-2.0/surf.c 2017-11-26 14:29:37.963786915 +0100 +++ surf/surf.c 2017-12-03 00:20:07.314189414 +0100 @@ -1183,12 +1183,13 @@ createview(WebKitWebView *v, WebKitNavig switch (webkit_navigation_action_get_navigation_type(a)) { case WEBKIT_NAVIGATION_TYPE_OTHER: /* fallthrough */ /* - * popup windows of type “other” are almost always triggered - * by user gesture, so inverse the logic here + * allow same-window popup triggered by user gesture */ -/* instead of this, compare destination uri to mouse-over uri for validating window */ - if (webkit_navigation_action_is_user_gesture(a)) + if (webkit_navigation_action_is_user_gesture(a)) { + Arg aa = {.v = webkit_uri_request_get_uri(webkit_navigation_action_get_request(a))}; + loaduri((Client *) c, &aa); return NULL; + } case WEBKIT_NAVIGATION_TYPE_LINK_CLICKED: /* fallthrough */ case WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED: /* fallthrough */ case WEBKIT_NAVIGATION_TYPE_BACK_FORWARD: /* fallthrough */