If the user sets the delay as 0 seconds, the screenshot will be taken without any delay as expected. But when the screenshooter is launched afterwards the delay will appear as 1s. This is the reason: https://git.xfce.org/apps/xfce4-screenshooter/tree/src/main.c?id=1a9162ede93b1632f2ed9c9a04a07306fbbe3e79#n373
Options: 1) disallow no delay: delay_spinner = gtk_spin_button_new_with_range(1.0, 60.0, 1.0); 2) allow delays as small as 0.5sec in 0.5 steps: delay_spinner = gtk_spin_button_new_with_range(0.5, 60.0, 0.5); 3) continue to allow 0sec delays and load it as is when screenshooter is launched again 4) do nothing :) 1 & 2 options are safer but take away the user freedom. 3 is more liberal and allows users to take screenshots with glitches if that's their will, but removes the confusing behavior: "just set it to 0, why has it changed to 1?". 4 assumes there's nothing worth to change, require the user to always change it 0 if he/she really wants to.
Yet more options: 5) gnome-screenshot defaults to 200ms delay when the interactive window is launched, we could use this hack 6) check if it's possible to immediately hide the window contents (and decoration), then close it and take the screenshot. This is especially useful when using animated window compositors. 1 - https://git.gnome.org/browse/gnome-screenshot/tree/src/screenshot-application.c#n616
Andre Miranda referenced this bugreport in commit d789db863a4824567fde1fbe388e9615b7b5ecfb Allow and remember 0sec delay for all regions (Bug #13763) https://git.xfce.org/apps/xfce4-screenshooter/commit?id=d789db863a4824567fde1fbe388e9615b7b5ecfb
In the end, I chose the allow and remember 0sec delays and use a minimal 200ms delay when necessary to avoid glitches (it works surprisingly well). Other than that, now it's possible to define delays for the selection region mode!