static GdkNativeWindow embed = 0;
static gboolean showxid = FALSE;
static char winid[64];
-static gboolean loadimage = 1, plugin = 1, script = 1, using_proxy = 0;
-static char togglestat[6];
-static gboolean insertmode = FALSE;
+static gboolean loadimages = 1, enableplugins = 1, enablescripts = 1,
+ usingproxy = 0;
+static char togglestat[5];
static char *buildpath(const char *path);
static gboolean buttonrelease(WebKitWebView *web, GdkEventButton *e, GList *gl);
static const char *getatom(Client *c, int a);
static char *geturi(Client *c);
static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
-static void insert(Client *c, const Arg *arg);
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *c);
static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c);
width = c->progress * w->allocation.width / 100;
gc = gdk_gc_new(w->window);
if(strstr(uri, "https://") == uri) {
- if(using_proxy) {
+ if(usingproxy) {
colorname = c->sslfailed? progress_proxy_untrust : progress_proxy_trust;
} else {
colorname = c->sslfailed? progress_untrust : progress_trust;
}
} else {
- if(using_proxy) {
+ if(usingproxy) {
colorname = progress_proxy;
} else {
colorname = progress;
Arg arg;
updatewinid(c);
- arg = (Arg)DOWNLOAD((char *)webkit_download_get_uri(o));
+ arg = (Arg)DOWNLOAD((char *)webkit_download_get_uri(o), geturi(c));
spawn(c, &arg);
return FALSE;
}
-void
-insert(Client *c, const Arg *arg) {
- insertmode = TRUE;
- update(clients);
-}
-
gboolean
keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
- guint i, state;
+ guint i;
gboolean processed = FALSE;
- /* turn off insert mode */
- if(insertmode && (ev->keyval == GDK_Escape)) {
- insertmode = FALSE;
- update(c);
- return TRUE;
- }
-
- if(insertmode && (((ev->state & MODKEY) != MODKEY) || !MODKEY)) {
- return FALSE;
- }
-
- if(ev->keyval == GDK_Escape) {
- webkit_web_view_set_highlight_text_matches(c->view, FALSE);
- return TRUE;
- }
-
updatewinid(c);
for(i = 0; i < LENGTH(keys); i++) {
- if(!insertmode && (MODKEY & keys[i].mod)) {
- state = ev->state | MODKEY;
- } else {
- state = ev->state;
- }
-
if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
+ && (ev->state & keys[i].mod) == keys[i].mod
&& keys[i].func) {
- if(state == keys[i].mod) {
- keys[i].func(c, &(keys[i].arg));
- processed = TRUE;
- }
+ keys[i].func(c, &(keys[i].arg));
+ processed = TRUE;
}
}
if(!(c = calloc(1, sizeof(Client))))
die("Cannot malloc!\n");
+
/* Window */
if(embed) {
c->win = gtk_plug_new(embed);
- }
- else {
+ } else {
c->win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+
/* TA: 20091214: Despite what the GNOME docs say, the ICCCM
* is always correct, so we should still call this function.
* But when doing so, we *must* differentiate between a
gdk_window_set_events(GTK_WIDGET(c->win)->window, GDK_ALL_EVENTS_MASK);
gdk_window_add_filter(GTK_WIDGET(c->win)->window, processx, c);
webkit_web_view_set_full_content_zoom(c->view, TRUE);
+
frame = webkit_web_view_get_main_frame(c->view);
runscript(frame);
settings = webkit_web_view_get_settings(c->view);
g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
uri = g_strconcat("file://", stylefile, NULL);
g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL);
- g_object_set(G_OBJECT(settings), "auto-load-images", loadimage, NULL);
- g_object_set(G_OBJECT(settings), "enable-plugins", plugin, NULL);
- g_object_set(G_OBJECT(settings), "enable-scripts", script, NULL);
- g_object_set(G_OBJECT(settings), "enable-spatial-navigation", SPATIAL_BROWSING, NULL);
+ g_object_set(G_OBJECT(settings), "auto-load-images", loadimages, NULL);
+ g_object_set(G_OBJECT(settings), "enable-plugins", enableplugins, NULL);
+ g_object_set(G_OBJECT(settings), "enable-scripts", enablescripts, NULL);
+ g_object_set(G_OBJECT(settings), "enable-spatial-navigation",
+ spatialbrowsing, NULL);
g_free(uri);
setatom(c, AtomFind, "");
setatom(c, AtomUri, "about:blank");
- if(HIDE_BACKGROUND)
+ if(hidebackground)
webkit_web_view_set_transparent(c->view, TRUE);
c->title = NULL;
snprintf(tmp, LENGTH(tmp), "%u\n", (int)embed);
cmd[i++] = tmp;
}
- if(!script)
+ if(!enablescripts)
cmd[i++] = "-s";
- if(!plugin)
+ if(!enableplugins)
cmd[i++] = "-p";
- if(!loadimage)
+ if(!loadimages)
cmd[i++] = "-i";
if(showxid)
cmd[i++] = "-x";
g_object_set(G_OBJECT(s), "proxy-uri", puri, NULL);
soup_uri_free(puri);
g_free(new_proxy);
- using_proxy = 1;
+ usingproxy = 1;
}
}
gboolean value;
WebKitWebSettings *settings = webkit_web_view_get_settings(c->view);
- togglestat[4] = '\0';
+ g_object_get(G_OBJECT(settings), "enable-caret-browsing",
+ &value, NULL);
+ togglestat[0] = value? 'C': 'c';
+
g_object_get(G_OBJECT(settings), "auto-load-images", &value, NULL);
- togglestat[0] = value?'I':'i';
+ togglestat[1] = value? 'I': 'i';
+
g_object_get(G_OBJECT(settings), "enable-scripts", &value, NULL);
- togglestat[1] = value?'S':'s';
+ togglestat[2] = value? 'S': 's';
+
g_object_get(G_OBJECT(settings), "enable-plugins", &value, NULL);
- togglestat[2] = value?'V':'v';
- g_object_get(G_OBJECT(settings), "enable-caret-browsing",
- &value, NULL);
- togglestat[3] = value?'C':'c';
+ togglestat[3] = value? 'V': 'v';
- togglestat[4] = insertmode? '+' : '-';
- togglestat[5] = '\0';
+ togglestat[4] = '\0';
}
embed = strtol(EARGF(usage()), NULL, 0);
break;
case 'i':
- loadimage = 0;
+ loadimages = 0;
break;
case 'p':
- plugin = 0;
+ enableplugins = 0;
break;
case 'r':
scriptfile = EARGF(usage());
break;
case 's':
- script = 0;
+ enablescripts = 0;
break;
case 't':
stylefile = EARGF(usage());