diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/window.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/window.c b/src/window.c index d797ff75627..3e07ea2a4a8 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -120,6 +120,11 @@ Lisp_Object Vwindow_list; | |||
| 120 | 120 | ||
| 121 | Lisp_Object minibuf_window; | 121 | Lisp_Object minibuf_window; |
| 122 | 122 | ||
| 123 | /* Non-nil means it is the window whose mode line should be | ||
| 124 | shown as the selected window when the minibuffer is selected. */ | ||
| 125 | |||
| 126 | Lisp_Object Vminibuf_selected_window; | ||
| 127 | |||
| 123 | /* Non-nil means it is the window for C-M-v to scroll | 128 | /* Non-nil means it is the window for C-M-v to scroll |
| 124 | when the mini-buffer is selected. */ | 129 | when the mini-buffer is selected. */ |
| 125 | 130 | ||
| @@ -4793,6 +4798,7 @@ struct save_window_data | |||
| 4793 | Lisp_Object current_window; | 4798 | Lisp_Object current_window; |
| 4794 | Lisp_Object current_buffer; | 4799 | Lisp_Object current_buffer; |
| 4795 | Lisp_Object minibuf_scroll_window; | 4800 | Lisp_Object minibuf_scroll_window; |
| 4801 | Lisp_Object minibuf_selected_window; | ||
| 4796 | Lisp_Object root_window; | 4802 | Lisp_Object root_window; |
| 4797 | Lisp_Object focus_frame; | 4803 | Lisp_Object focus_frame; |
| 4798 | /* Record the values of window-min-width and window-min-height | 4804 | /* Record the values of window-min-width and window-min-height |
| @@ -5156,6 +5162,7 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5156 | window_min_width = XINT (data->min_width); | 5162 | window_min_width = XINT (data->min_width); |
| 5157 | 5163 | ||
| 5158 | Vminibuf_scroll_window = data->minibuf_scroll_window; | 5164 | Vminibuf_scroll_window = data->minibuf_scroll_window; |
| 5165 | Vminibuf_selected_window = data->minibuf_selected_window; | ||
| 5159 | 5166 | ||
| 5160 | return (FRAME_LIVE_P (f) ? Qt : Qnil); | 5167 | return (FRAME_LIVE_P (f) ? Qt : Qnil); |
| 5161 | } | 5168 | } |
| @@ -5365,7 +5372,8 @@ redirection (see `redirect-frame-focus'). */) | |||
| 5365 | data->selected_frame = selected_frame; | 5372 | data->selected_frame = selected_frame; |
| 5366 | data->current_window = FRAME_SELECTED_WINDOW (f); | 5373 | data->current_window = FRAME_SELECTED_WINDOW (f); |
| 5367 | XSETBUFFER (data->current_buffer, current_buffer); | 5374 | XSETBUFFER (data->current_buffer, current_buffer); |
| 5368 | data->minibuf_scroll_window = Vminibuf_scroll_window; | 5375 | data->minibuf_scroll_window = minibuf_level > 0 ? Vminibuf_scroll_window : Qnil; |
| 5376 | data->minibuf_selected_window = minibuf_level > 0 ? Vminibuf_selected_window : Qnil; | ||
| 5369 | data->root_window = FRAME_ROOT_WINDOW (f); | 5377 | data->root_window = FRAME_ROOT_WINDOW (f); |
| 5370 | data->focus_frame = FRAME_FOCUS_FRAME (f); | 5378 | data->focus_frame = FRAME_FOCUS_FRAME (f); |
| 5371 | XSETINT (data->min_height, window_min_height); | 5379 | XSETINT (data->min_height, window_min_height); |
| @@ -5649,8 +5657,12 @@ compare_window_configurations (c1, c2, ignore_positions) | |||
| 5649 | if (! EQ (d1->current_buffer, d2->current_buffer)) | 5657 | if (! EQ (d1->current_buffer, d2->current_buffer)) |
| 5650 | return 0; | 5658 | return 0; |
| 5651 | if (! ignore_positions) | 5659 | if (! ignore_positions) |
| 5652 | if (! EQ (d1->minibuf_scroll_window, d2->minibuf_scroll_window)) | 5660 | { |
| 5653 | return 0; | 5661 | if (! EQ (d1->minibuf_scroll_window, d2->minibuf_scroll_window)) |
| 5662 | return 0; | ||
| 5663 | if (! EQ (d1->minibuf_selected_window, d2->minibuf_selected_window)) | ||
| 5664 | return 0; | ||
| 5665 | } | ||
| 5654 | /* Don't compare the root_window field. | 5666 | /* Don't compare the root_window field. |
| 5655 | We don't require the two configurations | 5667 | We don't require the two configurations |
| 5656 | to use the same window object, | 5668 | to use the same window object, |