Dunst: рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dunst-project/dunst

рдкреНрд░рдЧрддрд┐ рдХреА рддрд░рд╣ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП% p рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдпрд╛рдиреА 25% рдкреНрд░рдЧрддрд┐ рдорд╛рди рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдмрд╛рдИрдВ рддрд┐рдорд╛рд╣реА рдХреЛ рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЬреНрдЬрд╡рд▓ рднрд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рдордзреНрдп-рдмрдЪреНрдЪрд╛ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдлреИрдВрд╕реА рдХреНрдпрд╛ рд╣реИ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рд╣рдо рд╕рднреА рдХрд╛ рд╕реНрд╡рд╛рдж рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╕рдмрдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдлреНрд░реЗрдо рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреЛ рдореИрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ, рд╡реЗ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рд╕рднреА рдХреЛ рдЕрдкрдиреА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рд╕рдЪрдореБрдЪ рдкрд╣рд▓реЗ рдХрднреА рд╕реА рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрд╛ рдХрд┐ рд░рдВрдЧ рдФрд░ рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреИрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ (рдЕрднреА рдпрд╣ рдереЛрдбрд╝рд╛ рдЙрдЬреНрдЬреНрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рднрджреНрджреЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЪрд╛рд╣рддрд╛ рд╣реИред

рдЕрд░реЗ, рдореИрдВрдиреЗ рддреБрдореНрд╣рд╛рд░реЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛,рдпрд╣ shrink рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡реЙрд▓реНрдпреВрдо 100 рдкреНрд░рддрд┐рд╢рдд рд╣реИ, рддреЛ рдмрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 50 рдкреНрд░рддрд┐рд╢рдд рдкрд░ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ shrink рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЧрд▓рдд рд╣реИ, рдЕрдиреБрд╡рд░реНрддреА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдкреВрд░реА рдКрдВрдЪрд╛рдИ рдХреЛ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдПрдХ рддреНрд╡рд░рд┐рдд рд╣реИрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ bg_height/8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред (рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рдХреА рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред)

рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдирд╛ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдЖрдЧреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред IMHO рдореИрдВ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдмрдЧ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдХреНрд░рдо рд╣реИ:

bg_width / 100 * (cl->n->progress - 1) рджреЗрдЦреЗрдВ:

рдЕрдЧрд░ рдореИрдВ shrink рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рдореЗрд░реА рд╕реВрдЪрдирд╛рдПрдВ 300px рдЪреМрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рддреЛ 300/100 == 3 рдФрд░ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рдордп, рдпрд╣ рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдм рдареАрдХ рд╣реИред

рдЕрдЧрд░ рдореИрдВ shrink рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ 185px рдЪреМрдбрд╝рд╛рдИ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдВ 185/100 == 1 рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ 1.85 рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЗ рдкреАрдЫреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛рдЯ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддреНрд░реБрдЯрд┐ рд▓рдЧрднрдЧ рдЖрдзреА рд╣реИ, рдЬреЛ 50% рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреА рд╣реИред

рдХреНрд░рдо рдмрджрд▓рдиреЗ (рдкрд╣рд▓реЗ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рднрд╛рдЧ рджреЗрдиреЗ) рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@bebehei рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХрд╛рдВрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдкрд╣рд▓реЗ рдкреНрд░рдЧрддрд┐ рд╕рд▓рд╛рдЦреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВ рдмрд╛рд╣рд░ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╢реАрд░реНрд╖рдХ рдиреЗ рдореБрдЭреЗ рдЧрд▓рдд рдЙрдореНрдореАрджреЗрдВ рджреАрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреИрдЪ рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ:

рдпрд╣рд╛рдБ рдкреИрдЪ рд╣реИ:

diff --git a/src/x11/x.c b/src/x11/x.c
index 9f7ac20..3430892 100644
--- a/src/x11/x.c
+++ b/src/x11/x.c
@@ -565,14 +565,22 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
         double bg_half_height = settings.notification_height/2.0;
         int pango_offset = (int) floor(h/2.0);

+        int progress_width = cl->n->progress > 0 ? bg_width * (cl->n->progress - 1) / 100 : bg_width;
+
         if (first) bg_height += settings.frame_width;
         if (last) bg_height += settings.frame_width;
         else bg_height += settings.separator_height;

         cairo_set_source_rgb(c, cl->frame.r, cl->frame.g, cl->frame.b);
-        cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+        cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
         cairo_fill(c);

+        if (progress_width != bg_width) {
+                cairo_set_source_rgb(c, cl->frame.r - 0.2, cl->frame.g - 0.2, cl->frame.b - 0.2);
+                cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+                cairo_fill(c);
+        }
+
         /* adding frame */
         bg_x += settings.frame_width;
         if (first) {
@@ -582,13 +590,26 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
                 if (!last) bg_height -= settings.separator_height;
         }
         bg_width -= 2 * settings.frame_width;
+        if (progress_width < settings.frame_width) {
+                progress_width = 0;
+        } else if (progress_width - settings.frame_width > bg_width) {
+                progress_width = bg_width;
+        } else {
+                progress_width -= settings.frame_width;
+        }
         if (last)
                 bg_height -= settings.frame_width;

         cairo_set_source_rgb(c, cl->bg.r, cl->bg.g, cl->bg.b);
-        cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+        cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
         cairo_fill(c);

+        if (progress_width != bg_width) {
+                cairo_set_source_rgb(c, cl->bg.r - 0.2, cl->bg.g - 0.2, cl->bg.b - 0.2);
+                cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+                cairo_fill(c);
+        }
+
         bool use_padding = settings.notification_height <= (2 * settings.padding) + h;
         if (use_padding)
             dim.y += settings.padding;

@ рдордзреНрдп-рдмрдЪреНрдЪрд╛ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдлреИрдВрд╕реА рдХреНрдпрд╛ рд╣реИ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рд╣рдо рд╕рднреА рдХрд╛ рд╕реНрд╡рд╛рдж рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкреВрд░реА рдЪреМрдбрд╝рд╛рдИ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╕рдмрдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдлреНрд░реЗрдо рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреЛ рдореИрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ, рд╡реЗ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рд╕рднреА рдХреЛ рдЕрдкрдиреА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

775 рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

coxley picture coxley  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahjstone picture ahjstone  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mrmoroshkin picture mrmoroshkin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

existme picture existme  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

catzybluphish picture catzybluphish  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ