aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Dieter Plaetinck <dieter@plaetinck.be>2009-09-03 18:38:04 +0200
committerGravatar Dieter Plaetinck <dieter@plaetinck.be>2009-09-03 18:38:04 +0200
commit43466271e2e1cf834cd442dfcc95dfd961a31a03 (patch)
treefcc1488878576a72a48b129a2eb92c58703681d6
parent0b991a89942a4d157b4ad64f6dc03708bd2c6586 (diff)
VARIABLE_SET event
-rw-r--r--docs/TODO1
-rw-r--r--uzbl.c6
-rw-r--r--uzbl.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/docs/TODO b/docs/TODO
index 3c61b14..abc5b44 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -3,6 +3,7 @@
* document the dispatching mechanism, all events, how to get started with sample dispatcher
* add key_release callback and event
* remove all binding ('bind = ' etc.) stuff and port to new system
+* VARIABLE_SET for all types (but probably not useful for custom vars)
= key handling (example dispatcher.sh) =
* on escape:
diff --git a/uzbl.c b/uzbl.c
index 0765d13..40568f4 100644
--- a/uzbl.c
+++ b/uzbl.c
@@ -212,6 +212,7 @@ const char *event_table[LAST_EVENT] = {
"COOKIE" ,
"NEW_WINDOW" ,
"SELECTION_CHANGED",
+ "VARIABLE_SET",
};
@@ -1959,6 +1960,7 @@ set_var_value(const gchar *name, gchar *val) {
char *endp = NULL;
char *buf = NULL;
char *invalid_chars = "^°!\"§$%&/()=?'`'+~*'#-.:,;@<>| \\{}[]¹²³¼½";
+ GString *msg;
if( (c = g_hash_table_lookup(uzbl.comm.proto_var, name)) ) {
if(!c->writeable) return FALSE;
@@ -1968,6 +1970,10 @@ set_var_value(const gchar *name, gchar *val) {
buf = expand(val, 0);
g_free(*c->ptr.s);
*c->ptr.s = buf;
+ msg = g_string_new(name);
+ g_string_append_printf(msg, " %s", buf);
+ send_event(VARIABLE_SET, msg->str);
+ g_string_free(msg,TRUE);
} else if(c->type == TYPE_INT) {
buf = expand(val, 0);
*c->ptr.i = (int)strtoul(buf, &endp, 10);
diff --git a/uzbl.h b/uzbl.h
index 986d080..7f6ef2b 100644
--- a/uzbl.h
+++ b/uzbl.h
@@ -190,6 +190,7 @@ enum event_type {
KEY_PRESS, KEY_RELEASE, DOWNLOAD_REQ, COMMAND_EXECUTED,
LINK_HOVER, TITLE_CHANGED, GEOMETRY_CHANGED,
WEBINSPECTOR, COOKIE, NEW_WINDOW, SELECTION_CHANGED,
+ VARIABLE_SET,
/* must be last entry */
LAST_EVENT