Re: [BUG] org-element-at-point warning with org-timer in agenda [9.7-pre, release_N/A-N/A-b45b39 @ /home/bhavin/.emacs.d/elpa/org-9.7pre0.20240405.140341/, ]

2024-04-10 Thread Ihor Radchenko
Bhavin Gandhi  writes:

> When running org-timer-set-timer (bound to `;') in an Org agenda buffer,
> I get following warning:
>
> ⛔ Warning (org-element): ‘org-element-at-point’ cannot be used in non-Org
> buffer # (org-agenda-mode)

Fixed, on main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=129a18abf

I used an alternative fix, making use of some agenda-specific data.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: [BUG] org-element-at-point warning with org-timer in agenda [9.7-pre, release_N/A-N/A-b45b39 @ /home/bhavin/.emacs.d/elpa/org-9.7pre0.20240405.140341/, ]

2024-04-09 Thread Bhavin Gandhi
Here is a patch which fixes the problem.
From d34e2cd1a1e830acc6d1575a32522f8e9e5b4d99 Mon Sep 17 00:00:00 2001
From: Bhavin Gandhi 
Date: Mon, 8 Apr 2024 23:33:29 +0530
Subject: [PATCH] org-timer-set-timer: Don't run `org-entry-get' in non Org
 buffers

* lisp/org-timer.el (org-timer-set-timer): Avoid calling org-entry-get
when we are not in an Org buffer. In case of Agenda buffer, we jump to
the entry first.

It was triggering an org-element warning when used in Agenda buffer,
and was failing to find the value of Effort property.

This patch is based on a fix by Ihor
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=a1fa52197

Reported-by: Bhavin Gandhi 
Link: https://list.orgmode.org/CAOn=hbez7-4wfg2m1-mshqawvv0mysvlauyp9_gk6mrsbtz...@mail.gmail.com/
---
 lisp/org-timer.el | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lisp/org-timer.el b/lisp/org-timer.el
index 8bb8be7be..23bb1c31c 100644
--- a/lisp/org-timer.el
+++ b/lisp/org-timer.el
@@ -424,9 +424,14 @@ using three \\[universal-argument] prefix arguments."
 	   (if (numberp org-timer-default-timer)
 	   (number-to-string org-timer-default-timer)
 	 org-timer-default-timer))
-	 (effort-minutes (let ((effort (org-entry-get nil org-effort-property)))
-			   (when (org-string-nw-p effort)
-			 (floor (org-duration-to-minutes effort)
+	 (effort-minutes
+  ;; When called from Org buffer, remain in position.
+  ;; When called from Agenda buffer, jump to headline position first.
+  (org-with-point-at (org-get-at-bol 'org-marker)
+(if (derived-mode-p 'org-mode)
+(let ((effort (org-entry-get nil org-effort-property)))
+		  (when (org-string-nw-p effort)
+		(floor (org-duration-to-minutes effort)))
 	 (minutes (or (and (numberp opt) (number-to-string opt))
 		  (and (not (equal opt '(64)))
 			   effort-minutes
-- 
2.44.0



[BUG] org-element-at-point warning with org-timer in agenda [9.7-pre, release_N/A-N/A-b45b39 @ /home/bhavin/.emacs.d/elpa/org-9.7pre0.20240405.140341/, ]

2024-04-07 Thread Bhavin Gandhi
When running org-timer-set-timer (bound to `;') in an Org agenda buffer,
I get following warning:

⛔ Warning (org-element): ‘org-element-at-point’ cannot be used in non-Org
buffer # (org-agenda-mode)

I tried to understand the code of org-timer-set-timer. It runs
(org-entry-get nil org-effort-property) initially to find the Efforts
property. This in-turn calls org-element-at-point.

I think the solution could be similar to
https://orgmode.org/list/m2leawo9zo@hazy.com where we go to that
heading first, and then call org-entry-get?

Also, I guess it should check if the buffer is org-agenda-mode or
org-mode before running the org-entry-get.
Is this a good approach? If yes, I would like to come up with a patch for
this.

Emacs  : GNU Emacs 29.3 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
3.24.41, cairo version 1.18.0)
 of 2024-03-25
Package: Org mode version 9.7-pre (release_N/A-N/A-b45b39 @
/home/bhavin/.emacs.d/elpa/org-9.7pre0.20240405.140341/)

-- 
Bhavin Gandhi (bhavin192) | https://geeksocket.in