   toggleStick: (stick) =>
     isSticking = @getState('sticking') == '1'
 
+    document.body.style.overflow =
+      if !stick || osu.isDesktop()
+        ''
+      else
+        'hidden'
+
     return if stick == isSticking
+
+    box = @box[0]
 
     if stick
       @setState 'sticking', '1'
+      box.dataset.state = 'active'
       target = @fixedBar[0]
+      buttonAction = 'add'
     else
       @deleteState 'sticking'
+      delete box.dataset.state if box.dataset.state?
       target = @container[0]
+      buttonAction = 'remove'
+
+    button.classList[buttonAction] 'js-activated' for button in @toggleButtons
 
     $input = @$input()
     inputFocused = $input.is(':focus')
 
-    target.insertBefore(@box[0], target.firstChild)
+    target.insertBefore(box, target.firstChild)
 
     $input.focus() if inputFocused


  stickOrUnstick: (_e, target) =>
    stick =
      if osu.isMobile()
        @box[0]?.dataset.state == 'active'
      else
        target == 'forum-topic-reply'

    @toggleStick(stick)


    localStorage.setItem "forum-topic-reply--#{document.location.pathname}--#{key}", value


  activate: =>
    @setState 'active', '1'

    @stickyFooter.markerEnable @marker()
    $.publish 'stickyFooter:check'
