From 8cad6ae9d6a26efcdc26f9d9338cb034a9027e32 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 16 Nov 2017 10:29:21 +0530 Subject: [PATCH] Fix leak-on-exit from libstartup-notification --- kitty/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kitty/utils.py b/kitty/utils.py index f88877164..b33a09c9e 100644 --- a/kitty/utils.py +++ b/kitty/utils.py @@ -232,7 +232,7 @@ def adjust_line_height(cell_height, val): return int(cell_height * val) -def init_startup_notification_x11(window): +def init_startup_notification_x11(window_id): # https://specifications.freedesktop.org/startup-notification-spec/startup-notification-latest.txt display = x11_display() if not display: @@ -250,16 +250,21 @@ def init_startup_notification_x11(window): f.restype = ctypes.c_void_p f.argtypes = [ctypes.c_void_p, ctypes.c_int] ctx = f(display, 0) + f = lib.sn_display_unref + f.argtypes = [ctypes.c_void_p] + f.restype = None + f(display) os.environ.pop('DESKTOP_STARTUP_ID', None) # ensure child processes dont get this env var if ctx: f = lib.sn_launchee_context_setup_window f.argtypes = [ctypes.c_void_p, ctypes.c_int32] - f(ctx, x11_window_id(window)) + f(ctx, x11_window_id(window_id)) return ctx def end_startup_notification_x11(ctx): lib = init_startup_notification_x11.lib + del init_startup_notification_x11.lib f = lib.sn_launchee_context_complete f.restype = None f.argtypes = [ctypes.c_void_p]