#  The existing calculation of Y_INC make no allowance for the size of the
#  inner frame of the input field.  When the input field text height + the
#  inner frame size exceed the height of the prompt text this results in
#  misalignment and artefacts being left behind when erasing characters 
#  with tails (such as 'j').
#
#  The following resource settings can be used to reproduce the issue:
#    xlogin*face:            Helvetica-30
#    xlogin*promptFace:      Helvetica-16:bold
#    xlogin*innerFramesWidth: 8

#  This patch resolves both issues.
#
#  Author: gary.langshaw@gmail.com

diff -Nurp xdm-1.1.16.orig/greeter/Login.c xdm-1.1.16/greeter/Login.c
--- xdm-1.1.16.orig/greeter/Login.c	2024-04-05 01:04:33.000000000 +0100
+++ xdm-1.1.16/greeter/Login.c	2024-06-11 15:39:20.596773706 +0100
@@ -253,7 +253,7 @@ static XtResource resources[] = {
 #define FAIL_X_INC(w)		F_MAX_WIDTH(fail)
 #define FAIL_Y_INC(w)		(F_ASCENT(fail) + F_DESCENT(fail))
 
-#define Y_INC(w)	max (TEXT_Y_INC(w), PROMPT_Y_INC(w))
+#define Y_INC(w)	max ((2 * (w)->login.inframeswidth) + TEXT_Y_INC(w), PROMPT_Y_INC(w))
 
 
 #define PROMPT_TEXT(w,n) 	((w)->login.prompts[n].promptText)