XEmacs 21.4.5 "Civil Service".
[chise/xemacs-chise.git.1] / src / window.c
index a3ad1b1..c8eb2a8 100644 (file)
@@ -111,14 +111,14 @@ Lisp_Object Vtemp_buffer_show_function;
 Lisp_Object Vtemp_buffer_show_hook;
 
 /* If a window gets smaller than either of these, it is removed. */
-int window_min_height;
-int window_min_width;
+Fixnum window_min_height;
+Fixnum window_min_width;
 
 /* Hook run at end of temp_output_buffer_show.  */
 Lisp_Object Qtemp_buffer_show_hook;
 
 /* Number of lines of continuity in scrolling by screenfuls.  */
-int next_screen_context_lines;
+Fixnum next_screen_context_lines;
 
 /* List of freed window configurations with 1 - 10 windows. */
 static Lisp_Object Vwindow_configuration_free_list[10];
@@ -2534,6 +2534,7 @@ enum window_loop
   GET_LRU_WINDOW,              /* Arg is t for full-width windows only */
   DELETE_OTHER_WINDOWS,                /* Arg is window not to delete */
   DELETE_BUFFER_WINDOWS,       /* Arg is buffer */
+  UNDEDICATE_BUFFER,            /* Arg is buffer */
   GET_LARGEST_WINDOW,
   GET_BUFFER_WINDOW_COUNT,     /* Arg is buffer */
   GET_BUFFER_MRU_WINDOW                /* Arg is buffer */
@@ -2686,6 +2687,13 @@ window_loop (enum window_loop type,
                  break;
                }
 
+              case UNDEDICATE_BUFFER:
+                {
+                  if ((XBUFFER (p->buffer) == XBUFFER (obj)) && (p->dedicated))
+                    p->dedicated = Qnil;
+                  break;
+                }
+
              case DELETE_OTHER_WINDOWS:
                {
                  /* Don't delete the last window on a frame; this can
@@ -2812,6 +2820,12 @@ buffer_window_mru (struct window *w)
 
 #endif
 
+void
+undedicate_windows (Lisp_Object buffer, Lisp_Object frame)
+{
+    window_loop (UNDEDICATE_BUFFER, buffer, 0, frame, 1, Qnil);
+}
+
 \f
 DEFUN ("get-lru-window", Fget_lru_window, 0, 2, 0, /*
 Return the window least recently selected or used for display.
@@ -4331,7 +4345,7 @@ window_scroll (Lisp_Object window, Lisp_Object count, int direction,
          &&
          Dynarr_length (dla) >= (1 + modeline)
          &&
-         (dl->ascent - dl->top_clip) - fheight * value > 0)
+         (dl->ascent - dl->top_clip) > fheight * value)
        {
          WINDOW_TEXT_TOP_CLIP (w) += value * fheight;
          MARK_WINDOWS_CHANGED (w);
@@ -4513,6 +4527,11 @@ When calling from a program, supply an integer as argument or nil.
 On attempt to scroll past end of buffer, `end-of-buffer' is signaled.
 On attempt to scroll past beginning of buffer, `beginning-of-buffer' is
 signaled.
+
+The characters that are moved over may be added to the current selection
+\(i.e. active region) if the Shift key is held down, a motion key is used
+to invoke this command, and `shifted-motion-keys-select-region' is t; see
+the documentation for this variable for more details.
 */
        (count))
 {
@@ -4528,6 +4547,11 @@ When calling from a program, supply a number as argument or nil.
 On attempt to scroll past end of buffer, `end-of-buffer' is signaled.
 On attempt to scroll past beginning of buffer, `beginning-of-buffer' is
 signaled.
+
+The characters that are moved over may be added to the current selection
+\(i.e. active region) if the Shift key is held down, a motion key is used
+to invoke this command, and `shifted-motion-keys-select-region' is t; see
+the documentation for this variable for more details.
 */
        (count))
 {
@@ -4600,6 +4624,11 @@ showing that buffer, popping the buffer up if necessary.
 DEFUN ("scroll-left", Fscroll_left, 0, 1, "_P", /*
 Scroll selected window display COUNT columns left.
 Default for COUNT is window width minus 2.
+
+The characters that are moved over may be added to the current selection
+\(i.e. active region) if the Shift key is held down, a motion key is used
+to invoke this command, and `shifted-motion-keys-select-region' is t; see
+the documentation for this variable for more details.
 */
        (count))
 {
@@ -4615,6 +4644,11 @@ Default for COUNT is window width minus 2.
 DEFUN ("scroll-right", Fscroll_right, 0, 1, "_P", /*
 Scroll selected window display COUNT columns right.
 Default for COUNT is window width minus 2.
+
+The characters that are moved over may be added to the current selection
+\(i.e. active region) if the Shift key is held down, a motion key is used
+to invoke this command, and `shifted-motion-keys-select-region' is t; see
+the documentation for this variable for more details.
 */
        (count))
 {
@@ -6311,6 +6345,9 @@ This is a specifier; use `set-specifier' to change it.
 #ifdef HAVE_TTY
     fb = Fcons (Fcons (list1 (Qtty), make_int (1)), fb);
 #endif
+#ifdef HAVE_GTK
+    fb = Fcons (Fcons (list1 (Qgtk), make_int (3)), fb);
+#endif
 #ifdef HAVE_X_WINDOWS
     fb = Fcons (Fcons (list1 (Qx), make_int (3)), fb);
 #endif
@@ -6345,6 +6382,9 @@ This is a specifier; use `set-specifier' to change it.
        Should not the same value be the fallback under X? - kkm */
     fb = Fcons (Fcons (list1 (Qx), make_int (2)), fb);
 #endif
+#ifdef HAVE_GTK
+    fb = Fcons (Fcons (list1 (Qgtk), Qzero), fb);
+#endif
 #ifdef HAVE_MS_WINDOWS
     fb = Fcons (Fcons (list1 (Qmswindows), Qzero), fb);
 #endif