]> git.eshelyaron.com Git - emacs.git/commitdiff
(init_iterator): Set iterator's extra_line_spacing
authorGerd Moellmann <gerd@gnu.org>
Mon, 24 Apr 2000 13:57:11 +0000 (13:57 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 24 Apr 2000 13:57:11 +0000 (13:57 +0000)
from buffer or frame.
(automatic_hscrolling_p): New variable.
(hscroll_windows): Scroll windows horizontally only if automatic
hscrolling is allowed.
(syms_of_xdisp): New variable `automatic-hscrolling'.

src/xdisp.c

index 061a0c8cab86be1fd05fd009418fab0007405956..ef9add8af448d129293e4ed399e189df2882a68e 100644 (file)
@@ -512,6 +512,11 @@ static int last_max_ascent, last_height;
 int trace_redisplay_p;
 #endif
 
+/* Non-zero means automatically scroll windows horizontally to make
+   point visible.  */
+
+int automatic_hscrolling_p;
+
 /* Value returned from text property handlers (see below).  */
 
 enum prop_handled
@@ -1195,6 +1200,16 @@ init_iterator (it, w, charpos, bytepos, row, base_face_id)
   it->w = w;
   it->f = XFRAME (w->frame);
 
+  /* Extra space between lines (on window systems only).  */
+  if (base_face_id == DEFAULT_FACE_ID
+      && FRAME_WINDOW_P (it->f))
+    {
+      if (NATNUMP (current_buffer->extra_line_spacing))
+       it->extra_line_spacing = XFASTINT (current_buffer->extra_line_spacing);
+      else if (it->f->extra_line_spacing > 0)
+       it->extra_line_spacing = it->f->extra_line_spacing;
+    }
+
   /* If realized faces have been removed, e.g. because of face
      attribute changes of named faces, recompute them.  */
   if (FRAME_FACE_CACHE (it->f)->used == 0)
@@ -6913,9 +6928,16 @@ static int
 hscroll_windows (window)
      Lisp_Object window;
 {
-  int hscrolled_p = hscroll_window_tree (window);
-  if (hscrolled_p)
-    clear_desired_matrices (XFRAME (WINDOW_FRAME (XWINDOW (window))));
+  int hscrolled_p;
+  
+  if (automatic_hscrolling_p)
+    {
+      hscrolled_p = hscroll_window_tree (window);
+      if (hscrolled_p)
+       clear_desired_matrices (XFRAME (WINDOW_FRAME (XWINDOW (window))));
+    }
+  else
+    hscrolled_p = 0;
   return hscrolled_p;
 }
 
@@ -13040,6 +13062,10 @@ If nil, don't resize.");
     "*Non-nil means display a hollow cursor in non-selected windows.\n\
 Nil means don't display a cursor there.");
   cursor_in_non_selected_windows = 1;
+  
+  DEFVAR_BOOL ("automatic-hscrolling", &automatic_hscrolling_p,
+    "*Non-nil means scroll the display automatically to make point visible.");
+  automatic_hscrolling_p = 1;
 }