i3lock-color

The world's most popular non-default computer lockscreen.
Index Commits Files Refs README LICENSE
commit d05ebfd36ce19b469853bda9f9ff85b2389feccd
parent 2c41db03ca984a638e61078eda4c088d7e6b5032
Author: Pandora <Pandora@techfo.xyz>
Date:   Fri,  8 Dec 2017 22:24:07 -0500

fix some bar bugs

there's still some weird bug with the back_bars and their colors...

Diffstat:
Munlock_indicator.c | 26++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/unlock_indicator.c b/unlock_indicator.c
@@ -251,6 +251,7 @@ void init_colors_once(void) {
     colorgen(&tmp, keyhlcolor, &keyhl16);
     colorgen(&tmp, bshlcolor, &bshl16);
     colorgen(&tmp, separatorcolor, &sep16);
+    colorgen(&tmp, bar_base_color, &bar16);
     colorgen_rgb(&tmp_rgb, color, &rgb16);
 }
 
@@ -814,9 +815,13 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
         if (screen_number != -1 && screen_number < xr_screens) {
             w = xr_resolutions[screen_number].width;
             h = xr_resolutions[screen_number].height;
+            ix = w / 2;
+            iy = h / 2;
         } else {
             w = xr_resolutions[0].width;
             h = xr_resolutions[0].height;
+            ix = w / 2;
+            iy = h / 2;
         }
         double bar_offset = te_eval(te_bar_expr);
         double x, y, width, height;
@@ -831,7 +836,6 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
                     cairo_set_source_rgba(bar_ctx, keyhl16.red, keyhl16.green, keyhl16.blue, keyhl16.alpha);
                 }
             } else {
-                DEBUG("auth state is now %d\n", auth_state);
                 switch (auth_state) {
                     case STATE_AUTH_VERIFY:
                     case STATE_AUTH_LOCK:
@@ -856,7 +860,7 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
                     x -= width;
                 }
                 else if (bar_bidirectional) {
-                    width = (cur_bar_height <= 0 ? bar_base_height : cur_bar_height) * 2;
+                    width = (cur_bar_height <= 0 ? bar_base_height : cur_bar_height * 2);
                     x = bar_offset - (width / 2) + (bar_base_height / 2);
                 }
             } else {
@@ -868,7 +872,7 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
                     y -= height;
                 }
                 else if (bar_bidirectional) {
-                    height = (cur_bar_height <= 0 ? bar_base_height : cur_bar_height) * 2;
+                    height = (cur_bar_height <= 0 ? bar_base_height : cur_bar_height * 2);
                     y = bar_offset - (height / 2) + (bar_base_height / 2);
                 }
             }
@@ -922,10 +926,24 @@ xcb_pixmap_t draw_image(uint32_t *resolution) {
                         break;
                 }
                 cairo_rectangle(bar_ctx, back_x, back_y, back_width, back_height);
+                cairo_fill(bar_ctx);
                 if (bar_bidirectional) {
+                    switch (auth_state) {
+                        case STATE_AUTH_VERIFY:
+                        case STATE_AUTH_LOCK:
+                            cairo_set_source_rgba(bar_ctx, insidever16.red, insidever16.green, insidever16.blue, insidever16.alpha);
+                            break;
+                        case STATE_AUTH_WRONG:
+                        case STATE_I3LOCK_LOCK_FAILED:
+                            cairo_set_source_rgba(bar_ctx, insidewrong16.red, insidewrong16.green, insidewrong16.blue, insidewrong16.alpha);
+                            break;
+                        default:
+                            cairo_set_source_rgba(bar_ctx, bar16.red, bar16.green, bar16.blue, bar16.alpha);
+                            break;
+                    }
                     cairo_rectangle(bar_ctx, back_x2, back_y2, back_width, back_height);
-                }
                 cairo_fill(bar_ctx);                
+                }
             }
         }
         cairo_set_source_surface(xcb_ctx, bar_output, 0, 0);