]> git.eshelyaron.com Git - emacs.git/commitdiff
(XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
authorGerd Moellmann <gerd@gnu.org>
Mon, 19 Mar 2001 18:50:47 +0000 (18:50 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 19 Mar 2001 18:50:47 +0000 (18:50 +0000)
Clear area of the frame not occupied by the scroll bar.

src/ChangeLog
src/xterm.c

index aa8e986a0a566d837176e14d2a002da1f7c143e2..39b6f9ecebfbabbf6c7bba1b7100ebce96a806f4 100644 (file)
@@ -1,5 +1,8 @@
 2001-03-19  Gerd Moellmann  <gerd@gnu.org>
 
+       * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
+       Clear area of the frame not occupied by the scroll bar.
+
        * xfns.c (x_create_tip_frame): Add parameter TEXT.  Set the
        tip frame's root window buffer to *tip* right after creating
        the frame.
index 20c1fda21935ce5a9da6ed2ef1b4b1d5c6f1369f..cd11231b122ca4a33a4b65d1ae55b5d80bcd60a5 100644 (file)
@@ -8729,7 +8729,6 @@ x_scroll_bar_set_handle (bar, start, end, rebuild)
 
     /* Draw the handle itself.  */
     XFillRectangle (FRAME_X_DISPLAY (f), w, gc,
-
                    /* x, y, width, height */
                    VERTICAL_SCROLL_BAR_LEFT_BORDER,
                    VERTICAL_SCROLL_BAR_TOP_BORDER + start,
@@ -8875,12 +8874,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
 
 #else /* not USE_TOOLKIT_SCROLL_BARS */
   
+      /* Clear areas not covered by the scroll bar because of
+        VERTICAL_SCROLL_BAR_WIDTH_TRIM.  */
       if (VERTICAL_SCROLL_BAR_WIDTH_TRIM)
        {
-         /* Clear areas not covered by the scroll bar.  This makes sure a
-            previous mode line display is cleared after C-x 2 C-x 1, for
-            example.  Non-toolkit scroll bars are as wide as the area
-            reserved for scroll bars - trim at both sides.  */
          x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
                        left, top, VERTICAL_SCROLL_BAR_WIDTH_TRIM,
                        height, False);
@@ -8889,6 +8886,19 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
                        top, VERTICAL_SCROLL_BAR_WIDTH_TRIM,
                        height, False);
        }
+
+      /* Clear areas not covered by the scroll bar because it's not as
+        wide as the area reserved for it .  This makes sure a
+        previous mode line display is cleared after C-x 2 C-x 1, for
+        example.  */
+      {
+       int area_width = FRAME_SCROLL_BAR_COLS (f) * CANON_X_UNIT (f);
+       int rest = area_width - sb_width;
+       if (rest > 0)
+         x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                       left + area_width -  rest, 0,
+                       rest, max (height, 1), False);
+      }
       
       /* Move/size the scroll bar window.  */
       if (mask)