1 |
/* Window creation, deletion and examination for GNU Emacs. |
/* Window creation, deletion and examination for GNU Emacs. |
2 |
Does not include redisplay. |
Does not include redisplay. |
3 |
Copyright (C) 1985,86,87, 1993,94,95,96,97,98, 2000,01,02,03,04 |
Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000, |
4 |
Free Software Foundation, Inc. |
2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
5 |
|
|
6 |
This file is part of GNU Emacs. |
This file is part of GNU Emacs. |
7 |
|
|
5594 |
if (XBUFFER (new_current_buffer) == current_buffer) |
if (XBUFFER (new_current_buffer) == current_buffer) |
5595 |
old_point = PT; |
old_point = PT; |
5596 |
else |
else |
5597 |
old_point = BUF_PT (XBUFFER (new_current_buffer)); |
/* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of |
5598 |
|
point in new_current_buffer as of the last time this buffer was |
5599 |
|
used. This can be non-deterministic since it can be changed by |
5600 |
|
things like jit-lock by mere temporary selection of some random |
5601 |
|
window that happens to show this buffer. |
5602 |
|
So if possible we want this arbitrary choice of "which point" to |
5603 |
|
be the one from the to-be-selected-window so as to prevent this |
5604 |
|
window's cursor from being copied from another window. */ |
5605 |
|
if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer) |
5606 |
|
/* If current_window = selected_window, its point is in BUF_PT. */ |
5607 |
|
&& !EQ (selected_window, data->current_window)) |
5608 |
|
old_point = XMARKER (XWINDOW (data->current_window)->pointm)->charpos; |
5609 |
|
else |
5610 |
|
old_point = BUF_PT (XBUFFER (new_current_buffer)); |
5611 |
} |
} |
5612 |
|
|
5613 |
frame = XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame; |
frame = XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame; |