patch 8.2.4320: Athena and Motif: when maximized scrollbar position is wrong
Problem: Athena and Motif: when maximized scrollbar position is wrong.
Solution: Implement the scrollbar padding functions. (closes #9712)
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 8328045..ef3747d 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -1745,17 +1745,27 @@
int
gui_mch_get_scrollbar_xpadding(void)
{
- // TODO: Calculate the padding for adjust scrollbar position when the
- // Window is maximized.
- return 0;
+ int xpad;
+ Dimension tw, ww;
+ Position tx;
+
+ XtVaGetValues(textArea, XtNwidth, &tw, XtNx, &tx, NULL);
+ XtVaGetValues(vimShell, XtNwidth, &ww, NULL);
+ xpad = ww - tw - tx - gui.scrollbar_width;
+ return (xpad < 0) ? 0 : xpad;
}
int
gui_mch_get_scrollbar_ypadding(void)
{
- // TODO: Calculate the padding for adjust scrollbar position when the
- // Window is maximized.
- return 0;
+ int ypad;
+ Dimension th, wh;
+ Position ty;
+
+ XtVaGetValues(textArea, XtNheight, &th, XtNy, &ty, NULL);
+ XtVaGetValues(vimShell, XtNheight, &wh, NULL);
+ ypad = wh - th - ty - gui.scrollbar_height;
+ return (ypad < 0) ? 0 : ypad;
}
void