static void kpress(XEvent *);
static void resize(XEvent *);
static void focus(XEvent *);
-static void brelease(XEvent *e);
-static void bpress(XEvent *e);
-static void bmotion(XEvent *e);
+static void brelease(XEvent *);
+static void bpress(XEvent *);
+static void bmotion(XEvent *);
static void (*handler[LASTEvent])(XEvent *) = {
static pid_t pid;
static Selection sel;
-/* TODO: use X11 clipboard */
+void
+selinit(void) {
+ sel.mode = 0;
+ sel.bx = -1;
+ sel.clip = NULL;
+}
static inline int selected(int x, int y) {
if ((sel.ey==y && sel.by==y)) {
return str;
}
-static void clipboard_copy(char *str) {
+/* TODO: use X11 clipboard */
+static void selcopy(char *str) {
free(sel.clip);
sel.clip = str;
}
-static void clipboard_paste() {
+static void selpaste() {
if(sel.clip)
ttywrite(sel.clip, strlen(sel.clip));
}
-// TODO: doubleclick to select word
+/* TODO: doubleclick to select word */
static void brelease(XEvent *e) {
int b;
sel.mode = 0;
xw.bufw = xw.w - 2*BORDER;
xw.bufh = xw.h - 2*BORDER;
xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
- xw.hasfocus = 1;
/* gc */
dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL);
+
+ /* event mask */
+ XSelectInput(xw.dis, xw.win, ExposureMask | KeyPressMask
+ | StructureNotifyMask | FocusChangeMask | PointerMotionMask
+ | ButtonPressMask | ButtonReleaseMask);
+
XMapWindow(xw.dis, xw.win);
xhints();
XStoreName(xw.dis, xw.win, "st");
XEvent ev;
fd_set rfd;
int xfd = XConnectionNumber(xw.dis);
- long mask = ExposureMask | KeyPressMask | StructureNotifyMask
- | FocusChangeMask | PointerMotionMask | ButtonPressMask
- | ButtonReleaseMask;
-
- XSelectInput(xw.dis, xw.win, mask);
- XResizeWindow(xw.dis, xw.win, xw.w, xw.h); /* XXX: fix resize bug in wmii (?) */
for(;;) {
FD_ZERO(&rfd);
tnew(80, 24);
ttynew();
xinit();
+ selinit();
run();
return 0;
}