sorting functions alphabetical.
This commit is contained in:
parent
9d4953691d
commit
ae42cfde8f
1 changed files with 103 additions and 103 deletions
206
surf.c
206
surf.c
|
@ -72,6 +72,7 @@ static void cleanup(void);
|
||||||
static void clipboard(Client *c, const Arg *arg);
|
static void clipboard(Client *c, const Arg *arg);
|
||||||
static void context(WebKitWebView *v, GtkMenu *m, Client *c);
|
static void context(WebKitWebView *v, GtkMenu *m, Client *c);
|
||||||
static char *copystr(char **str, const char *src);
|
static char *copystr(char **str, const char *src);
|
||||||
|
static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c);
|
||||||
static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *m, WebKitWebPolicyDecision *p, Client *c);
|
static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *m, WebKitWebPolicyDecision *p, Client *c);
|
||||||
static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p, Client *c);
|
static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p, Client *c);
|
||||||
static void destroyclient(Client *c);
|
static void destroyclient(Client *c);
|
||||||
|
@ -80,8 +81,9 @@ static void die(char *str);
|
||||||
static void download(Client *c, const Arg *arg);
|
static void download(Client *c, const Arg *arg);
|
||||||
static void drawindicator(Client *c);
|
static void drawindicator(Client *c);
|
||||||
static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
|
static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
|
||||||
static char *geturi(Client *c);
|
static void find(Client *c, const Arg *arg);
|
||||||
static const char *getatom(Client *c, Atom a);
|
static const char *getatom(Client *c, Atom a);
|
||||||
|
static char *geturi(Client *c);
|
||||||
static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
|
static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
|
||||||
static void itemclick(GtkMenuItem *mi, Client *c);
|
static void itemclick(GtkMenuItem *mi, Client *c);
|
||||||
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
|
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
|
||||||
|
@ -92,27 +94,25 @@ static void loaduri(Client *c, const Arg *arg);
|
||||||
static void navigate(Client *c, const Arg *arg);
|
static void navigate(Client *c, const Arg *arg);
|
||||||
static Client *newclient(void);
|
static Client *newclient(void);
|
||||||
static void newwindow(Client *c, const Arg *arg);
|
static void newwindow(Client *c, const Arg *arg);
|
||||||
static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c);
|
|
||||||
static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
|
static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
|
||||||
static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
|
|
||||||
static void print(Client *c, const Arg *arg);
|
static void print(Client *c, const Arg *arg);
|
||||||
|
static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
|
||||||
static void progresschange(WebKitWebView *v, gint p, Client *c);
|
static void progresschange(WebKitWebView *v, gint p, Client *c);
|
||||||
static void reloadcookies();
|
|
||||||
static void reload(Client *c, const Arg *arg);
|
static void reload(Client *c, const Arg *arg);
|
||||||
|
static void reloadcookies();
|
||||||
static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
|
static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
|
||||||
static void sigchld(int unused);
|
static void scroll(Client *c, const Arg *arg);
|
||||||
static void setatom(Client *c, Atom a, const char *v);
|
static void setatom(Client *c, Atom a, const char *v);
|
||||||
static void setup(void);
|
static void setup(void);
|
||||||
static void spawn(Client *c, const Arg *arg);
|
static void sigchld(int unused);
|
||||||
static void scroll(Client *c, const Arg *arg);
|
|
||||||
static void find(Client *c, const Arg *arg);
|
|
||||||
static void source(Client *c, const Arg *arg);
|
static void source(Client *c, const Arg *arg);
|
||||||
|
static void spawn(Client *c, const Arg *arg);
|
||||||
static void stop(Client *c, const Arg *arg);
|
static void stop(Client *c, const Arg *arg);
|
||||||
static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* title, Client *c);
|
static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* title, Client *c);
|
||||||
static void usage(void);
|
|
||||||
static void update(Client *c);
|
static void update(Client *c);
|
||||||
static void updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c);
|
static void updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c);
|
||||||
static void updatewinid(Client *c);
|
static void updatewinid(Client *c);
|
||||||
|
static void usage(void);
|
||||||
static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c);
|
static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c);
|
||||||
static void zoom(Client *c, const Arg *arg);
|
static void zoom(Client *c, const Arg *arg);
|
||||||
|
|
||||||
|
@ -209,28 +209,10 @@ copystr(char **str, const char *src) {
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
WebKitWebView *
|
||||||
destroyclient(Client *c) {
|
createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
|
||||||
int i;
|
Client *n = newclient();
|
||||||
Client *p;
|
return n->view;
|
||||||
|
|
||||||
gtk_widget_destroy(c->indicator);
|
|
||||||
gtk_widget_destroy(GTK_WIDGET(c->view));
|
|
||||||
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)
|
|
||||||
p->next = c->next;
|
|
||||||
else
|
|
||||||
clients = c->next;
|
|
||||||
free(c);
|
|
||||||
if(clients == NULL)
|
|
||||||
gtk_main_quit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
@ -255,6 +237,30 @@ decidewindow(WebKitWebView *view, WebKitWebFrame *f, WebKitNetworkRequest *r, We
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
destroyclient(Client *c) {
|
||||||
|
int i;
|
||||||
|
Client *p;
|
||||||
|
|
||||||
|
gtk_widget_destroy(c->indicator);
|
||||||
|
gtk_widget_destroy(GTK_WIDGET(c->view));
|
||||||
|
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)
|
||||||
|
p->next = c->next;
|
||||||
|
else
|
||||||
|
clients = c->next;
|
||||||
|
free(c);
|
||||||
|
if(clients == NULL)
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
destroywin(GtkWidget* w, Client *c) {
|
destroywin(GtkWidget* w, Client *c) {
|
||||||
destroyclient(c);
|
destroyclient(c);
|
||||||
|
@ -266,6 +272,21 @@ die(char *str) {
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
drawindicator(Client *c) {
|
drawindicator(Client *c) {
|
||||||
gint width;
|
gint width;
|
||||||
|
@ -296,18 +317,12 @@ exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
download(Client *c, const Arg *arg) {
|
find(Client *c, const Arg *arg) {
|
||||||
char *uri;
|
const char *s;
|
||||||
WebKitNetworkRequest *r;
|
|
||||||
WebKitDownload *dl;
|
|
||||||
|
|
||||||
if(arg->v)
|
s = getatom(c, findprop);
|
||||||
uri = (char *)arg->v;
|
gboolean forward = *(gboolean *)arg;
|
||||||
else
|
webkit_web_view_search_text(c->view, s, FALSE, forward, TRUE);
|
||||||
uri = c->linkhover ? c->linkhover : geturi(c);
|
|
||||||
r = webkit_network_request_new(uri);
|
|
||||||
dl = webkit_download_new(r);
|
|
||||||
initdownload(c->view, dl, c);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
|
@ -329,6 +344,15 @@ getatom(Client *c, Atom a) {
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
geturi(Client *c) {
|
||||||
|
char *uri;
|
||||||
|
|
||||||
|
if(!(uri = (char *)webkit_web_view_get_uri(c->view)))
|
||||||
|
uri = "about:blank";
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
|
initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
|
||||||
const char *filename;
|
const char *filename;
|
||||||
|
@ -356,15 +380,6 @@ initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
|
||||||
geturi(Client *c) {
|
|
||||||
char *uri;
|
|
||||||
|
|
||||||
if(!(uri = (char *)webkit_web_view_get_uri(c->view)))
|
|
||||||
uri = "about:blank";
|
|
||||||
return uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
itemclick(GtkMenuItem *mi, Client *c) {
|
itemclick(GtkMenuItem *mi, Client *c) {
|
||||||
int i;
|
int i;
|
||||||
|
@ -559,12 +574,6 @@ newwindow(Client *c, const Arg *arg) {
|
||||||
spawn(NULL, &a);
|
spawn(NULL, &a);
|
||||||
}
|
}
|
||||||
|
|
||||||
WebKitWebView *
|
|
||||||
createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
|
|
||||||
Client *n = newclient();
|
|
||||||
return n->view;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) {
|
pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) {
|
||||||
Arg arg = {.v = text };
|
Arg arg = {.v = text };
|
||||||
|
@ -572,6 +581,11 @@ pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) {
|
||||||
loaduri((Client *) d, &arg);
|
loaduri((Client *) d, &arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
print(Client *c, const Arg *arg) {
|
||||||
|
webkit_web_frame_print(webkit_web_view_get_main_frame(c->view));
|
||||||
|
}
|
||||||
|
|
||||||
GdkFilterReturn
|
GdkFilterReturn
|
||||||
processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
|
processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
|
||||||
Client *c = (Client *)d;
|
Client *c = (Client *)d;
|
||||||
|
@ -597,11 +611,6 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
|
||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
print(Client *c, const Arg *arg) {
|
|
||||||
webkit_web_frame_print(webkit_web_view_get_main_frame(c->view));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
progresschange(WebKitWebView *v, gint p, Client *c) {
|
progresschange(WebKitWebView *v, gint p, Client *c) {
|
||||||
c->progress = p;
|
c->progress = p;
|
||||||
|
@ -634,19 +643,6 @@ reloadcookies() {
|
||||||
g_object_unref(jar);
|
g_object_unref(jar);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
scroll(Client *c, const Arg *arg) {
|
|
||||||
gdouble v;
|
|
||||||
GtkAdjustment *a;
|
|
||||||
|
|
||||||
a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
|
|
||||||
v = gtk_adjustment_get_value(a);
|
|
||||||
v += gtk_adjustment_get_step_increment(a) * arg->i;
|
|
||||||
v = MAX(v, 0.0);
|
|
||||||
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
|
|
||||||
gtk_adjustment_set_value(a, v);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
resize(GtkWidget *w, GtkAllocation *a, Client *c) {
|
resize(GtkWidget *w, GtkAllocation *a, Client *c) {
|
||||||
double zoom;
|
double zoom;
|
||||||
|
@ -661,10 +657,16 @@ resize(GtkWidget *w, GtkAllocation *a, Client *c) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sigchld(int unused) {
|
scroll(Client *c, const Arg *arg) {
|
||||||
if(signal(SIGCHLD, sigchld) == SIG_ERR)
|
gdouble v;
|
||||||
die("Can't install SIGCHLD handler");
|
GtkAdjustment *a;
|
||||||
while(0 < waitpid(-1, NULL, WNOHANG));
|
|
||||||
|
a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
|
||||||
|
v = gtk_adjustment_get_value(a);
|
||||||
|
v += gtk_adjustment_get_step_increment(a) * arg->i;
|
||||||
|
v = MAX(v, 0.0);
|
||||||
|
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
|
||||||
|
gtk_adjustment_set_value(a, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -705,6 +707,13 @@ setup(void) {
|
||||||
reloadcookies();
|
reloadcookies();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sigchld(int unused) {
|
||||||
|
if(signal(SIGCHLD, sigchld) == SIG_ERR)
|
||||||
|
die("Can't install SIGCHLD handler");
|
||||||
|
while(0 < waitpid(-1, NULL, WNOHANG));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
source(Client *c, const Arg *arg) {
|
source(Client *c, const Arg *arg) {
|
||||||
Arg a = { .b = FALSE };
|
Arg a = { .b = FALSE };
|
||||||
|
@ -715,24 +724,6 @@ source(Client *c, const Arg *arg) {
|
||||||
reload(c, &a);
|
reload(c, &a);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
find(Client *c, const Arg *arg) {
|
|
||||||
const char *s;
|
|
||||||
|
|
||||||
s = getatom(c, findprop);
|
|
||||||
gboolean forward = *(gboolean *)arg;
|
|
||||||
webkit_web_view_search_text(c->view, s, FALSE, forward, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
spawn(Client *c, const Arg *arg) {
|
spawn(Client *c, const Arg *arg) {
|
||||||
if(fork() == 0) {
|
if(fork() == 0) {
|
||||||
|
@ -747,15 +738,18 @@ spawn(Client *c, const Arg *arg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
titlechange(WebKitWebView *v, WebKitWebFrame *f, const char *t, Client *c) {
|
stop(Client *c, const Arg *arg) {
|
||||||
c->title = copystr(&c->title, t);
|
if(c->download)
|
||||||
update(c);
|
webkit_download_cancel(c->download);
|
||||||
|
else
|
||||||
|
webkit_web_view_stop_loading(c->view);
|
||||||
|
c->download = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
usage(void) {
|
titlechange(WebKitWebView *v, WebKitWebFrame *f, const char *t, Client *c) {
|
||||||
fputs("surf - simple browser\n", stderr);
|
c->title = copystr(&c->title, t);
|
||||||
die("usage: surf [-e Window] [-x] [uri]\n");
|
update(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -790,6 +784,12 @@ updatewinid(Client *c) {
|
||||||
(int)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
|
(int)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
usage(void) {
|
||||||
|
fputs("surf - simple browser\n", stderr);
|
||||||
|
die("usage: surf [-e Window] [-x] [uri]\n");
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) {
|
windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) {
|
||||||
JSStringRef jsscript;
|
JSStringRef jsscript;
|
||||||
|
|
Loading…
Reference in a new issue