on develop help sign in
Fix flickering issue using lazy

Now that getChecked does not cause a sync point until its result is used we can fix the flicker issue by avoiding using the result in checkedChangedBySetChecked.

commitd9842742183a800cf1f98f89d42d849d52dd2d67 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateFri 9 Dec 2016, 10:48 (10 years ago) parent00c72f5
1 file changed+4−4
src/Reflex/Dom/Builder/Immediate.hs+4−4
src/Reflex/Dom/Builder/Immediate.hs+4−4
@@ -363,10 +363,10 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
363363 Input.getChecked domInputElement
364364 checkedChangedBySetChecked <- performEvent $ ffor (_inputElementConfig_setChecked cfg) $ \newChecked -> do
365365 oldChecked <- Input.getChecked domInputElement
366− if newChecked /= oldChecked
367− then do Input.setChecked domInputElement newChecked
368− return $ Just newChecked
369− else return Nothing
366+ Input.setChecked domInputElement newChecked
367+ return $ if newChecked /= oldChecked
368+ then Just newChecked
369+ else Nothing
370370 c <- holdDyn (_inputElementConfig_initialChecked cfg) $ leftmost
371371 [ fmapMaybe id checkedChangedBySetChecked
372372 , checkedChangedByUI