Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
d9b9e93c
Commit
d9b9e93c
authored
Jun 03, 2003
by
Richard M. Stallman
Browse files
(windmove-reference-loc, windmove-frame-edges): Use window-inside-edges.
(windmove-do-window-select): Fix error messages.
parent
07703430
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
16 deletions
+15
-16
lisp/windmove.el
lisp/windmove.el
+15
-16
No files found.
lisp/windmove.el
View file @
d9b9e93c
...
...
@@ -321,14 +321,15 @@ of the frame; (X-MAX, Y-MAX) is the zero-based coordinate of the
bottom-right corner of the frame.
For example, if a frame has 76 rows and 181 columns, the return value
from `windmove-frame-edges' will be the list (0 0 180 75)."
(
let
((
frame
(
if
window
(
window-frame
window
)
(
selected-frame
))))
(
let
((
x-min
0
)
(
y-min
0
)
(
x-max
(
1-
(
frame-width
frame
)))
; 1- for last row & col here
(
y-max
(
1-
(
frame-height
frame
))))
(
list
x-min
y-min
x-max
y-max
))))
(
let*
((
frame
(
if
window
(
window-frame
window
)
(
selected-frame
)))
(
top-left
(
window-inside-edges
(
frame-first-window
frame
)))
(
x-min
(
nth
0
top-left
))
(
y-min
(
nth
1
top-left
))
(
x-max
(
+
x-min
(
frame-width
frame
)
-1
))
; 1- for last row & col
(
y-max
(
+
x-max
(
frame-height
frame
)
-1
)))
(
list
x-min
y-min
x-max
y-max
)))
;; it turns out that constraining is always a good thing, even when
;; wrapping is going to happen. this is because:
...
...
@@ -453,15 +454,13 @@ currently-selected window, or WINDOW if supplied; otherwise, it is the
top-left or bottom-right corner of the selected window, or WINDOW if
supplied, if ARG is greater or smaller than zero, respectively."
(
let
((
effective-arg
(
if
(
null
arg
)
0
(
prefix-numeric-value
arg
)))
(
edges
(
window-edges
window
)))
(
edges
(
window-
inside-
edges
window
)))
(
let
((
top-left
(
cons
(
nth
0
edges
)
(
nth
1
edges
)))
;; if 1-'s are not there, windows actually extend too far.
;; actually, -2 is necessary for bottom: (nth 3 edges) is
;; the height of the window; -1 because we want 0-based max,
;; -1 to get rid of mode line
;; Subtracting 1 converts the edge to the last column or line
;; within the window.
(
bottom-right
(
cons
(
-
(
nth
2
edges
)
1
)
(
-
(
nth
3
edges
)
2
))))
(
-
(
nth
3
edges
)
1
))))
(
cond
((
>
effective-arg
0
)
top-left
)
...
...
@@ -531,10 +530,10 @@ DIR, ARG, and WINDOW are handled as by `windmove-other-window-loc'.
If no window is at direction DIR, an error is signaled."
(
let
((
other-window
(
windmove-find-other-window
dir
arg
window
)))
(
cond
((
null
other-window
)
(
error
"No window
at %s
"
dir
))
(
error
"No window
%s from selected window
"
dir
))
((
and
(
window-minibuffer-p
other-window
)
(
not
(
minibuffer-window-active-p
other-window
)))
(
error
"
Can't move to inactive minibuffer
"
))
(
error
"
Minibuffer is inactive
"
))
(
t
(
select-window
other-window
)))))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment