The following code executes properly for some choices of initial points and parameter c, but fails for other choices. Could the failure be due to computation outside of the defined t, x, and y ranges? If so, I don't know how to stop the computation with a WhenEvent option.
Manipulate[ tmin = -20; tmax = 20; xmin = -3 Pi; xmax = 3 Pi; ymin = -4.5; ymax = 4.5; z[t_, c_, x0_, y0_] := {x[t], y[t]} /. First@NDSolve[{x'[t] == y[t], y'[t] == -Sin[x[t]] - c*y[t], x[0] == x0, y[0] == y0}, {x[t], y[t]}, {t, tmin, tmax}]; ClickPane[ Show[ ParametricPlot[g, {t, tmin, tmax}, PlotRange -> {{-3.2 Pi, 3.2 Pi}, {-4.3, 4.3}}, Frame -> True, Axes -> None, ImageSize -> 700, PlotStyle -> Black], vf, Epilog -> {PointSize[Large], Point[sp]}], (AppendTo[g, z[t, c, #[[1]], #[[2]]]]; {t0, x0} = #; AppendTo[sp, #]) &], {{c, 0.5, "c"}, 0, Sqrt[2], 0.01}, Row[{Button["Delete all integral curves", {g = {{}, Axes -> None}; sp = {}},ImageSize -> {150, 20}], Spacer[20], Button["Reset c", {c = 0.5}, ImageSize -> {50, 20}]}], SaveDefinitions -> True, Initialization :> {(g = {{}, Axes -> None}; sp = {}; {x0, t0} = {-1, -1}), vf := VectorPlot[{y, -Sin[x] - c*y}, {x, xmin, xmax}, {y, ymin, ymax}, VectorPoints -> {22, 15}, PerformanceGoal -> "Quality", VectorScale -> {0.03, 1.3, None}, PerformanceGoal -> "Speed"] } ] With c=0.5 click on a point in the window to get a solution through that point. After about 6 clicks, the solution is not plotted. Two error messages are posted: 1. NDSolve::dsvar: -19.9992 cannot be used as a variable. 2. ReplaceAll::reps: (yadayadayada..... )

zoutside ofManipulate, and everything will work just fine. Also, you will notice that this will stop the continuous updating that was plaguing yourManipulatebefore. It will only update when a mouse click is received. $\endgroup$