Blob Blame History Raw
From 0638fb6fca4b10120d08e5b1d546dea0013faa07 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Mon, 28 Dec 2020 18:03:25 +0900
Subject: [PATCH] lock.c/draw_passwd_window: show logo and ok button

On Fedora 33 and on some environment, user may see the issue on
lock screen:
* xscreensaver logo is not shown
* ok and new login buttons are not shown

To fix these issue, two modifications seem needed.
* Calling XSync() is needed to make ok button appear
* draw_shaded_rectangle() on the whole window must be called before
  painting logo
---
 driver/lock.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/driver/lock.c b/driver/lock.c
index 8bcd2e0..7133dc0 100644
--- a/driver/lock.c
+++ b/driver/lock.c
@@ -750,6 +750,12 @@ draw_passwd_window (saver_info *si)
   x3 = pw->width - (pw->shadow_width * 2);
   y1 = (pw->shadow_width * 2) + spacing + spacing;
 
+  /* The shadow around the whole window
+   */
+  draw_shaded_rectangle (si->dpy, si->passwd_dialog,
+			 0, 0, pw->width, pw->height, pw->shadow_width,
+			 pw->shadow_top, pw->shadow_bottom);
+
   /* top heading
    */
   XSetFont (si->dpy, gc1, pw->heading_font->fid);
@@ -994,14 +1000,9 @@ draw_passwd_window (saver_info *si)
                   pw->thermo_width - 1, pw->thermo_field_height - 1);
 #endif
 
-  /* The shadow around the whole window
-   */
-  draw_shaded_rectangle (si->dpy, si->passwd_dialog,
-			 0, 0, pw->width, pw->height, pw->shadow_width,
-			 pw->shadow_top, pw->shadow_bottom);
-
   XFreeGC (si->dpy, gc1);
   XFreeGC (si->dpy, gc2);
+  XSync (si->dpy, False);
 
   update_passwd_window (si, pw->passwd_string, pw->ratio);
 }
-- 
2.29.2