I’m confused why there exists a specific keyboard/mouse hook for
control-mouse1(-down), but none exists for control-mouse1-up? (mouse1-up seems to be a generic event regardless of which keyboard modifier keys are pressed.)
Is this a bug or what is the purpose of this asymmetric design?
This is an intentional design. None of the modifier keys are present on the “-up” events, because this would be ambiguous. (What happens if the user releases the control key before releasing the mouse button–what event should get sent in that case?)
To avoid ambiguity, we only add the modifier prefix to the normal down event.