Introduction
Introduction Statistics Contact Development Disclaimer Help
tremoving context-menu, downloading. - surf - customized build of surf, the suc…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit 6376a30379d9a130f01a37b188b8005ed7d05a9d
parent 91d04b15f0bb16d5b31ad92ea1e6a0066e589956
Author: Enno Boland (tox) <[email protected]>
Date: Mon, 17 May 2010 10:58:08 +0200
removing context-menu, downloading.
Diffstat:
M config.def.h | 11 -----------
M surf.c | 119 +++--------------------------…
2 files changed, 8 insertions(+), 122 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -35,14 +35,3 @@ static Key keys[] = {
{ MODKEY, GDK_n, find, { .b = TRUE } },
{ MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } },
};
-
-static Item items[] = {
- { "Back", navigate, { .i = -1 } },
- { "Forward", navigate, { .i = +1 } },
- { "New Window", newwindow, { .v = NULL } },
- { "Reload", reload, { .b = FALSE } },
- { "Stop", stop, { 0 } },
- { "Paste URI", clipboard, { .b = TRUE } },
- { "Copy URI", clipboard, { .b = FALSE } },
- { "Download", download, { 0 } },
-};
diff --git a/surf.c b/surf.c
t@@ -32,9 +32,7 @@ union Arg {
typedef struct Client {
GtkWidget *win, *scroll, *vbox, *indicator;
- GtkWidget **items;
WebKitWebView *view;
- WebKitDownload *download;
char *title, *linkhover;
const char *uri, *needle;
gint progress;
t@@ -68,7 +66,6 @@ static gboolean loadimage = 1, plugin = 1, script = 1;
static char *buildpath(const char *path);
static void cleanup(void);
static void clipboard(Client *c, const Arg *arg);
-static void context(WebKitWebView *v, GtkMenu *m, Client *c);
static char *copystr(char **str, const char *src);
static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client…
static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetw…
t@@ -76,7 +73,6 @@ static gboolean decidewindow(WebKitWebView *v, WebKitWebFram…
static void destroyclient(Client *c);
static void destroywin(GtkWidget* w, Client *c);
static void die(char *str);
-static void download(Client *c, const Arg *arg);
static void drawindicator(Client *c);
static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
static void find(Client *c, const Arg *arg);
t@@ -84,8 +80,6 @@ static const char *getatom(Client *c, Atom a);
static const char *getcookies(SoupURI *uri);
static char *geturi(Client *c);
void gotheaders(SoupMessage *msg, gpointer user_data);
-static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
-static void itemclick(GtkMenuItem *mi, Client *c);
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
static void linkhover(WebKitWebView *v, const char* t, const char* l, Client *…
static void loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c…
t@@ -110,7 +104,6 @@ static void spawn(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg);
static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* t…
static void update(Client *c);
-static void updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c);
static void updatewinid(Client *c);
static void usage(void);
static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContext…
t@@ -173,22 +166,6 @@ clipboard(Client *c, const Arg *arg) {
gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_PRIMARY…
}
-void
-context(WebKitWebView *v, GtkMenu *m, Client *c) {
- int i;
- GtkContainer *parent;
-
- gtk_widget_hide_all(GTK_WIDGET(m));
- gtk_widget_show(GTK_WIDGET(m));
- for(i = 0; i < LENGTH(items); i++) {
- parent = GTK_CONTAINER(gtk_widget_get_parent(c->items[i]));
- if(parent)
- gtk_container_remove(parent, c->items[i]);
- gtk_menu_shell_append(GTK_MENU_SHELL(m), c->items[i]);
- gtk_widget_show(c->items[i]);
- }
-}
-
char *
copystr(char **str, const char *src) {
char *tmp;
t@@ -210,7 +187,10 @@ createwindow(WebKitWebView *v, WebKitWebFrame *f, Client…
gboolean
decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, g…
if(!webkit_web_view_can_show_mime_type(v, m)) {
- webkit_web_policy_decision_download(p);
+ webkit_web_policy_decision_ignore(p);
+ webkit_web_view_load_html_string(c->view,
+ "Can't display content.",
+ webkit_network_request_get_uri(r));
return TRUE;
}
return FALSE;
t@@ -231,7 +211,6 @@ decidewindow(WebKitWebView *view, WebKitWebFrame *f, WebKi…
void
destroyclient(Client *c) {
- int i;
Client *p;
gtk_widget_destroy(c->indicator);
t@@ -239,9 +218,6 @@ destroyclient(Client *c) {
gtk_widget_destroy(c->scroll);
gtk_widget_destroy(c->vbox);
gtk_widget_destroy(c->win);
- for(i = 0; i < LENGTH(items); i++)
- gtk_widget_destroy(c->items[i]);
- free(c->items);
for(p = clients; p && p->next != c; p = p->next);
if(p)
t@@ -265,22 +241,6 @@ die(char *str) {
}
void
-download(Client *c, const Arg *arg) {
- char *uri;
- WebKitNetworkRequest *r;
- WebKitDownload *dl;
-
- if(arg->v)
- uri = (char *)arg->v;
- else
- uri = c->linkhover ? c->linkhover : geturi(c);
- r = webkit_network_request_new(uri);
- dl = webkit_download_new(r);
- initdownload(c->view, dl, c);
- webkit_download_start(c->download);
-}
-
-void
drawindicator(Client *c) {
gint width;
const char *uri;
t@@ -369,37 +329,6 @@ gotheaders(SoupMessage *msg, gpointer v) {
}
gboolean
-initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
- const char *filename;
- char *uri;
-
- c->download = o;
- filename = webkit_download_get_suggested_filename(o);
- if(!strcmp("", filename))
- filename = "index.html";
- uri = g_strconcat("file://", dldir, "/", filename, NULL);
- webkit_download_set_destination_uri(c->download, uri);
- c->progress = 0;
- g_signal_connect(c->download, "notify::progress", G_CALLBACK(updatedow…
- g_signal_connect(c->download, "notify::status", G_CALLBACK(updatedownl…
-
- c->title = copystr(&c->title, filename);
- update(c);
- return TRUE;
-}
-
-void
-itemclick(GtkMenuItem *mi, Client *c) {
- int i;
- const char *label;
-
- label = gtk_menu_item_get_label(mi);
- for(i = 0; i < LENGTH(items); i++)
- if(!strcmp(items[i].label, label))
- items[i].func(c, &(items[i].arg));
-}
-
-gboolean
keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
guint i;
gboolean processed = FALSE;
t@@ -418,8 +347,9 @@ keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
void
linkhover(WebKitWebView *v, const char* t, const char* l, Client *c) {
- if(l)
+ if(l) {
c->linkhover = copystr(&c->linkhover, l);
+ }
else if(c->linkhover) {
free(c->linkhover);
c->linkhover = NULL;
t@@ -431,9 +361,7 @@ void
loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) {
switch(webkit_web_view_get_load_status (c->view)) {
case WEBKIT_LOAD_COMMITTED:
- if(c->download)
- stop(c, NULL);
- setatom(c, uriprop, geturi(c));
+ setatom(c, uriprop, geturi(c));
break;
case WEBKIT_LOAD_FINISHED:
c->progress = 0;
t@@ -475,7 +403,6 @@ navigate(Client *c, const Arg *arg) {
Client *
newclient(void) {
- int i;
Client *c;
WebKitWebSettings *settings;
WebKitWebFrame *frame;
t@@ -509,16 +436,6 @@ newclient(void) {
g_signal_connect(G_OBJECT(c->win), "key-press-event", G_CALLBACK(keypr…
g_signal_connect(G_OBJECT(c->win), "size-allocate", G_CALLBACK(resize)…
- if(!(c->items = calloc(1, sizeof(GtkWidget *) * LENGTH(items))))
- die("Cannot malloc!\n");
-
- /* contextmenu */
- for(i = 0; i < LENGTH(items); i++) {
- c->items[i] = gtk_menu_item_new_with_label(items[i].label);
- g_signal_connect(G_OBJECT(c->items[i]), "activate",
- G_CALLBACK(itemclick), c);
- }
-
/* VBox */
c->vbox = gtk_vbox_new(FALSE, 0);
t@@ -534,9 +451,7 @@ newclient(void) {
g_signal_connect(G_OBJECT(c->view), "create-web-view", G_CALLBACK(crea…
g_signal_connect(G_OBJECT(c->view), "new-window-policy-decision-reques…
g_signal_connect(G_OBJECT(c->view), "mime-type-policy-decision-request…
- g_signal_connect(G_OBJECT(c->view), "download-requested", G_CALLBACK(i…
g_signal_connect(G_OBJECT(c->view), "window-object-cleared", G_CALLBAC…
- g_signal_connect(G_OBJECT(c->view), "populate-popup", G_CALLBACK(conte…
g_signal_connect(G_OBJECT(c->view), "notify::load-status", G_CALLBACK(…
g_signal_connect(G_OBJECT(c->view), "notify::progress", G_CALLBACK(pro…
t@@ -582,7 +497,6 @@ newclient(void) {
if(NOBACKGROUND)
webkit_web_view_set_transparent(c->view, TRUE);
- c->download = NULL;
c->title = NULL;
c->next = clients;
clients = c;
t@@ -816,11 +730,7 @@ spawn(Client *c, const Arg *arg) {
void
stop(Client *c, const Arg *arg) {
- if(c->download)
- webkit_download_cancel(c->download);
- else
- webkit_web_view_stop_loading(c->view);
- c->download = NULL;
+ webkit_web_view_stop_loading(c->view);
}
void
t@@ -845,19 +755,6 @@ update(Client *c) {
}
void
-updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c) {
- WebKitDownloadStatus status;
-
- status = webkit_download_get_status(c->download);
- if(status == WEBKIT_DOWNLOAD_STATUS_STARTED || status == WEBKIT_DOWNLO…
- c->progress = (gint)(webkit_download_get_progress(c->download)…
- }
- else
- stop(c, NULL);
- update(c);
-}
-
-void
updatewinid(Client *c) {
snprintf(winid, LENGTH(winid), "%u",
(int)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.