diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-05-11 15:20:01 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-05-11 15:20:01 -0400 |
commit | b92788dee979855f753e030cb8be8d19c22d00df (patch) | |
tree | 1c8992c28e0b874dacf33bd912d6a372f1c5b243 /src/window-backend-xlib.c | |
parent | b11900bb0594b5e04c4ad69237d0a61146f85d35 (diff) | |
download | runes-b92788dee979855f753e030cb8be8d19c22d00df.tar.gz runes-b92788dee979855f753e030cb8be8d19c22d00df.zip |
split global window management stuff out into its own file
also rename a few things for clarity
Diffstat (limited to 'src/window-backend-xlib.c')
-rw-r--r-- | src/window-backend-xlib.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/window-backend-xlib.c b/src/window-backend-xlib.c new file mode 100644 index 0000000..651437c --- /dev/null +++ b/src/window-backend-xlib.c @@ -0,0 +1,45 @@ +#include <stdlib.h> +#include <X11/Xlib.h> +#include <X11/Xatom.h> + +#include "runes.h" +#include "window-backend-xlib.h" + +#include "config.h" +#include "display.h" +#include "loop.h" +#include "pty-unix.h" +#include "term.h" + +static char *atom_names[RUNES_NUM_ATOMS] = { + "WM_DELETE_WINDOW", + "_NET_WM_PING", + "_NET_WM_PID", + "_NET_WM_ICON_NAME", + "_NET_WM_NAME", + "UTF8_STRING", + "WM_PROTOCOLS", + "TARGETS", + "RUNES_FLUSH", + "RUNES_SELECTION" +}; + +RunesWindowBackend *runes_window_backend_new() +{ + RunesWindowBackend *wb; + + XInitThreads(); + XSetLocaleModifiers(""); + + wb = calloc(1, sizeof(RunesWindowBackend)); + wb->dpy = XOpenDisplay(NULL); + XInternAtoms(wb->dpy, atom_names, RUNES_NUM_ATOMS, False, wb->atoms); + + return wb; +} + +void runes_window_backend_delete(RunesWindowBackend *wb) +{ + XCloseDisplay(wb->dpy); + free(wb); +} |