summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-04-23 00:30:43 +0000
committerRichard M. Stallman <rms@gnu.org>1997-04-23 00:30:43 +0000
commit9cfb50889eb6f4b0ac65b36b62eb5f58c64f0a06 (patch)
treecff14425df21e9605ef4774d32a1798eec6ec17c
parent6b1b4773589a8354519e4f903c46ed0f5310fd2a (diff)
downloademacs-9cfb50889eb6f4b0ac65b36b62eb5f58c64f0a06.tar.gz
(frame_allow_splitting): New variable.
(Fsplit_window): Ignore `unsplittable' if frame_allow_splitting. (syms_of_window): Set up Lisp var.
-rw-r--r--src/window.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c
index 0ff3b0fb85c..982a7d1d96d 100644
--- a/src/window.c
+++ b/src/window.c
@@ -119,6 +119,9 @@ Lisp_Object Vwindow_configuration_change_hook;
at the same screen height as previously. */
static int scroll_preserve_screen_position;
+/* Non-nil means we can split a frame even if it is "unsplittable". */
+static int frame_override_unsplittable;
+
#define min(a, b) ((a) < (b) ? (a) : (b))
extern int scroll_margin;
@@ -2387,7 +2390,7 @@ and put SIZE columns in the first of the pair.")
if (MINI_WINDOW_P (o))
error ("Attempt to split minibuffer window");
- else if (FRAME_NO_SPLIT_P (fo))
+ else if (FRAME_NO_SPLIT_P (fo) && ! frame_override_unsplittable)
error ("Attempt to split unsplittable frame");
check_min_window_sizes ();
@@ -3767,6 +3770,12 @@ If there is only one window, it is split regardless of this value.");
The selected frae is the one whose configuration has changed.");
Vwindow_configuration_change_hook = Qnil;
+ DEFVAR_BOOL ("frame-override-unsplittable", &frame_override_unsplittable,
+ "Non-nil means allow splitting an `unsplittable' frame.\n\
+\(That means, a frame whise `unsplittable' parameter is non-nil.)\n\
+Packages such as Ispell that work by splitting the selected frame\n\
+can bind this, so that they will work when used in an unsplittable frame.");
+
defsubr (&Sselected_window);
defsubr (&Sminibuffer_window);
defsubr (&Swindow_minibuffer_p);