diff --git a/src/terminal.go b/src/terminal.go
index cb8f13c96ca7b70ebed70aedefe7b2a244310829..7bc79398821b3ea4625119ca04eb07b91a1fc10c 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -1422,13 +1422,13 @@ func (t *Terminal) executeCommand(template string, forcePlus bool, background bo
 		cmd.Stderr = os.Stderr
 		t.tui.Pause(true)
 		cmd.Run()
-		t.tui.Resume(true)
+		t.tui.Resume(true, false)
 		t.redraw()
 		t.refresh()
 	} else {
 		t.tui.Pause(false)
 		cmd.Run()
-		t.tui.Resume(false)
+		t.tui.Resume(false, false)
 	}
 	cleanTemporaryFiles()
 }
@@ -1701,7 +1701,7 @@ func (t *Terminal) Loop() {
 					case reqRefresh:
 						t.suppress = false
 					case reqReinit:
-						t.tui.Resume(t.fullscreen)
+						t.tui.Resume(t.fullscreen, true)
 						t.redraw()
 					case reqRedraw:
 						t.redraw()
diff --git a/src/tui/dummy.go b/src/tui/dummy.go
index 76a16e5594b9f8c63a8dd15b164e7761a4a58415..8fce77e5ba1350aa1d690aac6af7357c25b5b941 100644
--- a/src/tui/dummy.go
+++ b/src/tui/dummy.go
@@ -25,12 +25,12 @@ const (
 	Reverse          = Attr(1 << 6)
 )
 
-func (r *FullscreenRenderer) Init()       {}
-func (r *FullscreenRenderer) Pause(bool)  {}
-func (r *FullscreenRenderer) Resume(bool) {}
-func (r *FullscreenRenderer) Clear()      {}
-func (r *FullscreenRenderer) Refresh()    {}
-func (r *FullscreenRenderer) Close()      {}
+func (r *FullscreenRenderer) Init()             {}
+func (r *FullscreenRenderer) Pause(bool)        {}
+func (r *FullscreenRenderer) Resume(bool, bool) {}
+func (r *FullscreenRenderer) Clear()            {}
+func (r *FullscreenRenderer) Refresh()          {}
+func (r *FullscreenRenderer) Close()            {}
 
 func (r *FullscreenRenderer) DoesAutoWrap() bool { return false }
 func (r *FullscreenRenderer) GetChar() Event     { return Event{} }
diff --git a/src/tui/light.go b/src/tui/light.go
index 3ff84870a4bb3166535f6f3de39b26ca920e4571..cccf3a9b53ee9b07f8eb44c64eb6e2f2071549a9 100644
--- a/src/tui/light.go
+++ b/src/tui/light.go
@@ -561,7 +561,7 @@ func (r *LightRenderer) Pause(clear bool) {
 	}
 }
 
-func (r *LightRenderer) Resume(clear bool) {
+func (r *LightRenderer) Resume(clear bool, sigcont bool) {
 	r.setupTerminal()
 	if clear {
 		if r.fullscreen {
@@ -570,10 +570,10 @@ func (r *LightRenderer) Resume(clear bool) {
 			r.rmcup()
 		}
 		r.flush()
-	} else if !r.fullscreen && r.mouse {
-		// NOTE: Resume(false) is only called on SIGCONT after SIGSTOP.
-		// And It's highly likely that the offset we obtained at the beginning will
-		// no longer be correct, so we simply disable mouse input.
+	} else if sigcont && !r.fullscreen && r.mouse {
+		// NOTE: SIGCONT (Coming back from CTRL-Z):
+		// It's highly likely that the offset we obtained at the beginning is
+		// no longer correct, so we simply disable mouse input.
 		r.csi("?1000l")
 		r.mouse = false
 	}
diff --git a/src/tui/tcell.go b/src/tui/tcell.go
index db8916553e21d02e2e5454e36b5e18226ef4cb67..4d8096d36d311f6df8809e55f23bc9801f97830b 100644
--- a/src/tui/tcell.go
+++ b/src/tui/tcell.go
@@ -394,7 +394,7 @@ func (r *FullscreenRenderer) Pause(clear bool) {
 	}
 }
 
-func (r *FullscreenRenderer) Resume(clear bool) {
+func (r *FullscreenRenderer) Resume(clear bool, sigcont bool) {
 	if clear {
 		r.initScreen()
 	}
diff --git a/src/tui/tui.go b/src/tui/tui.go
index 4968b3664ebdda3a8b394a63c660118a33e6e2aa..f5ebb1616db0275d49b08defb8411ce1e1524d6c 100644
--- a/src/tui/tui.go
+++ b/src/tui/tui.go
@@ -275,7 +275,7 @@ func MakeTransparentBorder() BorderStyle {
 type Renderer interface {
 	Init()
 	Pause(clear bool)
-	Resume(clear bool)
+	Resume(clear bool, sigcont bool)
 	Clear()
 	RefreshWindows(windows []Window)
 	Refresh()