From a68c5f88f71682d37924bf2794a163b0b8137e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Thu, 10 Apr 2014 14:32:25 +0200 Subject: More dunst patches --- x11-misc/dunst-1.0.0/fix_memory_leak_1.patch | 25 +++++++ x11-misc/dunst-1.0.0/fix_memory_leak_2.patch | 25 +++++++ .../dunst-1.0.0/net-wm-window-type_followup.patch | 81 ++++++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 x11-misc/dunst-1.0.0/fix_memory_leak_1.patch create mode 100644 x11-misc/dunst-1.0.0/fix_memory_leak_2.patch create mode 100644 x11-misc/dunst-1.0.0/net-wm-window-type_followup.patch diff --git a/x11-misc/dunst-1.0.0/fix_memory_leak_1.patch b/x11-misc/dunst-1.0.0/fix_memory_leak_1.patch new file mode 100644 index 0000000..fad57b9 --- /dev/null +++ b/x11-misc/dunst-1.0.0/fix_memory_leak_1.patch @@ -0,0 +1,25 @@ +From 95c67908c1539e26b8d95a9a17d420a6611163a3 Mon Sep 17 00:00:00 2001 +From: Steven Allen +Date: Mon, 12 Aug 2013 18:37:54 -0700 +Subject: [PATCH] Fix memory leak in URL scanning code + +--- + menu.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/menu.c b/menu.c +index cd3f85a..12e1ae2 100644 +--- a/menu.c ++++ b/menu.c +@@ -60,6 +60,8 @@ char *extract_urls(const char *to_match) + + urls = string_append(urls, match, "\n"); + ++ free(match); ++ + p += m.rm_eo; + } + return urls; +-- +1.9.1 + diff --git a/x11-misc/dunst-1.0.0/fix_memory_leak_2.patch b/x11-misc/dunst-1.0.0/fix_memory_leak_2.patch new file mode 100644 index 0000000..3b7983c --- /dev/null +++ b/x11-misc/dunst-1.0.0/fix_memory_leak_2.patch @@ -0,0 +1,25 @@ +From 9e03b5258fb2e8afe95f3bf32e911dbedb63e765 Mon Sep 17 00:00:00 2001 +From: Giuliano Schneider +Date: Wed, 5 Mar 2014 13:31:01 +0100 +Subject: [PATCH] fix memory leak in string_to_argv + +--- + utils.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/utils.c b/utils.c +index d0bbe75..1f0cce2 100644 +--- a/utils.c ++++ b/utils.c +@@ -83,6 +83,8 @@ char **string_to_argv(const char *s) + argv = realloc (argv, sizeof (char*) * (n_spaces+1)); + argv[n_spaces] = NULL; + ++ free(str); ++ + return argv; + } + +-- +1.9.1 + diff --git a/x11-misc/dunst-1.0.0/net-wm-window-type_followup.patch b/x11-misc/dunst-1.0.0/net-wm-window-type_followup.patch new file mode 100644 index 0000000..b01eb01 --- /dev/null +++ b/x11-misc/dunst-1.0.0/net-wm-window-type_followup.patch @@ -0,0 +1,81 @@ +From 0466d41c507352766d86f4e2e9292b68162dc6eb Mon Sep 17 00:00:00 2001 +From: Yuri D'Elia +Date: Thu, 6 Mar 2014 16:47:06 +0100 +Subject: [PATCH] Set _NET_WM_STATE_ABOVE and fix window type. + +- Fix indentation. +- Fix wrong paramenters in call to XChangeProperty +- Do not try to raise the window, set _NET_WM_STATE_ABOVE instead +--- + x.c | 36 +++++++++++++++++++----------------- + 1 file changed, 19 insertions(+), 17 deletions(-) + +diff --git a/x.c b/x.c +index a4e877f..f552f1b 100644 +--- a/x.c ++++ b/x.c +@@ -581,10 +581,6 @@ gboolean x_mainloop_fd_dispatch(GSource * source, GSourceFunc callback, + case SelectionNotify: + if (ev.xselection.property == xctx.utf8) + break; +- case VisibilityNotify: +- if (ev.xvisibility.state != VisibilityUnobscured) +- XRaiseWindow(xctx.dpy, xctx.win); +- break; + case ButtonPress: + if (ev.xbutton.window == xctx.win) { + x_handle_click(ev); +@@ -854,23 +850,29 @@ void x_setup(void) + } + + +-static void x_set_win_type(Window win) ++static void x_set_wm(Window win) + { + +- long data[2]; ++ Atom data[2]; ++ ++ /* set window type */ ++ Atom net_wm_window_type = ++ XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE", false); ++ ++ data[0] = XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE_NOTIFICATION", false); ++ data[1] = XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE_UTILITY", false); ++ ++ XChangeProperty(xctx.dpy, win, net_wm_window_type, XA_ATOM, 32, ++ PropModeReplace, (unsigned char *) data, 2L); + +- Atom net_wm_window_type = +- XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE", false); +- Atom net_wm_window_type_notification = +- XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE_NOTIFICATION", false); +- Atom net_wm_window_type_utility = +- XInternAtom(xctx.dpy, "_NET_WM_WINDOW_TYPE_UTILITY", false); ++ /* set state above */ ++ Atom net_wm_state = ++ XInternAtom(xctx.dpy, "_NET_WM_STATE", false); + +- data[0] = net_wm_window_type_notification; +- data[1] = net_wm_window_type_utility; ++ data[0] = XInternAtom(xctx.dpy, "_NET_WM_STATE_ABOVE", false); + +- XChangeProperty(xctx.dpy, win, net_wm_window_type, XA_ATOM, 32, +- PropModeReplace, (unsigned char *) &data, 1L); ++ XChangeProperty(xctx.dpy, win, net_wm_state, XA_ATOM, 32, ++ PropModeReplace, (unsigned char *) data, 1L); + } + + /* +@@ -906,7 +908,7 @@ static void x_win_setup(void) + DefaultScreen(xctx.dpy)), + CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); + +- x_set_win_type(xctx.win); ++ x_set_wm(xctx.win); + settings.transparency = + settings.transparency > 100 ? 100 : settings.transparency; + setopacity(xctx.win, +-- +1.9.1 + -- cgit v1.2.3