diff options
author | Alex Alexander <wired@gentoo.org> | 2014-05-08 05:59:22 +0000 |
---|---|---|
committer | Alex Alexander <wired@gentoo.org> | 2014-05-08 05:59:22 +0000 |
commit | 052305c883e65bc18bb8e1b1abf766525d587581 (patch) | |
tree | 7365195f53182d8a0f5521652d6e38e2083c997b /x11-misc | |
parent | Add ruby21. Drop ruby18. (diff) | |
download | gentoo-2-052305c883e65bc18bb8e1b1abf766525d587581.tar.gz gentoo-2-052305c883e65bc18bb8e1b1abf766525d587581.tar.bz2 gentoo-2-052305c883e65bc18bb8e1b1abf766525d587581.zip |
backported a couple of fixes from git.
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key EB9B4AFA)
Diffstat (limited to 'x11-misc')
-rw-r--r-- | x11-misc/dunst/ChangeLog | 11 | ||||
-rw-r--r-- | x11-misc/dunst/dunst-1.0.0-r1.ebuild | 63 | ||||
-rw-r--r-- | x11-misc/dunst/files/dunst-1.0.0-correctly_handle_num_lock.patch | 149 | ||||
-rw-r--r-- | x11-misc/dunst/files/dunst-1.0.0-fix_pause_resume.patch | 60 |
4 files changed, 281 insertions, 2 deletions
diff --git a/x11-misc/dunst/ChangeLog b/x11-misc/dunst/ChangeLog index 25fa013d1b3f..b2a5d71bcf46 100644 --- a/x11-misc/dunst/ChangeLog +++ b/x11-misc/dunst/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for x11-misc/dunst -# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-misc/dunst/ChangeLog,v 1.5 2013/09/12 17:16:38 wired Exp $ +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/x11-misc/dunst/ChangeLog,v 1.6 2014/05/08 05:59:22 wired Exp $ + +*dunst-1.0.0-r1 (08 May 2014) + + 08 May 2014; Alex Alexander <wired@gentoo.org> +dunst-1.0.0-r1.ebuild, + +files/dunst-1.0.0-correctly_handle_num_lock.patch, + +files/dunst-1.0.0-fix_pause_resume.patch: + backported a couple of fixes from git. 12 Sep 2013; Alex Alexander <wired@gentoo.org> dunst-1.0.0.ebuild: epatch_user support, bug #484356 diff --git a/x11-misc/dunst/dunst-1.0.0-r1.ebuild b/x11-misc/dunst/dunst-1.0.0-r1.ebuild new file mode 100644 index 000000000000..7d79851e12b6 --- /dev/null +++ b/x11-misc/dunst/dunst-1.0.0-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-misc/dunst/dunst-1.0.0-r1.ebuild,v 1.1 2014/05/08 05:59:22 wired Exp $ + +EAPI=5 + +inherit eutils + +DESCRIPTION="customizable and lightweight notification-daemon" +HOMEPAGE="http://www.knopwob.org/dunst/" +SRC_URI="http://www.knopwob.org/public/dunst-release/${P}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="dunstify" + +CDEPEND=" + dev-libs/glib:2 + dev-libs/libxdg-basedir + sys-apps/dbus + x11-libs/libXScrnSaver + x11-libs/libXft + x11-libs/libXinerama + x11-libs/cairo[X,glib] + x11-libs/pango[X] + dunstify? ( x11-libs/libnotify ) +" + +DEPEND="${CDEPEND} + dev-lang/perl + virtual/pkgconfig" + +RDEPEND="${CDEPEND}" + +src_prepare() { + # fixes backported from git + epatch "${FILESDIR}"/${P}-correctly_handle_num_lock.patch + epatch "${FILESDIR}"/${P}-fix_pause_resume.patch + + # Remove nasty CFLAGS which override user choice + sed -ie "/^CFLAGS/ { + s:-g:: + s:-O.:: + }" config.mk || die "sed failed" + + if ! use dunstify; then + # don't build dunstify: it pulls in deps but is not being installed + sed -ie "/^all:/ s:dunstify::" Makefile || die "sed failed" + fi + + epatch_user +} + +src_install() { + emake DESTDIR="${D}" PREFIX="/usr" install + + if use dunstify; then + dobin dunstify + fi + + dodoc CHANGELOG +} diff --git a/x11-misc/dunst/files/dunst-1.0.0-correctly_handle_num_lock.patch b/x11-misc/dunst/files/dunst-1.0.0-correctly_handle_num_lock.patch new file mode 100644 index 000000000000..fc784fb8fc66 --- /dev/null +++ b/x11-misc/dunst/files/dunst-1.0.0-correctly_handle_num_lock.patch @@ -0,0 +1,149 @@ +https://github.com/knopwob/dunst/commit/be7d2b351 + +From be7d2b3511dc528b135e5dc6d5358c700fefaa30 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= <necoro@necoro.net> +Date: Mon, 3 Jun 2013 14:39:24 +0200 +Subject: [PATCH] Correctly handle Num_Lock. + +Find out which modifier key is used by Num_Lock (`x_numlock_mod()`) and +register grabs for both variants: modifier present/not present. +--- + x.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 67 insertions(+), 6 deletions(-) + +--- a/x.c ++++ b/x.c +@@ -485,6 +485,58 @@ static void setopacity(Window win, unsigned long opacity) + + + ++ /* ++ * Returns the modifier which is NumLock. ++ */ ++static KeySym x_numlock_mod() ++{ ++ static KeyCode nl = 0; ++ KeySym sym = 0; ++ XModifierKeymap * map = XGetModifierMapping(xctx.dpy); ++ ++ if (!nl) ++ nl = XKeysymToKeycode(xctx.dpy, XStringToKeysym("Num_Lock")); ++ ++ for (int mod = 0; mod < 8; mod++) { ++ for (int j = 0; j < map->max_keypermod; j++) { ++ if (map->modifiermap[mod*map->max_keypermod+j] == nl) { ++ /* In theory, one could use `1 << mod`, but this ++ * could count as 'using implementation details', ++ * so use this large switch. */ ++ switch (mod) { ++ case ShiftMapIndex: ++ sym = ShiftMask; ++ goto end; ++ case LockMapIndex: ++ sym = LockMask; ++ goto end; ++ case ControlMapIndex: ++ sym = ControlMask; ++ goto end; ++ case Mod1MapIndex: ++ sym = Mod1Mask; ++ goto end; ++ case Mod2MapIndex: ++ sym = Mod2Mask; ++ goto end; ++ case Mod3MapIndex: ++ sym = Mod3Mask; ++ goto end; ++ case Mod4MapIndex: ++ sym = Mod4Mask; ++ goto end; ++ case Mod5MapIndex: ++ sym = Mod5Mask; ++ goto end; ++ } ++ } ++ } ++ } ++ ++end: ++ XFreeModifiermap(map); ++ return sym; ++} + + /* + * Helper function to use glib's mainloop mechanic +@@ -515,6 +567,7 @@ gboolean x_mainloop_fd_dispatch(GSource * source, GSourceFunc callback, + gpointer user_data) + { + XEvent ev; ++ unsigned int state; + while (XPending(xctx.dpy) > 0) { + XNextEvent(xctx.dpy, &ev); + switch (ev.type) { +@@ -535,10 +588,13 @@ gboolean x_mainloop_fd_dispatch(GSource * source, GSourceFunc callback, + } + break; + case KeyPress: ++ state = ev.xkey.state; ++ /* NumLock is also encoded in the state. Remove it. */ ++ state &= ~x_numlock_mod(); + if (settings.close_ks.str + && XLookupKeysym(&ev.xkey, + 0) == settings.close_ks.sym +- && settings.close_ks.mask == ev.xkey.state) { ++ && settings.close_ks.mask == state) { + if (displayed) { + notification *n = g_queue_peek_head(displayed); + if (n) +@@ -548,19 +604,19 @@ gboolean x_mainloop_fd_dispatch(GSource * source, GSourceFunc callback, + if (settings.history_ks.str + && XLookupKeysym(&ev.xkey, + 0) == settings.history_ks.sym +- && settings.history_ks.mask == ev.xkey.state) { ++ && settings.history_ks.mask == state) { + history_pop(); + } + if (settings.close_all_ks.str + && XLookupKeysym(&ev.xkey, + 0) == settings.close_all_ks.sym +- && settings.close_all_ks.mask == ev.xkey.state) { ++ && settings.close_all_ks.mask == state) { + move_all_to_history(); + } + if (settings.context_ks.str + && XLookupKeysym(&ev.xkey, + 0) == settings.context_ks.sym +- && settings.context_ks.mask == ev.xkey.state) { ++ && settings.context_ks.mask == state) { + context_menu(); + } + break; +@@ -953,9 +1009,12 @@ int x_shortcut_grab(keyboard_shortcut * ks) + + x_shortcut_setup_error_handler(); + +- if (ks->is_valid) ++ if (ks->is_valid) { + XGrabKey(xctx.dpy, ks->code, ks->mask, root, + true, GrabModeAsync, GrabModeAsync); ++ XGrabKey(xctx.dpy, ks->code, ks->mask | x_numlock_mod() , root, ++ true, GrabModeAsync, GrabModeAsync); ++ } + + if (x_shortcut_tear_down_error_handler()) { + fprintf(stderr, "Unable to grab key \"%s\"\n", ks->str); +@@ -972,8 +1031,10 @@ void x_shortcut_ungrab(keyboard_shortcut * ks) + { + Window root; + root = RootWindow(xctx.dpy, DefaultScreen(xctx.dpy)); +- if (ks->is_valid) ++ if (ks->is_valid) { + XUngrabKey(xctx.dpy, ks->code, ks->mask, root); ++ XUngrabKey(xctx.dpy, ks->code, ks->mask | x_numlock_mod(), root); ++ } + } + + /* +-- +1.9.1 + diff --git a/x11-misc/dunst/files/dunst-1.0.0-fix_pause_resume.patch b/x11-misc/dunst/files/dunst-1.0.0-fix_pause_resume.patch new file mode 100644 index 000000000000..f95cc310b373 --- /dev/null +++ b/x11-misc/dunst/files/dunst-1.0.0-fix_pause_resume.patch @@ -0,0 +1,60 @@ +https://github.com/knopwob/dunst/commit/04248fd4 + +From 04248fd49ef6769c7dc7e246fc505ad9c70afe27 Mon Sep 17 00:00:00 2001 +From: Sascha Kruse <knopwob@googlemail.com> +Date: Mon, 22 Apr 2013 20:07:35 +0000 +Subject: [PATCH] fix pause/resume + +this fixes github issue #98 +--- + dunst.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +--- a/dunst.c ++++ b/dunst.c +@@ -105,7 +105,7 @@ void update_lists() + + if (pause_display) { + while (displayed->length > 0) { +- g_queue_insert_sorted(queue, g_queue_pop_head(queue), ++ g_queue_insert_sorted(queue, g_queue_pop_head(displayed), + notification_cmp_data, NULL); + } + return; +@@ -240,16 +240,16 @@ gboolean run(void *data) + timeout_cnt--; + } + +- if (displayed->length > 0 && !xctx.visible) { +- x_win_show(); ++ if (displayed->length > 0 && !xctx.visible && !pause_display) { ++ x_win_show(); + } + +- if (displayed->length == 0 && xctx.visible) { +- x_win_hide(); ++ if (xctx.visible && (pause_display || displayed->length == 0)) { ++ x_win_hide(); + } + + if (xctx.visible) { +- x_win_draw(); ++ x_win_draw(); + } + + if (xctx.visible) { +@@ -355,9 +355,11 @@ void pause_signal_handler(int sig) + { + if (sig == SIGUSR1) { + pause_display = true; ++ wake_up(); + } + if (sig == SIGUSR2) { + pause_display = false; ++ wake_up(); + } + + signal(sig, pause_signal_handler); +-- +1.9.1 + |