aboutsummaryrefslogtreecommitdiffstats
path: root/src/pgtkfns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pgtkfns.c')
-rw-r--r--src/pgtkfns.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index b7d34d56803..9078a78e060 100644
--- a/src/pgtkfns.c
+++ b/src/pgtkfns.c
@@ -647,20 +647,18 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
647static void 647static void
648x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) 648x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
649{ 649{
650 int old_width = FRAME_INTERNAL_BORDER_WIDTH (f); 650 int border = check_int_nonnegative (arg);
651 651
652 CHECK_TYPE_RANGED_INTEGER (int, arg); 652 if (border != FRAME_INTERNAL_BORDER_WIDTH (f))
653 f->internal_border_width = XFIXNUM (arg); 653 {
654 if (FRAME_INTERNAL_BORDER_WIDTH (f) < 0) 654 f->internal_border_width = border;
655 f->internal_border_width = 0;
656
657 if (FRAME_INTERNAL_BORDER_WIDTH (f) == old_width)
658 return;
659
660 if (FRAME_X_WINDOW (f) != 0)
661 adjust_frame_size (f, -1, -1, 3, 0, Qinternal_border_width);
662 655
663 SET_FRAME_GARBAGED (f); 656 if (FRAME_X_WINDOW (f))
657 {
658 adjust_frame_size (f, -1, -1, 3, false, Qinternal_border_width);
659 pgtk_clear_under_internal_border (f);
660 }
661 }
664} 662}
665 663
666 664