aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
authorMiles Bader2006-06-17 20:57:37 +0000
committerMiles Bader2006-06-17 20:57:37 +0000
commit10c1758c0b2d29b3e1fb8e3ffe5c5dc262f25217 (patch)
tree78d2db4ab91026e7d5373086d022a2bce083200b /src/window.c
parent2090e2a3897bd0e36fd0e8ba13d861668a0a887f (diff)
parentf362b76002bfd0f43af76a7772a808c042302f07 (diff)
downloademacs-10c1758c0b2d29b3e1fb8e3ffe5c5dc262f25217.tar.gz
emacs-10c1758c0b2d29b3e1fb8e3ffe5c5dc262f25217.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 300-313) - Update from CVS - Update from CVS: lispref/display.texi (Forcing Redisplay): Fix typo. - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 105-106) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-74
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/window.c b/src/window.c
index 59c223b4a8f..6a1edb24efb 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4279,15 +4279,17 @@ adjust_window_trailing_edge (window, delta, horiz_flag)
4279 { 4279 {
4280 Lisp_Object first_parallel = Qnil; 4280 Lisp_Object first_parallel = Qnil;
4281 4281
4282 p = XWINDOW (window); 4282 if (NILP (window))
4283 parent = p->parent;
4284
4285 if (NILP (XWINDOW (window)->next))
4286 { 4283 {
4284 /* This can happen if WINDOW on the previous iteration was
4285 at top level of the tree and we did not exit. */
4287 Fset_window_configuration (old_config); 4286 Fset_window_configuration (old_config);
4288 error ("No other window following this one"); 4287 error ("Specified window edge is fixed");
4289 } 4288 }
4290 4289
4290 p = XWINDOW (window);
4291 parent = p->parent;
4292
4291 /* See if this level has windows in parallel in the specified 4293 /* See if this level has windows in parallel in the specified
4292 direction. If so, set FIRST_PARALLEL to the first one. */ 4294 direction. If so, set FIRST_PARALLEL to the first one. */
4293 if (horiz_flag) 4295 if (horiz_flag)
@@ -4301,6 +4303,14 @@ adjust_window_trailing_edge (window, delta, horiz_flag)
4301 first_parallel = XWINDOW (parent)->hchild; 4303 first_parallel = XWINDOW (parent)->hchild;
4302 } 4304 }
4303 4305
4306 /* If this level's succession is in the desired dimension,
4307 and this window is the last one, its trailing edge is fixed. */
4308 if (NILP (XWINDOW (window)->next) && NILP (first_parallel))
4309 {
4310 Fset_window_configuration (old_config);
4311 error ("Specified window edge is fixed");
4312 }
4313
4304 /* Don't make this window too small. */ 4314 /* Don't make this window too small. */
4305 if (XINT (CURSIZE (window)) + delta 4315 if (XINT (CURSIZE (window)) + delta
4306 < (horiz_flag ? window_min_width : window_min_height)) 4316 < (horiz_flag ? window_min_width : window_min_height))
@@ -4324,7 +4334,7 @@ adjust_window_trailing_edge (window, delta, horiz_flag)
4324 we will fail and report an error, above.) */ 4334 we will fail and report an error, above.) */
4325 if (NILP (first_parallel)) 4335 if (NILP (first_parallel))
4326 { 4336 {
4327 if (!NILP (XWINDOW (window)->next)) 4337 if (!NILP (p->next))
4328 { 4338 {
4329 /* This may happen for the minibuffer. In that case 4339 /* This may happen for the minibuffer. In that case
4330 the window_deletion_count check below does not work. */ 4340 the window_deletion_count check below does not work. */
@@ -4895,6 +4905,8 @@ window_scroll_pixel_based (window, n, whole, noerror)
4895 } 4905 }
4896 else if (noerror) 4906 else if (noerror)
4897 return; 4907 return;
4908 else if (n < 0) /* could happen with empty buffers */
4909 Fsignal (Qbeginning_of_buffer, Qnil);
4898 else 4910 else
4899 Fsignal (Qend_of_buffer, Qnil); 4911 Fsignal (Qend_of_buffer, Qnil);
4900 } 4912 }