]> git.eshelyaron.com Git - emacs.git/commitdiff
(get_window_cursor_type): Implement documented behavior
authorRichard M. Stallman <rms@gnu.org>
Tue, 2 Oct 2007 02:13:15 +0000 (02:13 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 2 Oct 2007 02:13:15 +0000 (02:13 +0000)
for cursor-in-non-selected-windows = t.

src/ChangeLog
src/xdisp.c

index 0c79acd6b45da90ec4a55e743b91f4e048c97099..068ad522546395bc90261d92fdf42dc1f742451c 100644 (file)
@@ -1,3 +1,8 @@
+2007-10-02  Richard Stallman  <rms@gnu.org>
+
+       * xdisp.c (get_window_cursor_type): Implement documented behavior
+       for cursor-in-non-selected-windows = t.
+
 2007-09-29  Juri Linkov  <juri@jurta.org>
 
        * emacs.c (standard_args): Change priority of "--no-splash"
index a1c027b895e42740ade42056bc0e8cd421330397..ab4263fd83c443be845e064e0d2c185b227c876b 100644 (file)
@@ -21299,7 +21299,7 @@ get_window_cursor_type (w, glyph, width, active_cursor)
       non_selected = 1;
     }
 
-  /* Nonselected window or nonselected frame.  */
+  /* Detect a nonselected window or nonselected frame.  */
   else if (w != XWINDOW (f->selected_window)
 #ifdef HAVE_WINDOW_SYSTEM
           || f != FRAME_X_DISPLAY_INFO (f)->x_highlight_frame
@@ -21318,13 +21318,6 @@ get_window_cursor_type (w, glyph, width, active_cursor)
   if (NILP (b->cursor_type))
     return NO_CURSOR;
 
-  /* Use cursor-in-non-selected-windows for non-selected window or frame.  */
-  if (non_selected)
-    {
-      alt_cursor = b->cursor_in_non_selected_windows;
-      return get_specified_cursor_type (alt_cursor, width);
-    }
-
   /* Get the normal cursor type for this window.  */
   if (EQ (b->cursor_type, Qt))
     {
@@ -21334,6 +21327,21 @@ get_window_cursor_type (w, glyph, width, active_cursor)
   else
     cursor_type = get_specified_cursor_type (b->cursor_type, width);
 
+  /* Use cursor-in-non-selected-windows instead
+     for non-selected window or frame.  */
+  if (non_selected)
+    {
+      alt_cursor = b->cursor_in_non_selected_windows;
+      if (!EQ (Qt, alt_cursor))
+       return get_specified_cursor_type (alt_cursor, width);
+      /* t means modify the normal cursor type.  */
+      if (cursor_type == FILLED_BOX_CURSOR)
+       cursor_type = HOLLOW_BOX_CURSOR;
+      else if (cursor_type == BAR_CURSOR && *width > 1)
+       --*width;
+      return cursor_type;
+    }
+
   /* Use normal cursor if not blinked off.  */
   if (!w->cursor_off_p)
     {