Changeset 107088 in webkit
- Timestamp:
- Feb 8, 2012 7:51:08 AM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r107064 r107088 1 2012-02-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Open links in a new window when clicking with the middle button in MiniBrowser 4 https://bugs.webkit.org/show_bug.cgi?id=78099 5 6 Reviewed by Martin Robinson. 7 8 * MiniBrowser/gtk/BrowserWindow.c: 9 (webViewDecidePolicy): Check whether it's a link clicked with the 10 middle mouse button and load the request in a new window. 11 (browserWindowConstructed): Connect to 12 WebKitWebView::decide-policy signal. 13 1 14 2012-02-08 Ryosuke Niwa <rniwa@webkit.org> 2 15 -
trunk/Tools/MiniBrowser/gtk/BrowserWindow.c
r104129 r107088 236 236 } 237 237 238 static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, BrowserWindow *window) 239 { 240 if (decisionType != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) 241 return FALSE; 242 243 WebKitNavigationPolicyDecision *navigationDecision = WEBKIT_NAVIGATION_POLICY_DECISION(decision); 244 if (webkit_navigation_policy_decision_get_navigation_type(navigationDecision) != WEBKIT_NAVIGATION_TYPE_LINK_CLICKED 245 || webkit_navigation_policy_decision_get_mouse_button(navigationDecision) != 2) 246 return FALSE; 247 248 WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_view_get_context(webView))); 249 webkit_web_view_set_settings(newWebView, webkit_web_view_get_settings(webView)); 250 GtkWidget *newWindow = browser_window_new(newWebView); 251 webkit_web_view_load_request(newWebView, webkit_navigation_policy_decision_get_request(navigationDecision)); 252 gtk_widget_show(newWindow); 253 254 webkit_policy_decision_ignore(decision); 255 return TRUE; 256 } 257 238 258 static void browserWindowFinalize(GObject *gObject) 239 259 { … … 334 354 g_signal_connect(window->webView, "create", G_CALLBACK(webViewCreate), window); 335 355 g_signal_connect(window->webView, "load-failed", G_CALLBACK(webViewLoadFailed), window); 356 g_signal_connect(window->webView, "decide-policy", G_CALLBACK(webViewDecidePolicy), window); 336 357 337 358 WebKitBackForwardList *backForwadlist = webkit_web_view_get_back_forward_list(window->webView);
Note: See TracChangeset
for help on using the changeset viewer.