The following program prompts for an integer, creates a graphics area and then has an OK button. If the user tries to change the integer, and then moves the mouse over the graphics area the integer gets reset to the initial value of 2000. If the check_on_focus_loss line is deleted, then the reset value is retained because the default full_check is used. However, I really want to use check_on_focus_loss because; with %il imposing a lower limit of 1950, it can be annoying trying to type in the integer rather than using the up and down arrows. Removing full_mouse_input from %gr also solves the problem, but I need that for interacting with the graphics area.
How can I get the program to retain the changed input as the mouse is moved over the graphics area?
MODULE m
CONTAINS
FUNCTION f()
INTEGER :: f
f=1
RETURN
END FUNCTION f
END MODULE m
WINAPP
PROGRAM p
!
USE clrwin, ONLY: winio@
USE m
!
INTEGER :: i=2000
!
iw=winio@('%co[check_on_focus_loss]&')
iw=winio@('%il&',1950,2011)
iw=winio@('%dd%rd &',1,i)
iw=winio@('%^gr[full_mouse_input] &',100,100,f)
iw=winio@('%bt[OK]')
!
END PROGRAM p