aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
authorJoakim Verona2013-08-13 14:39:54 +0200
committerJoakim Verona2013-08-13 14:39:54 +0200
commit6293f2abae4379768c2071149eb2152ffa117437 (patch)
tree120cfe65e5efd69174ba01b48dea9939b29e154a /src/window.c
parent1272f71a5f83232f2b2c25a6d8ec24ebe1ea0a63 (diff)
parent9e37ee3be620a64afe9d9760076f80c22c986b62 (diff)
downloademacs-6293f2abae4379768c2071149eb2152ffa117437.tar.gz
emacs-6293f2abae4379768c2071149eb2152ffa117437.zip
merge from trunk
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c51
1 files changed, 23 insertions, 28 deletions
diff --git a/src/window.c b/src/window.c
index 7b5b8e4df7a..1328adcacd0 100644
--- a/src/window.c
+++ b/src/window.c
@@ -154,11 +154,6 @@ wset_display_table (struct window *w, Lisp_Object val)
154 w->display_table = val; 154 w->display_table = val;
155} 155}
156static void 156static void
157wset_left_fringe_width (struct window *w, Lisp_Object val)
158{
159 w->left_fringe_width = val;
160}
161static void
162wset_left_margin_cols (struct window *w, Lisp_Object val) 157wset_left_margin_cols (struct window *w, Lisp_Object val)
163{ 158{
164 w->left_margin_cols = val; 159 w->left_margin_cols = val;
@@ -194,11 +189,6 @@ wset_pointm (struct window *w, Lisp_Object val)
194 w->pointm = val; 189 w->pointm = val;
195} 190}
196static void 191static void
197wset_right_fringe_width (struct window *w, Lisp_Object val)
198{
199 w->right_fringe_width = val;
200}
201static void
202wset_right_margin_cols (struct window *w, Lisp_Object val) 192wset_right_margin_cols (struct window *w, Lisp_Object val)
203{ 193{
204 w->right_margin_cols = val; 194 w->right_margin_cols = val;
@@ -3484,6 +3474,7 @@ make_window (void)
3484 /* Initialize non-Lisp data. Note that allocate_window zeroes out all 3474 /* Initialize non-Lisp data. Note that allocate_window zeroes out all
3485 non-Lisp data, so do it only for slots which should not be zero. */ 3475 non-Lisp data, so do it only for slots which should not be zero. */
3486 w->nrows_scale_factor = w->ncols_scale_factor = 1; 3476 w->nrows_scale_factor = w->ncols_scale_factor = 1;
3477 w->left_fringe_width = w->right_fringe_width = -1;
3487 w->phys_cursor_type = -1; 3478 w->phys_cursor_type = -1;
3488 w->phys_cursor_width = -1; 3479 w->phys_cursor_width = -1;
3489 w->column_number_displayed = -1; 3480 w->column_number_displayed = -1;
@@ -3953,8 +3944,8 @@ set correctly. See the code of `split-window' for how this is done. */)
3953 /* Get special geometry settings from reference window. */ 3944 /* Get special geometry settings from reference window. */
3954 wset_left_margin_cols (n, r->left_margin_cols); 3945 wset_left_margin_cols (n, r->left_margin_cols);
3955 wset_right_margin_cols (n, r->right_margin_cols); 3946 wset_right_margin_cols (n, r->right_margin_cols);
3956 wset_left_fringe_width (n, r->left_fringe_width); 3947 n->left_fringe_width = r->left_fringe_width;
3957 wset_right_fringe_width (n, r->right_fringe_width); 3948 n->right_fringe_width = r->right_fringe_width;
3958 n->fringes_outside_margins = r->fringes_outside_margins; 3949 n->fringes_outside_margins = r->fringes_outside_margins;
3959 wset_scroll_bar_width (n, r->scroll_bar_width); 3950 wset_scroll_bar_width (n, r->scroll_bar_width);
3960 wset_vertical_scroll_bar_type (n, r->vertical_scroll_bar_type); 3951 wset_vertical_scroll_bar_type (n, r->vertical_scroll_bar_type);
@@ -5699,8 +5690,8 @@ the return value is nil. Otherwise the value is t. */)
5699 wset_display_table (w, p->display_table); 5690 wset_display_table (w, p->display_table);
5700 wset_left_margin_cols (w, p->left_margin_cols); 5691 wset_left_margin_cols (w, p->left_margin_cols);
5701 wset_right_margin_cols (w, p->right_margin_cols); 5692 wset_right_margin_cols (w, p->right_margin_cols);
5702 wset_left_fringe_width (w, p->left_fringe_width); 5693 w->left_fringe_width = XINT (p->left_fringe_width);
5703 wset_right_fringe_width (w, p->right_fringe_width); 5694 w->right_fringe_width = XINT (p->right_fringe_width);
5704 w->fringes_outside_margins = !NILP (p->fringes_outside_margins); 5695 w->fringes_outside_margins = !NILP (p->fringes_outside_margins);
5705 wset_scroll_bar_width (w, p->scroll_bar_width); 5696 wset_scroll_bar_width (w, p->scroll_bar_width);
5706 wset_vertical_scroll_bar_type (w, p->vertical_scroll_bar_type); 5697 wset_vertical_scroll_bar_type (w, p->vertical_scroll_bar_type);
@@ -6000,8 +5991,8 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
6000 p->display_table = w->display_table; 5991 p->display_table = w->display_table;
6001 p->left_margin_cols = w->left_margin_cols; 5992 p->left_margin_cols = w->left_margin_cols;
6002 p->right_margin_cols = w->right_margin_cols; 5993 p->right_margin_cols = w->right_margin_cols;
6003 p->left_fringe_width = w->left_fringe_width; 5994 p->left_fringe_width = make_number (w->left_fringe_width);
6004 p->right_fringe_width = w->right_fringe_width; 5995 p->right_fringe_width = make_number (w->right_fringe_width);
6005 p->fringes_outside_margins = w->fringes_outside_margins ? Qt : Qnil; 5996 p->fringes_outside_margins = w->fringes_outside_margins ? Qt : Qnil;
6006 p->scroll_bar_width = w->scroll_bar_width; 5997 p->scroll_bar_width = w->scroll_bar_width;
6007 p->vertical_scroll_bar_type = w->vertical_scroll_bar_type; 5998 p->vertical_scroll_bar_type = w->vertical_scroll_bar_type;
@@ -6227,25 +6218,28 @@ frame's default fringe width. Default fringe widths can be set with
6227the command `set-fringe-style'. 6218the command `set-fringe-style'.
6228If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes 6219If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes
6229outside of the display margins. By default, fringes are drawn between 6220outside of the display margins. By default, fringes are drawn between
6230display marginal areas and the text area. */) 6221display marginal areas and the text area.
6231 (Lisp_Object window, Lisp_Object left_width, Lisp_Object right_width, Lisp_Object outside_margins) 6222
6223Return t if any fringe was actually changed and nil otherwise. */)
6224 (Lisp_Object window, Lisp_Object left_width,
6225 Lisp_Object right_width, Lisp_Object outside_margins)
6232{ 6226{
6233 struct window *w = decode_live_window (window); 6227 struct window *w = decode_live_window (window);
6234 int outside = !NILP (outside_margins); 6228 int left, right, outside = !NILP (outside_margins);
6235 6229
6236 if (!NILP (left_width)) 6230 left = (NILP (left_width) ? -1
6237 CHECK_NATNUM (left_width); 6231 : (CHECK_NATNUM (left_width), XINT (left_width)));
6238 if (!NILP (right_width)) 6232 right = (NILP (right_width) ? -1
6239 CHECK_NATNUM (right_width); 6233 : (CHECK_NATNUM (right_width), XINT (right_width)));
6240 6234
6241 /* Do nothing on a tty. */ 6235 /* Do nothing on a tty or if nothing to actually change. */
6242 if (FRAME_WINDOW_P (WINDOW_XFRAME (w)) 6236 if (FRAME_WINDOW_P (WINDOW_XFRAME (w))
6243 && (!EQ (w->left_fringe_width, left_width) 6237 && (w->left_fringe_width != left
6244 || !EQ (w->right_fringe_width, right_width) 6238 || w->right_fringe_width != right
6245 || w->fringes_outside_margins != outside)) 6239 || w->fringes_outside_margins != outside))
6246 { 6240 {
6247 wset_left_fringe_width (w, left_width); 6241 w->left_fringe_width = left;
6248 wset_right_fringe_width (w, right_width); 6242 w->right_fringe_width = right;
6249 w->fringes_outside_margins = outside; 6243 w->fringes_outside_margins = outside;
6250 6244
6251 adjust_window_margins (w); 6245 adjust_window_margins (w);
@@ -6255,6 +6249,7 @@ display marginal areas and the text area. */)
6255 6249
6256 ++windows_or_buffers_changed; 6250 ++windows_or_buffers_changed;
6257 adjust_glyphs (XFRAME (WINDOW_FRAME (w))); 6251 adjust_glyphs (XFRAME (WINDOW_FRAME (w)));
6252 return Qt;
6258 } 6253 }
6259 6254
6260 return Qnil; 6255 return Qnil;