|  | @@ -29,6 +29,13 @@ window.Popup = new (class {
 | 
	
		
			
				|  |  |    open(name) {
 | 
	
		
			
				|  |  |      const self = this;
 | 
	
		
			
				|  |  |      const popupName = `${name}Popup`;
 | 
	
		
			
				|  |  | +    const $contentWrapper = $('.content-wrapper')
 | 
	
		
			
				|  |  | +    if ($contentWrapper.length > 0) {
 | 
	
		
			
				|  |  | +      const contentWrapper = $contentWrapper[0];
 | 
	
		
			
				|  |  | +      this._getTopStack().scrollTop = contentWrapper.scrollTop;
 | 
	
		
			
				|  |  | +      // scroll from e.g. delete comment to the top (where the confirm button is)
 | 
	
		
			
				|  |  | +      $contentWrapper.scrollTop(0);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      function clickFromPopup(evt) {
 | 
	
		
			
				|  |  |        return $(evt.target).closest('.js-pop-over').length !== 0;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -129,6 +136,19 @@ window.Popup = new (class {
 | 
	
		
			
				|  |  |    /// steps back is greater than the popup stack size, the popup will be closed.
 | 
	
		
			
				|  |  |    back(n = 1) {
 | 
	
		
			
				|  |  |      if (this._stack.length > n) {
 | 
	
		
			
				|  |  | +      const $contentWrapper = $('.content-wrapper')
 | 
	
		
			
				|  |  | +      if ($contentWrapper.length > 0) {
 | 
	
		
			
				|  |  | +        const contentWrapper = $contentWrapper[0];
 | 
	
		
			
				|  |  | +        const stack = this._stack[this._stack.length - 1 - n];
 | 
	
		
			
				|  |  | +        if (contentWrapper.scrollTopMax && stack.scrollTop > contentWrapper.scrollTopMax) {
 | 
	
		
			
				|  |  | +          // sometimes scrollTopMax is lower than scrollTop, so i need this dirty hack
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            $contentWrapper.scrollTop(stack.scrollTop);
 | 
	
		
			
				|  |  | +          }, 6);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // restore the old popup scroll position
 | 
	
		
			
				|  |  | +        $contentWrapper.scrollTop(stack.scrollTop);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        _.times(n, () => this._stack.pop());
 | 
	
		
			
				|  |  |        this._dep.changed();
 | 
	
		
			
				|  |  |      } else {
 |