diff --git a/gptel-curl.el b/gptel-curl.el index 7426135..581b577 100644 --- a/gptel-curl.el +++ b/gptel-curl.el @@ -238,10 +238,16 @@ PROCESS and _STATUS are process parameters." (when gptel-mode (gptel--update-status (format " Response Error: %s" http-msg) 'error)))) - (with-current-buffer gptel-buffer - (run-hook-with-args 'gptel-post-response-functions - (marker-position start-marker) - (marker-position (or tracking-marker start-marker))))) + ;; Run hook in visible window to set window-point, BUG #269 + (if-let ((gptel-window (get-buffer-window gptel-buffer 'visible))) + (with-selected-window gptel-window + (run-hook-with-args 'gptel-post-response-functions + (marker-position start-marker) + (marker-position (or tracking-marker start-marker)))) + (with-current-buffer gptel-buffer + (run-hook-with-args 'gptel-post-response-functions + (marker-position start-marker) + (marker-position (or tracking-marker start-marker)))))) (setf (alist-get process gptel-curl--process-alist nil 'remove) nil) (kill-buffer proc-buf))) diff --git a/gptel.el b/gptel.el index 7587082..1fecdb0 100644 --- a/gptel.el +++ b/gptel.el @@ -1047,8 +1047,13 @@ See `gptel--url-get-response' for details." (gptel--update-status (format " Response Error: %s" status-str) 'error) (message "gptel response error: (%s) %s" - status-str (plist-get info :error))) - (run-hook-with-args 'gptel-post-response-functions response-beg response-end)))) + status-str (plist-get info :error)))) + ;; Run hook in visible window to set window-point, BUG #269 + (if-let ((gptel-window (get-buffer-window gptel-buffer 'visible))) + (with-selected-window gptel-window + (run-hook-with-args 'gptel-post-response-functions response-beg response-end)) + (with-current-buffer gptel-buffer + (run-hook-with-args 'gptel-post-response-functions response-beg response-end))))) (defun gptel-set-topic () "Set a topic and limit this conversation to the current heading.