static void createBrowserWindow(const gchar *uri, WebKitSettings *webkitSettings, gboolean shouldLoadSession) { GtkWidget *webView = webkit_web_view_new(); if (editorMode) webkit_web_view_set_editable(WEBKIT_WEB_VIEW(webView), TRUE); GtkWidget *mainWindow = browser_window_new(WEBKIT_WEB_VIEW(webView), NULL); if (backgroundColor) browser_window_set_background_color(BROWSER_WINDOW(mainWindow), backgroundColor); if (webkitSettings) webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView), webkitSettings); if (!editorMode) { if (shouldLoadSession && sessionFile) browser_window_load_session(BROWSER_WINDOW(mainWindow), sessionFile); else { gchar *url = argumentToURL(uri); browser_window_load_uri(BROWSER_WINDOW(mainWindow), url); g_free(url); } } gtk_widget_grab_focus(webView); gtk_widget_show(mainWindow); }
static GtkWidget *webViewCreate(WebKitWebView *webView, WebKitNavigationAction *navigation, BrowserWindow *window) { WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_related_view(webView)); webkit_web_view_set_settings(newWebView, webkit_web_view_get_settings(webView)); GtkWidget *newWindow = browser_window_new(newWebView, GTK_WINDOW(window)); g_signal_connect(newWebView, "ready-to-show", G_CALLBACK(webViewReadyToShow), newWindow); g_signal_connect(newWebView, "run-as-modal", G_CALLBACK(webViewRunAsModal), newWindow); g_signal_connect(newWebView, "close", G_CALLBACK(webViewClose), newWindow); return GTK_WIDGET(newWebView); }
static void createBrowserWindow(const gchar *uri, WebKitSettings *webkitSettings) { GtkWidget *webView = webkit_web_view_new(); GtkWidget *mainWindow = browser_window_new(WEBKIT_WEB_VIEW(webView), NULL); gchar *url = argumentToURL(uri); if (webkitSettings) { webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView), webkitSettings); g_object_unref(webkitSettings); } browser_window_load_uri(BROWSER_WINDOW(mainWindow), url); g_free(url); gtk_widget_grab_focus(webView); gtk_widget_show(mainWindow); }
static void connection_new_cb (G_GNUC_UNUSED GtkButton *button, G_GNUC_UNUSED BrowserConnectionsList *clist) { LoginDialog *dialog; GdaConnection *cnc; GError *error = NULL; dialog = login_dialog_new (NULL); cnc = login_dialog_run (dialog, TRUE, &error); if (cnc) { BrowserConnection *bcnc; BrowserWindow *nbwin; bcnc = browser_connection_new (cnc); nbwin = browser_window_new (bcnc, NULL); browser_core_take_window (nbwin); browser_core_take_connection (bcnc); } }
void createBrowserWindow(const gchar *uri, WebKitSettings *webkitSettings) { GtkWidget *webView = webkit_web_view_new(); GtkWidget *mainWindow = browser_window_new(WEBKIT_WEB_VIEW(webView), NULL); gtk_widget_set_sensitive(BROWSER_WINDOW(mainWindow)->backItem, FALSE); gtk_widget_set_sensitive(BROWSER_WINDOW(mainWindow)->forwardItem, FALSE); gchar *url = argumentToURL(uri); gtk_window_set_title(GTK_WINDOW(mainWindow), "Cuprum Browser"); if (webkitSettings) webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webView), webkitSettings); browser_window_load_uri(BROWSER_WINDOW(mainWindow), url); g_free(url); //zgh gtk_widget_grab_focus(webView); gtk_widget_show(mainWindow); }
static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, BrowserWindow *window) { switch (decisionType) { case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION: { WebKitNavigationAction *navigationAction = webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(decision)); if (webkit_navigation_action_get_navigation_type(navigationAction) != WEBKIT_NAVIGATION_TYPE_LINK_CLICKED || webkit_navigation_action_get_mouse_button(navigationAction) != GDK_BUTTON_MIDDLE) return FALSE; // Opening a new window if link clicked with the middle button. WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_view_get_context(webView))); GtkWidget *newWindow = browser_window_new(newWebView, GTK_WINDOW(window)); webkit_web_view_load_request(newWebView, webkit_navigation_action_get_request(navigationAction)); gtk_widget_show(newWindow); webkit_policy_decision_ignore(decision); return TRUE; } case WEBKIT_POLICY_DECISION_TYPE_RESPONSE: { WebKitResponsePolicyDecision *responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(decision); if (webkit_response_policy_decision_is_mime_type_supported(responseDecision)) return FALSE; WebKitWebResource *mainResource = webkit_web_view_get_main_resource(webView); WebKitURIRequest *request = webkit_response_policy_decision_get_request(responseDecision); const char *requestURI = webkit_uri_request_get_uri(request); if (g_strcmp0(webkit_web_resource_get_uri(mainResource), requestURI)) return FALSE; webkit_policy_decision_download(decision); return TRUE; } case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION: default: return FALSE; } }