Article View: gnu.emacs.bug
Article #87921certain frame positions cause redisplay failure in 19.25
From: Karl Fogel
Date: Thu, 11 Aug 1994 21:41
Date: Thu, 11 Aug 1994 21:41
140 lines
8998 bytes
8998 bytes
This recipe is necessarily verbose, because I've discovered
that insufficient finicky-ness can result in the bug not showing
itself. Sorry about this; I hope no one has a difficult time getting
it to work at their site.
Anyway, to reproduce, do the following:
0) Start up Emacs 19.25 under X windows. Make your initial frame
be 80 columns wide and 56 lines tall (at least, within +/- 3 of
56 lines tall).
1) Take the text between the "snip" lines below and place it in a
Lisp Interaction buffer (in that initial frame). It is
important that the entire text of the buffer be visible in the
window, and that the window be the only one on the frame.
------------- snip ---------- snip --------- snip --------- snip -------------
(let ((foo
(make-frame '((name . "foo") (height . 10) (width . 50)))))
;; Edit the position parameters below such that the frame pops up
;; with its top half covering the bottom of the text below, and its
;; bottom half sitting in the empty space below that. Horizontally,
;; the frame should be centered with respect to the text lines.
(set-frame-position foo 95 600)
(error "remove me when ready") (sit-for 2)
(goto-char (point-min))
(search-forward "1*this*" nil nil 2) ; avoid this occurence
(forward-line -1)
(mapcar
(lambda (line-number)
(save-excursion
(search-forward (number-to-string line-number))
(beginning-of-line)
(let ((kill-whole-line t))
(kill-line))))
(list 2 3 12 13 14 21 22 23 26)))
1*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
2*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
3*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
4*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
5*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
6*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
7*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
8*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
9*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
10this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
11this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
12this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
13this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
14this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
15this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
16this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
17this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
18this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
19this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
20this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
21this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
22this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
23this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
24this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
25this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
26this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
27this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
------------- snip ---------- snip --------- snip --------- snip -------------
2) In the top-level `let' expression of the lisp, change the
parameters of the `set-frame-position' call as the comment
indicates. You'll have to experiment a little, to get the frame
to pop up as described. If you have your initial frame tucked
up in the upper-left corner of your display, with say ten pixels
or so of padding above and on the side, then things might work
right out of the box.
When you have the right parameters, you'll be able to tell,
because the new frame will pop up centered horizontally in the
text, and it will cover text vertically starting from the line
that starts "23this*". The top sliver of the characters on line
"23this*" itself will be visible over the title bar of the new
frame, ideally, but I doubt that such precision is necessary.
Pictorially, the approximate area that the frame should be
covering when it pops up is depicted below (I can't show the
character fragments that will be peeking around the edges, of
course):
1*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
2*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
3*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
4*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
5*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
6*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
7*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
8*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
9*this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
10this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
11this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
12this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
13this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
14this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
15this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
16this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
17this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
18this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
19this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
20this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
21this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
22this*is*a*nonsense*line*--*the*quick*brown*fox*jumped*over*the*revolutionary
23this*is*a*no revolutionary
24this*is*a*no revolutionary
25this*is*a*no revolutionary
26this*is*a*no revolutionary
27this*is*a*no revolutionary
| |
| |
| |
| |
| |
| |
| |
---------------------------------------------------
3) Once you've got the frame popping up in the right place, remove
the call to `error' (but not the `sit-for' following it on the
same line).
4) Okay, evaluate the whole `let' (I place the cursor at the end of
the expression and hit C-x C-e). Give it a few seconds, because
of the sit-for and the time it takes to create a new frame.
The redisplay problem should be glaringly obvious; if you don't
see it, then I need to come up with a better recipe.
Assuming you succeeded, any ideas as to what's going on?
Best,
Karl
Technical Details
Message-ID:
<199408112018.AA14884@phylo.life.uiuc.edu>Path:
arc1-ca.pugleaf.net!bga.com!news.sprintlink.net!primenet!netnews.asu.edu !asuvax!cs.utexas.edu!convex!news.duke.edu!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!math.ohio-state.edu!cis.ohio-state.edu!phylo.life.uiuc.edu!kfogelShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fb2f1,defe5d1fd8a7cb89,start X-Google-Attributes: gidfb2f1,public X-Google-ArrivalTime: 1994-08-11 20:03:01 PST Path: arc1-ca.pugleaf.net!bga.com!news.sprintlink.net!primenet!netnews.asu.edu !asuvax!cs.utexas.edu!convex!news.duke.edu!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!math.ohio-state.edu!cis.ohio-state.edu!phylo.life.uiuc.edu!kfogel From: kfogel@phylo.life.uiuc.edu (Karl Fogel) Newsgroups: gnu.emacs.bug Subject: certain frame positions cause redisplay failure in 19.25 Date: 11 Aug 1994 17:41:21 -0400 Organization: GNUs Not Usenet Lines: 141 Sender: daemon@cis.ohio-state.edu Approved: bug-gnu-emacs@prep.ai.mit.edu Distribution: gnu Message-ID: <199408112018.AA14884@phylo.life.uiuc.edu>