unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Info-use-header-line
@ 2008-10-18  2:50 David Reitter
  2008-10-18 16:45 ` Info-use-header-line Juri Linkov
  2008-10-18 17:32 ` Info breadcrumbs line (was: Info-use-header-line) Juri Linkov
  0 siblings, 2 replies; 6+ messages in thread
From: David Reitter @ 2008-10-18  2:50 UTC (permalink / raw)
  To: Emacs-Devel devel

Header lines may be set by minor modes and not just the major mode  
being implemented.  An example is tabbar.
Is it a good idea to hide the header line if the user chooses to not  
display a header line in a mode?  I think not.

A really good solution would, by the way, show global and local header  
lines, but I think there's only one header line allowed at this point.



*** info.el	06 Apr 2008 07:51:37 -0400	1.501.2.7
--- info.el	17 Oct 2008 22:46:43 -0400	
***************
*** 3454,3463 ****
     (make-local-variable 'Info-history)
     (make-local-variable 'Info-history-forward)
     (make-local-variable 'Info-index-alternatives)
!   (setq header-line-format
! 	(if Info-use-header-line
! 	    '(:eval (get-text-property (point-min) 'header-line))
! 	  nil)) ; so the header line isn't displayed
     (set (make-local-variable 'tool-bar-map) info-tool-bar-map)
     ;; This is for the sake of the invisible text we use handling  
titles.
     (make-local-variable 'line-move-ignore-invisible)
--- 3454,3462 ----
     (make-local-variable 'Info-history)
     (make-local-variable 'Info-history-forward)
     (make-local-variable 'Info-index-alternatives)
!   (if Info-use-header-line    ; do not override global header lines
!       (setq header-line-format
! 	    '(:eval (get-text-property (point-min) 'header-line))))
     (set (make-local-variable 'tool-bar-map) info-tool-bar-map)
     ;; This is for the sake of the invisible text we use handling  
titles.
     (make-local-variable 'line-move-ignore-invisible)





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Info-use-header-line
  2008-10-18  2:50 Info-use-header-line David Reitter
@ 2008-10-18 16:45 ` Juri Linkov
  2008-10-18 19:08   ` Info-use-header-line Stefan Monnier
  2008-10-18 17:32 ` Info breadcrumbs line (was: Info-use-header-line) Juri Linkov
  1 sibling, 1 reply; 6+ messages in thread
From: Juri Linkov @ 2008-10-18 16:45 UTC (permalink / raw)
  To: David Reitter; +Cc: Emacs-Devel devel

> Header lines may be set by minor modes and not just the major mode being
> implemented.  An example is tabbar.
> Is it a good idea to hide the header line if the user chooses to not
> display a header line in a mode?  I think not.
>
> A really good solution would, by the way, show global and local header
> lines, but I think there's only one header line allowed at this point.

There is a special buffer-local mode tabbar-local-mode, but it requires
explicit enabling in every Info buffer.  So I agree that a simpler
solution is to not overwrite the global value of the header line at all
when Info-use-header-line is nil as implemented in your patch.

-- 
Juri Linkov
http://www.jurta.org/emacs/




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Info breadcrumbs line (was: Info-use-header-line)
  2008-10-18  2:50 Info-use-header-line David Reitter
  2008-10-18 16:45 ` Info-use-header-line Juri Linkov
@ 2008-10-18 17:32 ` Juri Linkov
  2008-10-18 21:58   ` Info breadcrumbs line Stefan Monnier
  1 sibling, 1 reply; 6+ messages in thread
From: Juri Linkov @ 2008-10-18 17:32 UTC (permalink / raw)
  To: emacs-devel

There is one backward incompatible UI change caused by implementing
Info breadcrumbs.

In older Emacs Info versions after visiting an Info node with menu items
or cross-references, typing the first TAB moved point to the first menu
item or cross-reference.  But now the first TAB moves point to a link
in the breadcrumbs line.

It is very inconvenient to type several TABs to skip links in the
breadcrumbs line before starting to navigate links in the body of the Info
node.  When there is a need to go to the first link in the Info node,
I quickly type `TAB RET', but after recent changes it goes to the Top
node.  This is very confusing.

I think we should restore the old behavior by putting point on the next
line after the breadcrumbs line initially, so the first TAB key will go to
the first menu item or cross-reference in the node body.

Then a key to move point in the breadcrumbs line will be `backtab' (with
additional mnemonics of going backward in the Info hierarchy) where every
backtab will put point on the next parent node name in the breadcrumbs
line, so this is a good thing too.  And it is also good to keep point on
the same empty line before the first Info header even when there is no
breadcrumbs line.

Index: lisp/info.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/info.el,v
retrieving revision 1.546
diff -u -r1.546 info.el
--- lisp/info.el	10 Oct 2008 13:47:17 -0000	1.546
+++ lisp/info.el	18 Oct 2008 17:29:30 -0000
@@ -966,6 +966,10 @@
 
 	    (Info-select-node)
 	    (goto-char (point-min))
+	    (forward-line 1)		       ; skip header line
+	    (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line
+	      (forward-line 1))
+
 	    (cond (anchorpos
                    (let ((new-history (list Info-current-file
                                             (substring-no-properties nodename))))

-- 
Juri Linkov
http://www.jurta.org/emacs/




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Info-use-header-line
  2008-10-18 16:45 ` Info-use-header-line Juri Linkov
@ 2008-10-18 19:08   ` Stefan Monnier
  2008-10-20  2:41     ` Info-use-header-line David Reitter
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2008-10-18 19:08 UTC (permalink / raw)
  To: Juri Linkov; +Cc: David Reitter, Emacs-Devel devel

>> Header lines may be set by minor modes and not just the major mode being
>> implemented.  An example is tabbar.
>> Is it a good idea to hide the header line if the user chooses to not
>> display a header line in a mode?  I think not.
>> 
>> A really good solution would, by the way, show global and local header
>> lines, but I think there's only one header line allowed at this point.

> There is a special buffer-local mode tabbar-local-mode, but it requires
> explicit enabling in every Info buffer.  So I agree that a simpler
> solution is to not overwrite the global value of the header line at all
> when Info-use-header-line is nil as implemented in your patch.

There's indeed a conflict between several possible uses of header-lines.
I'm not sure what we should about it in general.  In this specific case,
leaving the header-line alone sounds like a good idea: it doesn't solve
the problem, but allows the user to work around it.


        Stefan




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Info breadcrumbs line
  2008-10-18 17:32 ` Info breadcrumbs line (was: Info-use-header-line) Juri Linkov
@ 2008-10-18 21:58   ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2008-10-18 21:58 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

> There is one backward incompatible UI change caused by implementing
> Info breadcrumbs.

Your patch looks OK.  Feel free to install.


        Stefan




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Info-use-header-line
  2008-10-18 19:08   ` Info-use-header-line Stefan Monnier
@ 2008-10-20  2:41     ` David Reitter
  0 siblings, 0 replies; 6+ messages in thread
From: David Reitter @ 2008-10-20  2:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Juri Linkov, Emacs-Devel devel

[-- Attachment #1: Type: text/plain, Size: 1185 bytes --]

On 18 Oct 2008, at 15:08, Stefan Monnier wrote:
>
> There's indeed a conflict between several possible uses of header- 
> lines.
> I'm not sure what we should about it in general.  In this specific  
> case,
> leaving the header-line alone sounds like a good idea: it doesn't  
> solve
> the problem, but allows the user to work around it.


OK, I have checked in the change.

There are some other occurrences of the same problem, though:

The following packages offer variables to switch off header line use,  
but set header-line-format to nil in that case:

calendar/diary-lib.el
erc/erc-list.el
erc/erc.el
ibuffer.el

Unconditional setting (but at least header-line-format is usually  
saved and restored):

elp.el (elp-results)
net/newst-treeview.el
net/rcirc.el
org/org-colview.el
proced.el
progmodes/gdb-ui.el
ruler-mode.el
ses.el

Correct use:
buff-menu.el
info.el (now)

I suggest to change the first four instances, because variables  
advertise a certain functionality and we currently don't quite keep  
this promise.  In the other cases, one would have to review whether  
the header line can and should be optionally switched off.  That could  
be done after the release.

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-10-20  2:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-18  2:50 Info-use-header-line David Reitter
2008-10-18 16:45 ` Info-use-header-line Juri Linkov
2008-10-18 19:08   ` Info-use-header-line Stefan Monnier
2008-10-20  2:41     ` Info-use-header-line David Reitter
2008-10-18 17:32 ` Info breadcrumbs line (was: Info-use-header-line) Juri Linkov
2008-10-18 21:58   ` Info breadcrumbs line Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).