ID:968147
 
(See the best response by NNAAAAHH.)
Code:
winset(src , "challenge" , "is-disabled=true")


Problem description:

If I have previously pushed challenge, it shows little dots around it to show I just clicked it (I guess). If I winset to disable the challenge button while it still has that "last clicked" dot thing around it, the whole game freezes for 10-30 seconds. Why? How do I fix this?

EDIT:

Also while frozen, if I click somewhere else on the screen to "unhighlight" the button, the game stops being frozen so clearly it has something to do with this...

uhm instead of using winset, use winshow
winshow(usr,"challenge",1)

But I want the button to remain on the screen, just grayed out.
Have you tried using winset() to make sure that "is-checked" is false?
No luck. Should I report this as a BYOND bug?
Could you include more on this, possibly a demo including the winset()s you're using and the itnerface you're using for the winset()?
http://ge.tt/21Zx3NN/v/0?c

But really all you need is an interface with a button that is disabled by default, and paste something to this extent:

mob
icon = 'mob.dmi'



turf
button_platform
icon = 'platform.dmi'
Entered(mob/m)
alert(m,"Click the button once so it is highlighted, then leave the platform to reproduce the effect.")
winset(m,"button","is-disabled=false")
Exited(mob/m)
winset(m,"button","is-disabled=true")


grass
icon = 'grass.dmi'
In response to Master Jack
Once I added winset(m,"button","is-checked=false") the only issue was exiting the button_platform would change focus to the button, resulting in your having to click on the map again. But that's easily fixed.
No, it definitely still freezes. If you change the icon from a circle to something that actually has movement states, it does freeze. Beyond that, the entire thing freezes occasionally as well.

So is it safe to say this is a BYOND bug?
In response to Master Jack
I'll test it a few more times, but it stoped randomly freezing on me after I included that line.
In response to Master Jack
turf
button_platform
icon = 'platform.dmi'
Entered(mob/m)
m << "Click the button once so it is highlighted, then leave the platform to reproduce the effect."
winset(m,"button","is-disabled=false")
Exited(mob/m)
winset(m,"button","is-checked=false")
winset(m,"button","is-disabled=true")
winset(m,"map1","focus=true")


grass
icon = 'grass.dmi'

With adding two lines, it runs seamlessly for me.
Doing exactly what you have still freezes occasionally. I don't think it fixes the problem of the lag, it's just focusing on the map hides the problem in the same way clicking anywhere does afterwords. Also making the map have focus still doesn't allow me to walk around or interact until I actually click the screen.

I'll just do a work-around with winshow. I still feel like this is a bug...
In response to Master Jack
Best response
I can't duplicate it after inserting the is-checked=false, so I can't support it being a bug. You're free to report it though.