I wrote a couple signal events that allowed me to trigger scripts when the text in the active editbox changed or was cleared. Something similar could be applied here:
on *:start:if ($timer(irt) == $null) irt_chk
on *:input:*:if ($timer(irt) == $null) irt_chk
on *:close:*:var %w = $window($target).wid | if ($hget(irt, %w)) hdel irt %w
alias input_rawtext return $hget(irt, $window($active).wid)
alias irt_chk {
.timerirt -oim 1 10 if ($isalias(irt_chk)) irt_chk
var %e = $replace($editbox($active), $chr(32), $chr(0160)), %w = $window($active).wid
if (%e != $hget(irt, %w)) {
if (%e == $null) hdel irt %w
else hadd -m irt %w %e
}
}
It should be noted that when I am placeholding spaces I usually use $lf since it can't normally be provided in the input text (while chr(0160) can) but I didn't do that here for clarity's sake.
As you can see, all this does is keep a hash table updated with the text that's in each window; the table entry is deleted when the editbox clears, but the on input event triggers before it can do so. Therefore, if you call $input_rawtext inside an on input event, you will get the text they typed in the editbox.
-myndzi