emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/macfns.c


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] Changes to emacs/src/macfns.c
Date: Tue, 15 Mar 2005 22:26:37 -0500

Index: emacs/src/macfns.c
diff -c emacs/src/macfns.c:1.52 emacs/src/macfns.c:1.53
*** emacs/src/macfns.c:1.52     Fri Mar  4 11:08:54 2005
--- emacs/src/macfns.c  Wed Mar 16 03:26:37 2005
***************
*** 149,161 ****
  Lisp_Object Qsuppress_icon;
  Lisp_Object Qundefined_color;
  Lisp_Object Qcancel_timer;
- Lisp_Object Qhyper;
- Lisp_Object Qsuper;
- Lisp_Object Qmeta;
- Lisp_Object Qalt;
- Lisp_Object Qctrl;
- Lisp_Object Qcontrol;
- Lisp_Object Qshift;
  
  extern Lisp_Object Vwindow_system_version;
  
--- 149,154 ----
***************
*** 1453,1600 ****
       struct frame *f;
       Lisp_Object arg, oldval;
  {
    Cursor cursor, nontext_cursor, mode_cursor, hand_cursor;
!   int count;
!   int mask_color;
! 
!   if (!EQ (Qnil, arg))
!     f->output_data.mac->mouse_pixel
!       = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
!   mask_color = FRAME_BACKGROUND_PIXEL (f);
  
    /* Don't let pointers be invisible.  */
!   if (mask_color == f->output_data.mac->mouse_pixel
!       && mask_color == FRAME_BACKGROUND_PIXEL (f))
!     f->output_data.mac->mouse_pixel = FRAME_FOREGROUND_PIXEL (f);
! 
! #if 0 /* MAC_TODO : cursor changes */
!   BLOCK_INPUT;
  
!   /* It's not okay to crash if the user selects a screwy cursor.  */
!   count = x_catch_errors (FRAME_W32_DISPLAY (f));
  
!   if (!EQ (Qnil, Vx_pointer_shape))
      {
        CHECK_NUMBER (Vx_pointer_shape);
!       cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XINT 
(Vx_pointer_shape));
      }
    else
!     cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_xterm);
!   x_check_errors (FRAME_W32_DISPLAY (f), "bad text pointer cursor: %s");
  
!   if (!EQ (Qnil, Vx_nontext_pointer_shape))
      {
        CHECK_NUMBER (Vx_nontext_pointer_shape);
!       nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
!                                         XINT (Vx_nontext_pointer_shape));
      }
    else
!     nontext_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_left_ptr);
!   x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
  
!   if (!EQ (Qnil, Vx_hourglass_pointer_shape))
      {
        CHECK_NUMBER (Vx_hourglass_pointer_shape);
!       hourglass_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
!                                           XINT (Vx_hourglass_pointer_shape));
      }
    else
!     hourglass_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_watch);
!   x_check_errors (FRAME_W32_DISPLAY (f), "bad busy pointer cursor: %s");
  
!   x_check_errors (FRAME_W32_DISPLAY (f), "bad nontext pointer cursor: %s");
!   if (!EQ (Qnil, Vx_mode_pointer_shape))
      {
        CHECK_NUMBER (Vx_mode_pointer_shape);
!       mode_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f),
!                                      XINT (Vx_mode_pointer_shape));
      }
    else
!     mode_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_xterm);
!   x_check_errors (FRAME_W32_DISPLAY (f), "bad modeline pointer cursor: %s");
  
!   if (!EQ (Qnil, Vx_sensitive_text_pointer_shape))
      {
        CHECK_NUMBER (Vx_sensitive_text_pointer_shape);
!       hand_cursor
!       = XCreateFontCursor (FRAME_W32_DISPLAY (f),
!                            XINT (Vx_sensitive_text_pointer_shape));
      }
    else
!     hand_cursor = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_crosshair);
  
    if (!NILP (Vx_window_horizontal_drag_shape))
      {
        CHECK_NUMBER (Vx_window_horizontal_drag_shape);
!       horizontal_drag_cursor
!       = XCreateFontCursor (FRAME_W32_DISPLAY (f),
!                            XINT (Vx_window_horizontal_drag_shape));
      }
    else
!     horizontal_drag_cursor
!       = XCreateFontCursor (FRAME_W32_DISPLAY (f), XC_sb_h_double_arrow);
! 
!   /* Check and report errors with the above calls.  */
!   x_check_errors (FRAME_W32_DISPLAY (f), "can't set cursor shape: %s");
!   x_uncatch_errors (FRAME_W32_DISPLAY (f), count);
  
    {
      XColor fore_color, back_color;
  
!     fore_color.pixel = f->output_data.w32->mouse_pixel;
      back_color.pixel = mask_color;
!     XQueryColor (FRAME_W32_DISPLAY (f),
!                DefaultColormap (FRAME_W32_DISPLAY (f),
!                                 DefaultScreen (FRAME_W32_DISPLAY (f))),
!                &fore_color);
!     XQueryColor (FRAME_W32_DISPLAY (f),
!                DefaultColormap (FRAME_W32_DISPLAY (f),
!                                 DefaultScreen (FRAME_W32_DISPLAY (f))),
!                &back_color);
!     XRecolorCursor (FRAME_W32_DISPLAY (f), cursor,
!                   &fore_color, &back_color);
!     XRecolorCursor (FRAME_W32_DISPLAY (f), nontext_cursor,
!                   &fore_color, &back_color);
!     XRecolorCursor (FRAME_W32_DISPLAY (f), mode_cursor,
!                   &fore_color, &back_color);
!     XRecolorCursor (FRAME_W32_DISPLAY (f), hand_cursor,
!                     &fore_color, &back_color);
!     XRecolorCursor (FRAME_W32_DISPLAY (f), hourglass_cursor,
!                     &fore_color, &back_color);
    }
  
!   if (FRAME_W32_WINDOW (f) != 0)
!     XDefineCursor (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f), cursor);
  
!   if (cursor != f->output_data.w32->text_cursor && 
f->output_data.w32->text_cursor != 0)
!     XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->text_cursor);
!   f->output_data.w32->text_cursor = cursor;
! 
!   if (nontext_cursor != f->output_data.w32->nontext_cursor
!       && f->output_data.w32->nontext_cursor != 0)
!     XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->nontext_cursor);
!   f->output_data.w32->nontext_cursor = nontext_cursor;
! 
!   if (hourglass_cursor != f->output_data.w32->hourglass_cursor
!       && f->output_data.w32->hourglass_cursor != 0)
!     XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->hourglass_cursor);
!   f->output_data.w32->hourglass_cursor = hourglass_cursor;
! 
!   if (mode_cursor != f->output_data.w32->modeline_cursor
!       && f->output_data.w32->modeline_cursor != 0)
!     XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->modeline_cursor);
!   f->output_data.w32->modeline_cursor = mode_cursor;
! 
!   if (hand_cursor != f->output_data.w32->hand_cursor
!       && f->output_data.w32->hand_cursor != 0)
!     XFreeCursor (FRAME_W32_DISPLAY (f), f->output_data.w32->hand_cursor);
!   f->output_data.w32->hand_cursor = hand_cursor;
  
-   XFlush (FRAME_W32_DISPLAY (f));
    UNBLOCK_INPUT;
  
    update_face_from_frame_parameter (f, Qmouse_color, arg);
- #endif /* MAC_TODO */
  }
  
  void
--- 1446,1544 ----
       struct frame *f;
       Lisp_Object arg, oldval;
  {
+   struct x_output *x = f->output_data.x;
+   Display *dpy = FRAME_MAC_DISPLAY (f);
    Cursor cursor, nontext_cursor, mode_cursor, hand_cursor;
!   Cursor hourglass_cursor, horizontal_drag_cursor;
!   unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
!   unsigned long mask_color = x->background_pixel;
  
    /* Don't let pointers be invisible.  */
!   if (mask_color == pixel)
!     pixel = x->foreground_pixel;
  
!   f->output_data.mac->mouse_pixel = pixel;
  
!   if (!NILP (Vx_pointer_shape))
      {
        CHECK_NUMBER (Vx_pointer_shape);
!       cursor = XINT (Vx_pointer_shape);
      }
    else
!     cursor = kThemeIBeamCursor;
  
!   if (!NILP (Vx_nontext_pointer_shape))
      {
        CHECK_NUMBER (Vx_nontext_pointer_shape);
!       nontext_cursor = XINT (Vx_nontext_pointer_shape);
      }
    else
!     nontext_cursor = kThemeArrowCursor;
  
!   if (!NILP (Vx_hourglass_pointer_shape))
      {
        CHECK_NUMBER (Vx_hourglass_pointer_shape);
!       hourglass_cursor = XINT (Vx_hourglass_pointer_shape);
      }
    else
!     hourglass_cursor = kThemeWatchCursor;
  
!   if (!NILP (Vx_mode_pointer_shape))
      {
        CHECK_NUMBER (Vx_mode_pointer_shape);
!       mode_cursor = XINT (Vx_mode_pointer_shape);
      }
    else
!     mode_cursor = kThemeArrowCursor;
  
!   if (!NILP (Vx_sensitive_text_pointer_shape))
      {
        CHECK_NUMBER (Vx_sensitive_text_pointer_shape);
!       hand_cursor = XINT (Vx_sensitive_text_pointer_shape);
      }
    else
!     hand_cursor = kThemePointingHandCursor;
  
    if (!NILP (Vx_window_horizontal_drag_shape))
      {
        CHECK_NUMBER (Vx_window_horizontal_drag_shape);
!       horizontal_drag_cursor = XINT (Vx_window_horizontal_drag_shape);
      }
    else
!     horizontal_drag_cursor = kThemeResizeLeftRightCursor;
  
+ #if 0 /* MAC_TODO: cursor color changes */
    {
      XColor fore_color, back_color;
  
!     fore_color.pixel = f->output_data.mac->mouse_pixel;
!     x_query_color (f, &fore_color);
      back_color.pixel = mask_color;
!     x_query_color (f, &back_color);
! 
!     XRecolorCursor (dpy, cursor, &fore_color, &back_color);
!     XRecolorCursor (dpy, nontext_cursor, &fore_color, &back_color);
!     XRecolorCursor (dpy, mode_cursor, &fore_color, &back_color);
!     XRecolorCursor (dpy, hand_cursor, &fore_color, &back_color);
!     XRecolorCursor (dpy, hourglass_cursor, &fore_color, &back_color);
!     XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color);
    }
+ #endif
  
!   BLOCK_INPUT;
  
!   rif->define_frame_cursor (f, cursor);
! 
!   f->output_data.mac->text_cursor = cursor;
!   f->output_data.mac->nontext_cursor = nontext_cursor;
!   f->output_data.mac->hourglass_cursor = hourglass_cursor;
!   f->output_data.mac->modeline_cursor = mode_cursor;
!   f->output_data.mac->hand_cursor = hand_cursor;
!   f->output_data.mac->horizontal_drag_cursor = horizontal_drag_cursor;
  
    UNBLOCK_INPUT;
  
    update_face_from_frame_parameter (f, Qmouse_color, arg);
  }
  
  void
***************
*** 2327,2332 ****
--- 2271,2288 ----
    /* so that update events can find this mac_output struct */
    f->output_data.mac->mFP = f;  /* point back to emacs frame */
  
+ #ifndef MAC_OSX
+   if (FRAME_MAC_WINDOW (f))
+     {
+       ControlRef root_control;
+ 
+       if (CreateRootControl (FRAME_MAC_WINDOW (f), &root_control) != noErr)
+       {
+         DisposeWindow (FRAME_MAC_WINDOW (f));
+         FRAME_MAC_WINDOW (f) = NULL;
+       }
+     }
+ #endif
    if (FRAME_MAC_WINDOW (f))
      XSetWindowBackground (FRAME_MAC_DISPLAY(f), FRAME_MAC_WINDOW (f),
                          FRAME_BACKGROUND_PIXEL (f));
***************
*** 2775,2796 ****
  
    f->output_data.mac->parent_desc = FRAME_MAC_DISPLAY_INFO (f)->root_window;
  
- #if TARGET_API_MAC_CARBON
-   f->output_data.mac->text_cursor = kThemeIBeamCursor;
-   f->output_data.mac->nontext_cursor = kThemeArrowCursor;
-   f->output_data.mac->modeline_cursor = kThemeArrowCursor;
-   f->output_data.mac->hand_cursor = kThemePointingHandCursor;
-   f->output_data.mac->hourglass_cursor = kThemeWatchCursor;
-   f->output_data.mac->horizontal_drag_cursor = kThemeResizeLeftRightCursor;
- #else
-   f->output_data.mac->text_cursor = GetCursor (iBeamCursor);
-   f->output_data.mac->nontext_cursor = &arrow_cursor;
-   f->output_data.mac->modeline_cursor = &arrow_cursor;
-   f->output_data.mac->hand_cursor = &arrow_cursor;
-   f->output_data.mac->hourglass_cursor = GetCursor (watchCursor);
-   f->output_data.mac->horizontal_drag_cursor = &arrow_cursor;
- #endif
- 
    /* Compute the size of the window.  */
    window_prompting = x_figure_window_size (f, parms, 1);
  
--- 2731,2736 ----
***************
*** 3475,3481 ****
  
  
  /***********************************************************************
!                               Hourglass cursor
   ***********************************************************************/
  
  /* If non-null, an asynchronous timer that, when it expires, displays
--- 3415,3421 ----
  
  
  /***********************************************************************
!                               Busy cursor
   ***********************************************************************/
  
  /* If non-null, an asynchronous timer that, when it expires, displays
***************
*** 3501,3513 ****
  static void show_hourglass P_ ((struct atimer *));
  static void hide_hourglass P_ ((void));
  
  
  /* Cancel a currently active hourglass timer, and start a new one.  */
  
  void
  start_hourglass ()
  {
! #if 0 /* MAC_TODO: cursor shape changes.  */
    EMACS_TIME delay;
    int secs, usecs = 0;
  
--- 3441,3461 ----
  static void show_hourglass P_ ((struct atimer *));
  static void hide_hourglass P_ ((void));
  
+ /* Return non-zero if houglass timer has been started or hourglass is shown.  
*/
+ 
+ int
+ hourglass_started ()
+ {
+   return hourglass_shown_p || hourglass_atimer != NULL;
+ }
+ 
  
  /* Cancel a currently active hourglass timer, and start a new one.  */
  
  void
  start_hourglass ()
  {
! #ifdef MAC_OSX
    EMACS_TIME delay;
    int secs, usecs = 0;
  
***************
*** 3530,3545 ****
    EMACS_SET_SECS_USECS (delay, secs, usecs);
    hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
                                     show_hourglass, NULL);
! #endif /* MAC_TODO */
  }
  
  
! /* Cancel the hourglass cursor timer if active, hide an hourglass
!    cursor if shown.  */
  
  void
  cancel_hourglass ()
  {
    if (hourglass_atimer)
      {
        cancel_atimer (hourglass_atimer);
--- 3478,3494 ----
    EMACS_SET_SECS_USECS (delay, secs, usecs);
    hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
                                     show_hourglass, NULL);
! #endif /* MAC_OSX */
  }
  
  
! /* Cancel the hourglass cursor timer if active, hide a busy cursor if
!    shown.  */
  
  void
  cancel_hourglass ()
  {
+ #ifdef MAC_OSX
    if (hourglass_atimer)
      {
        cancel_atimer (hourglass_atimer);
***************
*** 3548,3569 ****
  
    if (hourglass_shown_p)
      hide_hourglass ();
  }
  
  
  /* Timer function of hourglass_atimer.  TIMER is equal to
     hourglass_atimer.
  
!    Display an hourglass cursor on all frames by mapping the frames'
!    hourglass_window.  Set the hourglass_p flag in the frames'
!    output_data.x structure to indicate that an hourglass cursor is
!    shown on the frames.  */
  
  static void
  show_hourglass (timer)
       struct atimer *timer;
  {
! #if 0  /* MAC_TODO: cursor shape changes.  */
    /* The timer implementation will cancel this timer automatically
       after this function has run.  Set hourglass_atimer to null
       so that we know the timer doesn't have to be canceled.  */
--- 3497,3518 ----
  
    if (hourglass_shown_p)
      hide_hourglass ();
+ #endif /* MAC_OSX */
  }
  
  
  /* Timer function of hourglass_atimer.  TIMER is equal to
     hourglass_atimer.
  
!    On Mac, busy status is shown by the progress indicator (chasing
!    arrows) at the upper-right corner of each frame instead of the
!    hourglass pointer.  */
  
  static void
  show_hourglass (timer)
       struct atimer *timer;
  {
! #if TARGET_API_MAC_CARBON
    /* The timer implementation will cancel this timer automatically
       after this function has run.  Set hourglass_atimer to null
       so that we know the timer doesn't have to be canceled.  */
***************
*** 3576,3621 ****
        BLOCK_INPUT;
  
        FOR_EACH_FRAME (rest, frame)
!       if (FRAME_W32_P (XFRAME (frame)))
!         {
!           struct frame *f = XFRAME (frame);
! 
!           f->output_data.w32->hourglass_p = 1;
! 
!           if (!f->output_data.w32->hourglass_window)
!             {
!               unsigned long mask = CWCursor;
!               XSetWindowAttributes attrs;
! 
!               attrs.cursor = f->output_data.w32->hourglass_cursor;
  
!               f->output_data.w32->hourglass_window
!                 = XCreateWindow (FRAME_X_DISPLAY (f),
!                                  FRAME_OUTER_WINDOW (f),
!                                  0, 0, 32000, 32000, 0, 0,
!                                  InputOnly,
!                                  CopyFromParent,
!                                  mask, &attrs);
!             }
  
!           XMapRaised (FRAME_X_DISPLAY (f),
!                       f->output_data.w32->hourglass_window);
!           XFlush (FRAME_X_DISPLAY (f));
!         }
  
        hourglass_shown_p = 1;
        UNBLOCK_INPUT;
      }
! #endif /* MAC_TODO */
  }
  
  
! /* Hide the hourglass cursor on all frames, if it is currently shown.  */
  
  static void
  hide_hourglass ()
  {
! #if 0 /* MAC_TODO: cursor shape changes.  */
    if (hourglass_shown_p)
      {
        Lisp_Object rest, frame;
--- 3525,3568 ----
        BLOCK_INPUT;
  
        FOR_EACH_FRAME (rest, frame)
!       {
!         struct frame *f = XFRAME (frame);
  
!         if (FRAME_LIVE_P (f) && FRAME_MAC_P (f)
!             && FRAME_MAC_WINDOW (f) != tip_window)
!           {
!             if (!f->output_data.mac->hourglass_control)
!               {
!                 Window w = FRAME_MAC_WINDOW (f);
!                 Rect r;
!                 ControlRef c;
! 
!                 GetWindowPortBounds (w, &r);
!                 r.left = r.right - HOURGLASS_WIDTH;
!                 r.bottom = r.top + HOURGLASS_HEIGHT;
!                 if (CreateChasingArrowsControl (w, &r, &c) == noErr)
!                   f->output_data.mac->hourglass_control = c;
!               }
  
!             if (f->output_data.mac->hourglass_control)
!               ShowControl (f->output_data.mac->hourglass_control);
!           }
!       }
  
        hourglass_shown_p = 1;
        UNBLOCK_INPUT;
      }
! #endif /* TARGET_API_MAC_CARBON */
  }
  
  
! /* Hide the progress indicators on all frames, if it is currently
!    shown.  */
  
  static void
  hide_hourglass ()
  {
! #if TARGET_API_MAC_CARBON
    if (hourglass_shown_p)
      {
        Lisp_Object rest, frame;
***************
*** 3625,3647 ****
        {
          struct frame *f = XFRAME (frame);
  
!         if (FRAME_W32_P (f)
              /* Watch out for newly created frames.  */
!             && f->output_data.x->hourglass_window)
!           {
!             XUnmapWindow (FRAME_X_DISPLAY (f),
!                           f->output_data.x->hourglass_window);
!             /* Sync here because XTread_socket looks at the
!                hourglass_p flag that is reset to zero below.  */
!             XSync (FRAME_X_DISPLAY (f), False);
!             f->output_data.x->hourglass_p = 0;
!           }
        }
  
        hourglass_shown_p = 0;
        UNBLOCK_INPUT;
      }
! #endif /* MAC_TODO */
  }
  
  
--- 3572,3587 ----
        {
          struct frame *f = XFRAME (frame);
  
!         if (FRAME_MAC_P (f)
              /* Watch out for newly created frames.  */
!             && f->output_data.mac->hourglass_control)
!           HideControl (f->output_data.mac->hourglass_control);
        }
  
        hourglass_shown_p = 0;
        UNBLOCK_INPUT;
      }
! #endif /* TARGET_API_MAC_CARBON */
  }
  
  
***************
*** 4487,4493 ****
                            Initialization
   ***********************************************************************/
  
! /* Keep this list in the same order as frame_parms in frame.c. 
     Use 0 for unsupported frame parameters.  */
  
  frame_parm_handler mac_frame_parm_handlers[] =
--- 4427,4433 ----
                            Initialization
   ***********************************************************************/
  
! /* Keep this list in the same order as frame_parms in frame.c.
     Use 0 for unsupported frame parameters.  */
  
  frame_parm_handler mac_frame_parm_handlers[] =
***************
*** 4545,4573 ****
    staticpro (&Qundefined_color);
    Qcancel_timer = intern ("cancel-timer");
    staticpro (&Qcancel_timer);
- 
-   Qhyper = intern ("hyper");
-   staticpro (&Qhyper);
-   Qsuper = intern ("super");
-   staticpro (&Qsuper);
-   Qmeta = intern ("meta");
-   staticpro (&Qmeta);
-   Qalt = intern ("alt");
-   staticpro (&Qalt);
-   Qctrl = intern ("ctrl");
-   staticpro (&Qctrl);
-   Qcontrol = intern ("control");
-   staticpro (&Qcontrol);
-   Qshift = intern ("shift");
-   staticpro (&Qshift);
    /* This is the end of symbol initialization.  */
  
    /* Text property `display' should be nonsticky by default.  */
    Vtext_property_default_nonsticky
      = Fcons (Fcons (Qdisplay, Qt), Vtext_property_default_nonsticky);
  
-   Qface_set_after_frame_default = intern ("face-set-after-frame-default");
-   staticpro (&Qface_set_after_frame_default);
  
    Fput (Qundefined_color, Qerror_conditions,
        Fcons (Qundefined_color, Fcons (Qerror, Qnil)));
--- 4485,4496 ----
***************
*** 4575,4613 ****
        build_string ("Undefined color"));
  
    DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape,
!              doc: /* The shape of the pointer when over text.
  Changing the value does not affect existing frames
  unless you set the mouse color.  */);
    Vx_pointer_shape = Qnil;
  
    Vx_nontext_pointer_shape = Qnil;
  
-   Vx_mode_pointer_shape = Qnil;
- 
    DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
!              doc: /* The shape of the pointer when Emacs is hourglass.
  This variable takes effect when you create a new frame
  or when you set the mouse color.  */);
    Vx_hourglass_pointer_shape = Qnil;
  
    DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
!              doc: /* Non-zero means Emacs displays an hourglass pointer on 
window systems.  */);
    display_hourglass_p = 1;
  
    DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
!              doc: /* *Seconds to wait before displaying an hourglass pointer.
  Value must be an integer or float.  */);
    Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
  
    DEFVAR_LISP ("x-sensitive-text-pointer-shape",
!              &Vx_sensitive_text_pointer_shape,
               doc: /* The shape of the pointer when over mouse-sensitive text.
  This variable takes effect when you create a new frame
  or when you set the mouse color.  */);
    Vx_sensitive_text_pointer_shape = Qnil;
  
    DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel,
!              doc: /* A string indicating the foreground color of the cursor 
box.  */);
    Vx_cursor_fore_pixel = Qnil;
  
    DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size,
--- 4498,4555 ----
        build_string ("Undefined color"));
  
    DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape,
!     doc: /* The shape of the pointer when over text.
  Changing the value does not affect existing frames
  unless you set the mouse color.  */);
    Vx_pointer_shape = Qnil;
  
+ #if 0 /* This doesn't really do anything.  */
+   DEFVAR_LISP ("x-nontext-pointer-shape", &Vx_nontext_pointer_shape,
+     doc: /* The shape of the pointer when not over text.
+ This variable takes effect when you create a new frame
+ or when you set the mouse color.  */);
+ #endif
    Vx_nontext_pointer_shape = Qnil;
  
    DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape,
!     doc: /* The shape of the pointer when Emacs is busy.
  This variable takes effect when you create a new frame
  or when you set the mouse color.  */);
    Vx_hourglass_pointer_shape = Qnil;
  
    DEFVAR_BOOL ("display-hourglass", &display_hourglass_p,
!     doc: /* Non-zero means Emacs displays an hourglass pointer on window 
systems.  */);
    display_hourglass_p = 1;
  
    DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay,
!     doc: /* *Seconds to wait before displaying an hourglass pointer.
  Value must be an integer or float.  */);
    Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
  
+ #if 0 /* This doesn't really do anything.  */
+   DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape,
+     doc: /* The shape of the pointer when over the mode line.
+ This variable takes effect when you create a new frame
+ or when you set the mouse color.  */);
+ #endif
+   Vx_mode_pointer_shape = Qnil;
+ 
    DEFVAR_LISP ("x-sensitive-text-pointer-shape",
!             &Vx_sensitive_text_pointer_shape,
               doc: /* The shape of the pointer when over mouse-sensitive text.
  This variable takes effect when you create a new frame
  or when you set the mouse color.  */);
    Vx_sensitive_text_pointer_shape = Qnil;
  
+   DEFVAR_LISP ("x-window-horizontal-drag-cursor",
+             &Vx_window_horizontal_drag_shape,
+   doc: /* Pointer shape to use for indicating a window can be dragged 
horizontally.
+ This variable takes effect when you create a new frame
+ or when you set the mouse color.  */);
+   Vx_window_horizontal_drag_shape = Qnil;
+ 
    DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel,
!     doc: /* A string indicating the foreground color of the cursor box.  */);
    Vx_cursor_fore_pixel = Qnil;
  
    DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size,
***************
*** 4616,4622 ****
    Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
  
    DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager,
!              doc: /* Non-nil if no window manager is in use.
  Emacs doesn't try to figure this out; this is always nil
  unless you set it to something else.  */);
    /* We don't have any way to find this out, so set it to nil
--- 4558,4564 ----
    Vx_max_tooltip_size = Fcons (make_number (80), make_number (40));
  
    DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager,
!     doc: /* Non-nil if no window manager is in use.
  Emacs doesn't try to figure this out; this is always nil
  unless you set it to something else.  */);
    /* We don't have any way to find this out, so set it to nil
***************
*** 4625,4631 ****
  
    DEFVAR_LISP ("x-pixel-size-width-font-regexp",
               &Vx_pixel_size_width_font_regexp,
!              doc: /* Regexp matching a font name whose width is the same as 
`PIXEL_SIZE'.
  
  Since Emacs gets width of a font matching with this regexp from
  PIXEL_SIZE field of the name, font finding mechanism gets faster for
--- 4567,4573 ----
  
    DEFVAR_LISP ("x-pixel-size-width-font-regexp",
               &Vx_pixel_size_width_font_regexp,
!     doc: /* Regexp matching a font name whose width is the same as 
`PIXEL_SIZE'.
  
  Since Emacs gets width of a font matching with this regexp from
  PIXEL_SIZE field of the name, font finding mechanism gets faster for




reply via email to

[Prev in Thread] Current Thread [Next in Thread]