shouldn't it just be the return type of draw if every one must??
why is this different from regular widget_at? why doesn't widget_at contain these?
setting twice should be fine, eg. if you learn new info and branch. not sure why that should be guarded?
please note that this will change once alignment is built in. Right now it's hacky where it translates based on top left.
don't mention run_event here. In general I wouldn't reference other methods unless they're particularly important or notable for the one the doc is on, because it's another easy way to end up with stale docs.
we should impl partialeq for pixelregion so this check can happen properly / harder to mix up order
how about assert_corners!(harness, id, top_left, bot_right)? Unsure how familiar you are with macros, but you can say "pub use " to export them.
should probably not be a directory until it actually gets big enough, assuming you don't already have concrete plans.