Browse Source

Add patch for fancy dunst progressbars, fix libnotify for volumeicon

master
mid-kid 7 years ago
parent
commit
4001b3c116
  1. 4
      satellites/dunst.sat
  2. 56
      satellites/extrafiles/dunst/dunst-1.2.0-fancy-progressbar.patch
  3. 4
      satellites/volumeicon.sat

4
satellites/dunst.sat

@ -3,11 +3,15 @@ version=1.2.0
update_url="https://github.com/dunst-project/$name/releases"
update_names="/archive/v$version.tar.gz"
define_option '!fancy-progressbar: Apply a patch that draws the progress value in a fancy way'
dlextract "https://github.com/dunst-project/dunst/archive/v$version/$name-$version.tar.gz" \
'425d5bb10a8b571c7494c5e60aaae7e1'
option fancy-progressbar extrafile "$name-$version-fancy-progressbar.patch"
header_end
cd "$name-$version"
option fancy-progressbar patch -p1 -i "../$name-$version-fancy-progressbar.patch"
sed -i -e "s/\${PREFIX}\/bin/\${PREFIX}\/$(safe_sed "$dir_bindir")/" \
-e "s/\${PREFIX}\/share/\${PREFIX}\/$(safe_sed "$dir_datadir")/" Makefile

56
satellites/extrafiles/dunst/dunst-1.2.0-fancy-progressbar.patch

@ -0,0 +1,56 @@
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;

4
satellites/volumeicon.sat

@ -16,7 +16,11 @@ fi
header_end
cd "$name-$version"
# Fix compiling with libnotify
sed -i -e 's/-DCOMPILEWITH_NOTIFY/ &/' ./configure.ac ./configure
# Remove SIGCHLD ignore that breaks libnotify
sed -i -e '/^\tsignal(SIGCHLD, SIG_IGN);$/d' src/volumeicon.c
if option !gtk3; then
patch -p2 -i ../gtk2.patch

Loading…
Cancel
Save