diff options
author | sabetts <sabetts> | 2003-02-27 12:33:00 +0000 |
---|---|---|
committer | sabetts <sabetts> | 2003-02-27 12:33:00 +0000 |
commit | 293fca91a75f15c696c2f1d9dd4227f558cfc26f (patch) | |
tree | 9fa4d15ede6975b561b07d4d8004c0885c8124fd /src/bar.c | |
parent | 6b341ac568efd980ddbbbfbb2c4960204879afdb (diff) | |
download | ratpoison-293fca91a75f15c696c2f1d9dd4227f558cfc26f.zip |
* src/main.c (free_screen): new function
(clean_up): call free_screen on each screen. free the screen
array. free defaults.window_fmt.
* src/number.h (free_numbers): new prototype
* src/number.c (free_numbers): new function
* src/manage.c (get_wmname): use XGetWindowProperty to get the
window name.
(unmanaged_window): free wname after using it.
* src/main.c (wm_name): new global
(main): internalize WM_NAME atom.
(clean_up): free data structures for keybindings, aliases, the
bar, window numbers, and input history.
* src/input.h (free_history): new prototype
* src/input.c (free_history): new function
* src/events.c (execute_remote_command): free properties returned
by XGetWindowProperty().
* src/data.h (wm_name): new extern
* src/communications.c (recieve_command_result): free properties
returned by XGetWindowProperty().
* src/bar.h (free_bar): new prototype
* src/bar.c (update_window_names): bar_buffer is not static.
(update_window_names): free bar_buffer after using it.
(marked_message): free the GC after using it.
(free_bar): new function.
* src/actions.h (free_keybindings): new prototype
(free_aliases): likewise
* src/actions.c (free_keybindings): new function
(free_aliases): likewise
(cmd_tmpwm): unmap the key window before calling the new wm, and
remap it afterwards.
Diffstat (limited to 'src/bar.c')
-rw-r--r-- | src/bar.c | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -138,19 +138,18 @@ bar_y (screen_info *s) void update_window_names (screen_info *s) { - static struct sbuf *bar_buffer = NULL; - + struct sbuf *bar_buffer; int mark_start = 0; int mark_end = 0; if (s->bar_is_raised != BAR_IS_WINDOW_LIST) return; - if (bar_buffer == NULL) - bar_buffer = sbuf_new (0); + bar_buffer = sbuf_new (0); get_window_list (defaults.window_fmt, NULL, bar_buffer, &mark_start, &mark_end); marked_message (sbuf_get (bar_buffer), mark_start, mark_end); + sbuf_free (bar_buffer); } void @@ -253,11 +252,13 @@ marked_message (char *msg, int mark_start, int mark_end) lgc = XCreateGC(dpy, s->root, mask, &lgv); XFillRectangle (dpy, s->bar_window, lgc, start, 0, width, height); + XFreeGC (dpy, lgc); lgv.foreground = s->bg_color; lgc = XCreateGC(dpy, s->root, mask, &lgv); XFillRectangle (dpy, s->bar_window, lgc, start, 0, width, height); + XFreeGC (dpy, lgc); } /* Keep a record of the message. */ @@ -283,3 +284,11 @@ show_last_message () marked_message (msg, last_mark_start, last_mark_end); free (msg); } + +/* Free any memory associated with the bar. */ +void +free_bar () +{ + if (last_msg) + free (last_msg); +} |