aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar keis <keijser@gmail.com>2011-03-12 00:24:53 +0100
committerGravatar keis <keijser@gmail.com>2011-03-12 00:24:53 +0100
commit964847d267ef53debae162e2be89d635ddf45c3d (patch)
tree3efe0f35b8ec60cd57711a2f7270b9ed31ada840 /src
parente44414affde4e5497386ce398cc2c40356c4e466 (diff)
parent316d1c03cc7ec7b41d6222a6a723971523763cdf (diff)
Merge branch 'experimental' of git://github.com/Dieterbe/uzbl into clear-cookies
Diffstat (limited to 'src')
-rw-r--r--src/callbacks.c48
-rw-r--r--src/callbacks.h3
-rw-r--r--src/events.c7
-rw-r--r--src/events.h5
-rw-r--r--src/inspector.c4
-rw-r--r--src/io.c8
-rw-r--r--src/uzbl-core.c6
-rw-r--r--src/uzbl-core.h12
8 files changed, 43 insertions, 50 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 470e8dd..deda426 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -455,29 +455,45 @@ void
load_status_change_cb (WebKitWebView* web_view, GParamSpec param_spec) {
(void) param_spec;
- WebKitWebFrame *frame = webkit_web_view_get_main_frame(web_view);
+ WebKitWebFrame *frame;
WebKitLoadStatus status = webkit_web_view_get_load_status(web_view);
switch(status) {
case WEBKIT_LOAD_PROVISIONAL:
- send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL);
+ send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL);
break;
case WEBKIT_LOAD_COMMITTED:
- g_free (uzbl.state.uri);
- GString* newuri = g_string_new (webkit_web_frame_get_uri (frame));
- uzbl.state.uri = g_string_free (newuri, FALSE);
- g_setenv("UZBL_URI", uzbl.state.uri, TRUE);
-
+ frame = webkit_web_view_get_main_frame(web_view);
send_event(LOAD_COMMIT, NULL, TYPE_STR, webkit_web_frame_get_uri (frame), NULL);
break;
case WEBKIT_LOAD_FINISHED:
- send_event(LOAD_FINISH, NULL, TYPE_STR, webkit_web_frame_get_uri(frame), NULL);
+ send_event(LOAD_FINISH, NULL, TYPE_STR, uzbl.state.uri, NULL);
break;
case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT:
break; /* we don't do anything with this (yet) */
case WEBKIT_LOAD_FAILED:
break; /* load_error_cb will handle this case */
}
+}
+
+void
+load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) {
+ (void) page; (void) frame; (void) ud;
+ GError *err = web_err;
+
+ send_event (LOAD_ERROR, NULL,
+ TYPE_STR, uri,
+ TYPE_INT, err->code,
+ TYPE_STR, err->message,
+ NULL);
+}
+
+void
+uri_change_cb (WebKitWebView *web_view, GParamSpec param_spec) {
+ (void) param_spec;
+ g_free (uzbl.state.uri);
+ g_object_get (web_view, "uri", &uzbl.state.uri, NULL);
+ g_setenv("UZBL_URI", uzbl.state.uri, TRUE);
}
void
@@ -492,20 +508,6 @@ selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud) {
}
void
-load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) {
- (void) page;
- (void) frame;
- (void) ud;
- GError *err = web_err;
-
- send_event (LOAD_ERROR, NULL,
- TYPE_STR, uri,
- TYPE_INT, err->code,
- TYPE_STR, err->message,
- NULL);
-}
-
-void
destroy_cb (GtkWidget* widget, gpointer data) {
(void) widget;
(void) data;
@@ -1007,7 +1009,7 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) {
if (mi->context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE) {
GdkEventButton ev;
gint x, y;
- gdk_window_get_pointer(gtk_widget_get_window(v), &x, &y, NULL);
+ gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(v)), &x, &y, NULL);
ev.x = x;
ev.y = y;
mi->hittest = webkit_web_view_get_hit_test_result(v, &ev);
diff --git a/src/callbacks.h b/src/callbacks.h
index ab0c1df..d34b9fa 100644
--- a/src/callbacks.h
+++ b/src/callbacks.h
@@ -161,6 +161,9 @@ void
load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud);
void
+uri_change_cb (WebKitWebView *web_view, GParamSpec param_spec);
+
+void
selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud);
void
diff --git a/src/events.c b/src/events.c
index 174ff75..58dddfc 100644
--- a/src/events.c
+++ b/src/events.c
@@ -92,7 +92,7 @@ send_event_sockets(GPtrArray *sockets, GString *msg) {
}
}
-static void
+void
replay_buffered_events() {
guint i = 0;
@@ -205,6 +205,7 @@ void
key_to_event(guint keyval, gint mode) {
gchar ucs[7];
gint ulen;
+ gchar *keyname;
guint32 ukval = gdk_keyval_to_unicode(keyval);
/* check for printable unicode char */
@@ -219,9 +220,9 @@ key_to_event(guint keyval, gint mode) {
NULL, TYPE_FORMATTEDSTR, ucs, NULL);
}
/* send keysym for non-printable chars */
- else {
+ else if((keyname = gdk_keyval_name(keyval))){
send_event(mode == GDK_KEY_PRESS ? KEY_PRESS : KEY_RELEASE,
- NULL, TYPE_NAME, gdk_keyval_name(keyval), NULL);
+ NULL, TYPE_NAME, keyname , NULL);
}
}
diff --git a/src/events.h b/src/events.h
index 8e75097..bd519a6 100644
--- a/src/events.h
+++ b/src/events.h
@@ -33,10 +33,7 @@ void
event_buffer_timeout(guint sec);
void
-send_event_socket(GString *msg);
-
-void
-send_event_stdout(GString *msg);
+replay_buffered_events();
void
vsend_event(int type, const gchar *custom_event, va_list vargs);
diff --git a/src/inspector.c b/src/inspector.c
index de3dbcd..4c8c890 100644
--- a/src/inspector.c
+++ b/src/inspector.c
@@ -49,7 +49,7 @@ inspector_show_window_cb (WebKitWebInspector* inspector){
(void) inspector;
gtk_widget_show(uzbl.gui.inspector_window);
- send_event(WEBINSPECTOR, "open", NULL);
+ send_event(WEBINSPECTOR, NULL, TYPE_NAME, "open", NULL);
return TRUE;
}
@@ -57,7 +57,7 @@ inspector_show_window_cb (WebKitWebInspector* inspector){
gboolean
inspector_close_window_cb (WebKitWebInspector* inspector){
(void) inspector;
- send_event(WEBINSPECTOR, "close", NULL);
+ send_event(WEBINSPECTOR, NULL, TYPE_NAME, "close", NULL);
return TRUE;
}
diff --git a/src/io.c b/src/io.c
index b84780e..3f8fa2f 100644
--- a/src/io.c
+++ b/src/io.c
@@ -61,7 +61,7 @@ attach_fifo(gchar *path) {
if (g_io_add_watch(chan, G_IO_IN|G_IO_HUP, (GIOFunc) control_fifo, NULL)) {
if (uzbl.state.verbose)
printf ("attach_fifo: created successfully as %s\n", path);
- send_event(FIFO_SET, path, NULL);
+ send_event(FIFO_SET, NULL, TYPE_STR, path, NULL);
uzbl.comm.fifo_path = path;
g_setenv("UZBL_FIFO", uzbl.comm.fifo_path, TRUE);
return TRUE;
@@ -216,8 +216,8 @@ init_connect_socket() {
}
/* replay buffered events */
- if(replay)
- send_event_socket(NULL);
+ if(replay && uzbl.state.event_buffer)
+ replay_buffered_events();
}
@@ -287,7 +287,7 @@ attach_socket(gchar *path, struct sockaddr_un *local) {
if( (chan = g_io_channel_unix_new(sock)) ) {
g_io_add_watch(chan, G_IO_IN|G_IO_HUP, (GIOFunc) control_socket, chan);
uzbl.comm.socket_path = path;
- send_event(SOCKET_SET, path, NULL);
+ send_event(SOCKET_SET, NULL, TYPE_STR, path, NULL);
g_setenv("UZBL_SOCKET", uzbl.comm.socket_path, TRUE);
return TRUE;
}
diff --git a/src/uzbl-core.c b/src/uzbl-core.c
index 3303797..7829555 100644
--- a/src/uzbl-core.c
+++ b/src/uzbl-core.c
@@ -1175,8 +1175,10 @@ parse_command_parts(const gchar *line, GArray *a) {
CommandInfo *c = NULL;
gchar *exp_line = expand(line, 0);
- if(exp_line[0] == '\0')
+ if(exp_line[0] == '\0') {
+ g_free(exp_line);
return NULL;
+ }
/* separate the line into the command and its parameters */
gchar **tokens = g_strsplit(exp_line, " ", 2);
@@ -1405,7 +1407,6 @@ update_title(void) {
}
}
-
void
create_scrolled_win() {
GUI* g = &uzbl.gui;
@@ -1434,6 +1435,7 @@ create_scrolled_win() {
"signal::selection-changed", (GCallback)selection_changed_cb, NULL,
"signal::notify::progress", (GCallback)progress_change_cb, NULL,
"signal::notify::load-status", (GCallback)load_status_change_cb, NULL,
+ "signal::notify::uri", (GCallback)uri_change_cb, NULL,
"signal::load-error", (GCallback)load_error_cb, NULL,
"signal::hovering-over-link", (GCallback)link_hover_cb, NULL,
"signal::navigation-policy-decision-requested", (GCallback)navigation_decision_cb, NULL,
diff --git a/src/uzbl-core.h b/src/uzbl-core.h
index 56f4fac..affd334 100644
--- a/src/uzbl-core.h
+++ b/src/uzbl-core.h
@@ -165,7 +165,6 @@ typedef struct {
gchar* cursive_font_family;
gboolean forward_keys;
- guint modmask;
guint http_debug;
gchar* shell_cmd;
guint view_source;
@@ -192,8 +191,6 @@ typedef struct {
gchar *inject_html;
guint caret_browsing;
guint javascript_windows;
- guint mode;
- gchar* base_url;
gboolean print_version;
/* command list: (key)name -> (value)Command */
@@ -204,14 +201,6 @@ typedef struct {
} Behaviour;
-/* Javascript */
-typedef struct {
- gboolean initialized;
- JSClassDefinition classdef;
- JSClassRef classref;
-} Javascript;
-
-
/* Static information */
typedef struct {
int webkit_major;
@@ -230,7 +219,6 @@ typedef struct {
Network net;
Behaviour behave;
Communication comm;
- Javascript js;
Info info;
Window xwin;