Refactor code assuming compiler is smart enough to optimize out any that reduce to + 0 or - 0 if building without XPM defined.
Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> --- New in v2 of this series. Simplifies things a little for patch 5/5. greeter/Login.c | 39 +++++++++++++-------------------------- 1 files changed, 13 insertions(+), 26 deletions(-) diff --git a/greeter/Login.c b/greeter/Login.c index f448991..545f937 100644 --- a/greeter/Login.c +++ b/greeter/Login.c @@ -292,7 +292,12 @@ XmuXftTextWidth(Display *dpy, XftFont *font, FcChar8 *string, int len); #define STRING_WIDTH(f, s) TEXT_WIDTH (f, s, strlen(s)) - +/* Padded width of logo image, if compiled with XPM support */ +#ifdef XPM +# define LOGO_W(w) ((w)->login.logoWidth + ((w)->login.logoPadding * 2)) +#else +# define LOGO_W(w) 0 +#endif #define TEXT_PROMPT_W(w, m) (STRING_WIDTH(prompt, m) + w->login.inframeswidth) @@ -307,14 +312,10 @@ XmuXftTextWidth(Display *dpy, XftFont *font, FcChar8 *string, int len); #define GREET_X(w) ((int)((w->core.width - \ STRING_WIDTH (greet, GREETING(w))) / 2)) #define GREET_Y(w) (GREETING(w)[0] ? 2 * GREET_Y_INC (w) : 0) -#ifndef XPM -# define GREET_W(w) (max (STRING_WIDTH (greet, w->login.greeting), \ - STRING_WIDTH (greet, w->login.unsecure_greet))) -#else -# define GREET_W(w) (max (STRING_WIDTH (greet, w->login.greeting), \ +#define GREET_W(w) (max (STRING_WIDTH (greet, w->login.greeting), \ STRING_WIDTH (greet, w->login.unsecure_greet)) \ - + w->login.logoWidth + (2*w->login.logoPadding)) -#endif /* XPM */ + + LOGO_W(w)) + #define PROMPT_X(w) (2 * PROMPT_X_INC(w)) #define PROMPT_Y(w,n) ((GREET_Y(w) + GREET_Y_INC(w) +\ F_ASCENT(greet) + Y_INC(w)) + \ @@ -328,12 +329,7 @@ XmuXftTextWidth(Display *dpy, XftFont *font, FcChar8 *string, int len); #define FAIL_X(w) ERROR_X(w, w->login.fail) #define FAIL_Y(w) (PROMPT_Y(w,1) + 2 * FAIL_Y_INC (w) + F_ASCENT(fail)) -#ifndef XPM -# define ERROR_W(w,m) STRING_WIDTH (fail, m) -#else -# define ERROR_W(w,m) (STRING_WIDTH (fail, m) \ - + w->login.logoWidth + (2*w->login.logoPadding)) -#endif /* XPM */ +#define ERROR_W(w,m) (STRING_WIDTH (fail, m) + LOGO_W(w)) #define FAIL_W(w) max(ERROR_W(w, w->login.failMsg), \ ERROR_W(w, w->login.passwdChangeMsg)) @@ -381,14 +377,9 @@ realizeValue (LoginWidget w, int cursor, int promptNum, GC gc) x = VALUE_X (w,promptNum); y = PROMPT_Y (w,promptNum); - height = PROMPT_H(w); - width = PROMPT_W(w) - x - 3; + height = PROMPT_H(w) - (w->login.inframeswidth * 2); + width = PROMPT_W(w) - x - 3 - (w->login.inframeswidth * 2) - LOGO_W(w); - height -= (w->login.inframeswidth * 2); - width -= (w->login.inframeswidth * 2); -#ifdef XPM - width -= (w->login.logoWidth + (w->login.logoPadding * 2)); -#endif if (cursor > VALUE_SHOW_START(w, promptNum)) curoff = TEXT_WIDTH (text, text, cursor); else @@ -739,15 +730,11 @@ draw_it (LoginWidget w) int in_frame_y = PROMPT_Y(w,p) - w->login.inframeswidth - 1 - TEXT_Y_INC(w); - int in_width = PROMPT_W(w) - VALUE_X(w,p); + int in_width = PROMPT_W(w) - VALUE_X(w,p) - LOGO_W(w); int in_height = PROMPT_H(w) + w->login.inframeswidth + 2; GC topLeftGC, botRightGC; -#ifdef XPM - in_width -= (w->login.logoWidth + 2*(w->login.logoPadding)); -#endif /* XPM */ - if ((PROMPT_STATE(w, p) == LOGIN_PROMPT_ECHO_ON) || (PROMPT_STATE(w, p) == LOGIN_PROMPT_ECHO_OFF)) { topLeftGC = w->login.shdGC; -- 1.7.3.2 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel