Hello, "Alain Schneble (Realize IT GmbH)" <alain.schne...@realize.ch> writes:
> Steps to reproduce: > - if org-descriptive-links is non-nil, invoke M-x org-toggle-link-display > - org-descriptive-links is now expected to be nil > - M-x org-agenda-list > - M-x org-agenda-clockreport-mode (or short: v R) > > Observation (given that there is at least some data being shown in the > clockreport): > 1) clockreport table is misaligned > 2) clockreport table contains descriptive links even though > org-descriptive-links is nil > > Cause: > a) *org-agenda-list* /calls/ *org-agenda-prepare* which in turn /calls/ > *org-agenda-mode* > b) *org-agenda-mode* /calls/ (add-to-invisibility-spec '(org-link)) > In contrast, *org-mode* /calls/ (if org-descriptive-links > (add-to-invisibility-spec '(org-link))), hence makes adding org-link to the > invisibility spec dependent on org-descriptive-links. > c) the clockreport in the agenda list is constructed in > *org-clock-get-clocktable* using a with-temp-buffer in whose context > (org-mode) is called. The clockreport table will therefore be aligned > based on the invisibility spec of org-mode which is different if > org-descriptive-links was set to nil at the time *org-agenda-list* was > called. Thanks for the report and the analysis. > Suggestions: > 1.1) Inherit org-link invisibility spec in *org-clock-get-clocktable* from > the "outer" mode (i.e. org-agenda-mode): > ... > (let ((descriptive-links (org-in-invisibility-spec-p '(org-link)))) > (with-temp-buffer > (org-mode) > (if descriptive-links > (add-to-invisibility-spec '(org-link)) > (remove-from-invisibility-spec '(org-link))) > ... > ) > 1.2) ... or make the call to *add-to-invisibility-spec* in *org-agenda-mode* > dependent on org-descriptive-links as already done by *org-mode* The latter sounds good. Do you want to prepare a patch for that? > Btw, is there a reason why org-descriptive-links is global and not > made buffer-local using make-variable-buffer-local after its defcustom > definition? I had expected it to be buffer-local. If it isn't buffer > local, the displayed links in different org buffers can get > inconsistent with the flag hold in the org-descriptive-links variable. If it is buffer local, we need a way to toggle it globally in all Org buffers, possibly by adding an optional argument to `org-toggle-link-display'. WDYT? Regards, -- Nicolas Goaziou