diff options
author | Dieter Plaetinck <dieter@plaetinck.be> | 2009-09-03 18:38:04 +0200 |
---|---|---|
committer | Dieter Plaetinck <dieter@plaetinck.be> | 2009-09-03 18:38:04 +0200 |
commit | 43466271e2e1cf834cd442dfcc95dfd961a31a03 (patch) | |
tree | fcc1488878576a72a48b129a2eb92c58703681d6 | |
parent | 0b991a89942a4d157b4ad64f6dc03708bd2c6586 (diff) |
VARIABLE_SET event
-rw-r--r-- | docs/TODO | 1 | ||||
-rw-r--r-- | uzbl.c | 6 | ||||
-rw-r--r-- | uzbl.h | 1 |
3 files changed, 8 insertions, 0 deletions
@@ -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: @@ -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); @@ -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 |