aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar keis <keijser@gmail.com>2011-03-05 20:24:00 +0100
committerGravatar keis <keijser@gmail.com>2011-03-05 20:24:00 +0100
commit4f6e392f1edf98574ccda1936bc160e27ef84b80 (patch)
treebf3be04501d4299fc2513b75e80e1f692a944829
parentb2001631c3a8eb8ea141b9589927facd0674a731 (diff)
parentcefa7bb4a4e99e6fa7fd7ddcf7866ee60be50fc5 (diff)
Merge branch 'experimental' of git://github.com/Dieterbe/uzbl into scrollbars
-rw-r--r--README1
-rw-r--r--extras/vim/syntax/uzbl.vim13
-rw-r--r--src/callbacks.c55
-rw-r--r--src/callbacks.h6
-rw-r--r--src/uzbl-core.c8
-rw-r--r--src/uzbl-core.h1
6 files changed, 53 insertions, 31 deletions
diff --git a/README b/README
index d20cbd2..3ac9a28 100644
--- a/README
+++ b/README
@@ -356,6 +356,7 @@ file).
stylesheet.
* `resizable_text_areas`: Whether text areas can be resized (default 0).
* `default_encoding`: The default text encoding (default "iso-8859-1").
+* `current_encoding`: This can be set to force a text encoding.
* `enforce_96_dpi`: Enforce a resolution of 96 DPI (default 1).
* `caret_browsing`: Whether the caret is enabled in the text portion of pages
(default 0).
diff --git a/extras/vim/syntax/uzbl.vim b/extras/vim/syntax/uzbl.vim
index bf7108c..1a4172b 100644
--- a/extras/vim/syntax/uzbl.vim
+++ b/extras/vim/syntax/uzbl.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Uzbl config syntax
-" Maintainer: Mason Larobina <mason.larobina@gmail.com>
-" Contributors: Gregor Uhlenheuer (kongo2002)
+" Maintainer: Gregor Uhlenheuer (kongo2002) <kongo2002@gmail.com>
+" Contributors: Mason Larobina <mason.larobina@gmail.com>
" Pawel Tomak (grodzik) <pawel.tomak@gmail.com>
" Version: 0.1
"
@@ -25,9 +25,6 @@ elseif exists("b:current_syntax")
finish
endif
-" Don't match keywords inside strings
-setl iskeyword=!-~,192-255
-
syn keyword uzblKeyword back forward scroll reload reload_ign_cache stop
syn keyword uzblKeyword zoom_in zoom_out toggle_zoom_type uri script
syn keyword uzblKeyword toggle_status spawn sync_spawn sync_sh sync_spawn_exec
@@ -37,7 +34,11 @@ syn keyword uzblKeyword request menu_add menu_link_add menu_image_add
syn keyword uzblKeyword menu_editable_add menu_separator menu_link_separator
syn keyword uzblKeyword menu_image_separator menu_editable_separator
syn keyword uzblKeyword menu_remove menu_link_remove menu_image_remove
-syn keyword uzblKeyword menu_editable_remove hardcopy include js sh
+syn keyword uzblKeyword menu_editable_remove hardcopy include
+
+" Match 'js' and 'sh' only without a dot in front
+syn match uzblKeyword /\.\@<!sh\s\+/
+syn match uzblKeyword /\.\@<!js\s\+/
" Comments
syn match uzblTodo /TODO:/ contained
diff --git a/src/callbacks.c b/src/callbacks.c
index a12d51c..351d97e 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -291,6 +291,13 @@ cmd_caret_browsing() {
}
void
+set_current_encoding() {
+ webkit_web_view_set_custom_encoding(uzbl.gui.web_view,
+ uzbl.behave.current_encoding);
+}
+
+
+void
cmd_fifo_dir() {
uzbl.behave.fifo_dir = init_fifo(uzbl.behave.fifo_dir);
}
@@ -452,29 +459,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
@@ -489,20 +512,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;
@@ -1004,7 +1013,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 a026f46..6b76ee6 100644
--- a/src/callbacks.h
+++ b/src/callbacks.h
@@ -110,6 +110,9 @@ void
cmd_default_encoding();
void
+set_current_encoding();
+
+void
cmd_enforce_96dpi();
void
@@ -158,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/uzbl-core.c b/src/uzbl-core.c
index ef509a4..4e1a7d8 100644
--- a/src/uzbl-core.c
+++ b/src/uzbl-core.c
@@ -131,6 +131,7 @@ const struct var_name_to_ptr_t {
{ "stylesheet_uri", PTR_V_STR(uzbl.behave.style_uri, 1, cmd_style_uri)},
{ "resizable_text_areas", PTR_V_INT(uzbl.behave.resizable_txt, 1, cmd_resizable_txt)},
{ "default_encoding", PTR_V_STR(uzbl.behave.default_encoding, 1, cmd_default_encoding)},
+ { "current_encoding", PTR_V_STR(uzbl.behave.current_encoding, 1, set_current_encoding)},
{ "enforce_96_dpi", PTR_V_INT(uzbl.behave.enforce_96dpi, 1, cmd_enforce_96dpi)},
{ "caret_browsing", PTR_V_INT(uzbl.behave.caret_browsing, 1, cmd_caret_browsing)},
{ "scrollbars_visible", PTR_V_INT(uzbl.gui.scrollbars_visible, 1, cmd_scrollbars_visibility)},
@@ -762,7 +763,7 @@ eval_js(WebKitWebView * web_view, gchar *script, GString *result, const char *fi
js_script = JSStringCreateWithUTF8CString(script);
js_file = JSStringCreateWithUTF8CString(file);
js_result = JSEvaluateScript(context, js_script, globalobject, js_file, 0, &js_exc);
- if (js_result && !JSValueIsUndefined(context, js_result)) {
+ if (result && js_result && !JSValueIsUndefined(context, js_result)) {
js_result_string = JSValueToStringCopy(context, js_result, NULL);
js_result_size = JSStringGetMaximumUTF8CStringSize(js_result_string);
@@ -1161,8 +1162,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);
@@ -1420,6 +1423,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 484f670..91ccf65 100644
--- a/src/uzbl-core.h
+++ b/src/uzbl-core.h
@@ -185,6 +185,7 @@ typedef struct {
gchar* style_uri;
guint resizable_txt;
gchar* default_encoding;
+ gchar* current_encoding;
guint enforce_96dpi;
gchar *inject_html;
guint caret_browsing;