commit 2af8fef0e0e939b2c148ca0048430ec83311c91c
parent 9a0bae0b61715d77c4f0d6da981949053e30bfd6
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Mon, 3 Jul 2006 18:41:14 +0200
renamed Blitz' dsiplay into dpy
Diffstat:
14 files changed, 279 insertions(+), 389 deletions(-)
diff --git a/cmd/wm/bar.c b/cmd/wm/bar.c
@@ -66,8 +66,8 @@ resize_bar(WMScreen *s)
s->brect = s->rect;
s->brect.height = height_of_bar();
s->brect.y = s->rect.height - s->brect.height;
- XMoveResizeWindow(blz.display, s->barwin, s->brect.x, s->brect.y, s->brect.width, s->brect.height);
- XSync(blz.display, False);
+ XMoveResizeWindow(blz.dpy, s->barwin, s->brect.x, s->brect.y, s->brect.width, s->brect.height);
+ XSync(blz.dpy, False);
draw_bar(s);
for(v=view; v; v=v->next)
@@ -135,9 +135,9 @@ draw_bar(WMScreen *s)
blitz_draw_label(&b->brush, b->text);
}
MapBar:
- XCopyArea(blz.display, s->bbrush.drawable, s->barwin, s->bbrush.gc, 0, 0,
+ XCopyArea(blz.dpy, s->bbrush.drawable, s->barwin, s->bbrush.gc, 0, 0,
s->brect.width, s->brect.height, 0, 0);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
Bar *
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -55,15 +55,15 @@ update_client_name(Client *c)
name.nitems = 0;
c->name[0] = 0;
- XGetTextProperty(blz.display, c->win, &name, net_atom[NetWMName]);
+ XGetTextProperty(blz.dpy, c->win, &name, net_atom[NetWMName]);
if(!name.nitems)
- XGetWMName(blz.display, c->win, &name);
+ XGetWMName(blz.dpy, c->win, &name);
if(!name.nitems)
return;
if(name.encoding == XA_STRING)
cext_strlcpy(c->name, (char *)name.value, sizeof(c->name));
else {
- if(XmbTextPropertyToTextList(blz.display, &name, &list, &n) >= Success
+ if(XmbTextPropertyToTextList(blz.dpy, &name, &list, &n) >= Success
&& n > 0 && *list)
{
cext_strlcpy(c->name, *list, sizeof(c->name));
@@ -71,7 +71,7 @@ update_client_name(Client *c)
}
}
XFree(name.value);
- if(XGetClassHint(blz.display, c->win, &ch)) {
+ if(XGetClassHint(blz.dpy, c->win, &ch)) {
snprintf(c->props, sizeof(c->props), "%s:%s:%s",
ch.res_class ? ch.res_class : "",
ch.res_name ? ch.res_name : "",
@@ -99,10 +99,10 @@ create_client(Window w, XWindowAttributes *wa)
c->border = wa->border_width;
c->rect.width = wa->width;
c->rect.height = wa->height;
- XSetWindowBorderWidth(blz.display, c->win, 0);
+ XSetWindowBorderWidth(blz.dpy, c->win, 0);
c->proto = win_proto(c->win);
- XGetTransientForHint(blz.display, c->win, &c->trans);
- if(!XGetWMNormalHints(blz.display, c->win, &c->size, &msize) || !c->size.flags)
+ XGetTransientForHint(blz.dpy, c->win, &c->trans);
+ if(!XGetWMNormalHints(blz.dpy, c->win, &c->size, &msize) || !c->size.flags)
c->size.flags = PSize;
if(c->size.flags & PMinSize && c->size.flags & PMaxSize
&& c->size.min_width == c->size.max_width
@@ -110,7 +110,7 @@ create_client(Window w, XWindowAttributes *wa)
c->fixedsize = True;
else
c->fixedsize = False;
- XAddToSaveSet(blz.display, c->win);
+ XAddToSaveSet(blz.dpy, c->win);
update_client_name(c);
fwa.override_redirect = 1;
fwa.background_pixmap = ParentRelative;
@@ -118,14 +118,14 @@ create_client(Window w, XWindowAttributes *wa)
SubstructureRedirectMask | SubstructureNotifyMask | ExposureMask
| ButtonPressMask | PointerMotionMask | ButtonReleaseMask | KeyPressMask;
- c->framewin = XCreateWindow(blz.display, blz.root, c->rect.x, c->rect.y,
+ c->framewin = XCreateWindow(blz.dpy, blz.root, c->rect.x, c->rect.y,
c->rect.width + 2 * def.border,
c->rect.height + def.border + height_of_bar(), 0,
- DefaultDepth(blz.display, blz.screen), CopyFromParent,
- DefaultVisual(blz.display, blz.screen),
+ DefaultDepth(blz.dpy, blz.screen), CopyFromParent,
+ DefaultVisual(blz.dpy, blz.screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &fwa);
- c->gc = XCreateGC(blz.display, c->framewin, 0, 0);
- XSync(blz.display, False);
+ c->gc = XCreateGC(blz.dpy, c->framewin, 0, 0);
+ XSync(blz.dpy, False);
for(t=&client, i=0; *t; t=&(*t)->next, i++);
c->next = *t; /* *t == nil */
@@ -139,7 +139,7 @@ void
set_client_state(Client * c, int state)
{
long data[] = { state, None };
- XChangeProperty(blz.display, c->win, wm_atom[WMState], wm_atom[WMState], 32,
+ XChangeProperty(blz.dpy, c->win, wm_atom[WMState], wm_atom[WMState], 32,
PropModeReplace, (unsigned char *) data, 2);
}
@@ -185,7 +185,7 @@ focus_client(Client *c, Bool restack)
if(!c->floating && f->area->mode == Colstack)
arrange_column(f->area, False);
- XSetInputFocus(blz.display, c->win, RevertToPointerRoot, CurrentTime);
+ XSetInputFocus(blz.dpy, c->win, RevertToPointerRoot, CurrentTime);
if(old && old != old_in_area && old != c) {
update_frame_widget_colors(old->sel);
draw_frame(old->sel);
@@ -196,34 +196,34 @@ focus_client(Client *c, Bool restack)
}
update_frame_widget_colors(c->sel);
draw_frame(c->sel);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
write_event("ClientFocus %d\n", idx_of_client(c));
}
void
map_client(Client *c)
{
- XSelectInput(blz.display, c->win, CLIENT_MASK & ~StructureNotifyMask);
- XMapWindow(blz.display, c->win);
- XSelectInput(blz.display, c->win, CLIENT_MASK);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
+ XMapWindow(blz.dpy, c->win);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK);
set_client_state(c, NormalState);
}
void
unmap_client(Client *c)
{
- XSelectInput(blz.display, c->win, CLIENT_MASK & ~StructureNotifyMask);
- XUnmapWindow(blz.display, c->win);
- XSelectInput(blz.display, c->win, CLIENT_MASK);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
+ XUnmapWindow(blz.dpy, c->win);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK);
set_client_state(c, WithdrawnState);
}
void
reparent_client(Client *c, Window w, int x, int y)
{
- XSelectInput(blz.display, c->win, CLIENT_MASK & ~StructureNotifyMask);
- XReparentWindow(blz.display, c->win, w, x, y);
- XSelectInput(blz.display, c->win, CLIENT_MASK);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
+ XReparentWindow(blz.dpy, c->win, w, x, y);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK);
}
void
@@ -245,10 +245,10 @@ configure_client(Client *c)
e.border_width = c->border;
e.above = None;
e.override_redirect = False;
- XSelectInput(blz.display, c->win, CLIENT_MASK & ~StructureNotifyMask);
- XSendEvent(blz.display, c->win, False, StructureNotifyMask, (XEvent *) & e);
- XSelectInput(blz.display, c->win, CLIENT_MASK);
- XSync(blz.display, False);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK & ~StructureNotifyMask);
+ XSendEvent(blz.dpy, c->win, False, StructureNotifyMask, (XEvent *) & e);
+ XSelectInput(blz.dpy, c->win, CLIENT_MASK);
+ XSync(blz.dpy, False);
}
static void
@@ -262,8 +262,8 @@ send_client_message(Window w, Atom a, long value)
e.xclient.data.l[0] = value;
e.xclient.data.l[1] = CurrentTime;
- XSendEvent(blz.display, w, False, NoEventMask, &e);
- XSync(blz.display, False);
+ XSendEvent(blz.dpy, w, False, NoEventMask, &e);
+ XSync(blz.dpy, False);
}
void
@@ -272,7 +272,7 @@ kill_client(Client * c)
if(c->proto & WM_PROTOCOL_DELWIN)
send_client_message(c->win, wm_atom[WMProtocols], wm_atom[WMDelete]);
else
- XKillClient(blz.display, c->win);
+ XKillClient(blz.dpy, c->win);
}
void
@@ -287,10 +287,10 @@ prop_client(Client *c, XPropertyEvent *e)
}
switch (e->atom) {
case XA_WM_TRANSIENT_FOR:
- XGetTransientForHint(blz.display, c->win, &c->trans);
+ XGetTransientForHint(blz.dpy, c->win, &c->trans);
break;
case XA_WM_NORMAL_HINTS:
- if(!XGetWMNormalHints(blz.display, c->win, &c->size, &msize) || !c->size.flags) {
+ if(!XGetWMNormalHints(blz.dpy, c->win, &c->size, &msize) || !c->size.flags) {
c->size.flags = PSize;
}
if(c->size.flags & PMinSize && c->size.flags & PMaxSize
@@ -377,7 +377,7 @@ manage_client(Client *c)
Client *trans;
tags.nitems = 0;
- XGetTextProperty(blz.display, c->win, &tags, tags_atom);
+ XGetTextProperty(blz.dpy, c->win, &tags, tags_atom);
if(c->trans && (trans = client_of_win(c->trans)))
cext_strlcpy(c->tags, trans->tags, sizeof(c->tags));
@@ -395,8 +395,8 @@ manage_client(Client *c)
if(!starting)
update_views();
map_client(c);
- XMapWindow(blz.display, c->framewin);
- XSync(blz.display, False);
+ XMapWindow(blz.dpy, c->framewin);
+ XSync(blz.dpy, False);
if(c->sel->area->view == screen->sel)
focus_client(c, False);
flush_masked_events(EnterWindowMask);
@@ -414,7 +414,7 @@ destroy_client(Client *c)
char *dummy = nil;
Client **tc;
- XGrabServer(blz.display);
+ XGrabServer(blz.dpy);
XSetErrorHandler(dummy_error_handler);
if(c->frame) {
@@ -427,8 +427,8 @@ destroy_client(Client *c)
unmap_client(c);
reparent_client(c, blz.root, c->rect.x, c->rect.y);
- XFreeGC(blz.display, c->gc);
- XDestroyWindow(blz.display, c->framewin);
+ XFreeGC(blz.dpy, c->gc);
+ XDestroyWindow(blz.dpy, c->framewin);
for(tc=&client; *tc && *tc != c; tc=&(*tc)->next);
cext_assert(*tc == c);
@@ -437,9 +437,9 @@ destroy_client(Client *c)
update_views();
free(c);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
XSetErrorHandler(wmii_error_handler);
- XUngrabServer(blz.display);
+ XUngrabServer(blz.dpy);
flush_masked_events(EnterWindowMask);
}
@@ -555,10 +555,10 @@ resize_client(Client *c, XRectangle *r, Bool ignore_xcall)
}
}
if(f->area->view == screen->sel)
- XMoveResizeWindow(blz.display, c->framewin, f->rect.x,
+ XMoveResizeWindow(blz.dpy, c->framewin, f->rect.x,
f->rect.y, f->rect.width, f->rect.height);
else
- XMoveResizeWindow(blz.display, c->framewin, 2 * screen->rect.width + f->rect.x,
+ XMoveResizeWindow(blz.dpy, c->framewin, 2 * screen->rect.width + f->rect.x,
f->rect.y, f->rect.width, f->rect.height);
}
@@ -569,7 +569,7 @@ resize_client(Client *c, XRectangle *r, Bool ignore_xcall)
c->rect.height = f->rect.height - def.border - height_of_bar();
}
if(!ignore_xcall) {
- XMoveResizeWindow(blz.display, c->win, c->rect.x, c->rect.y,
+ XMoveResizeWindow(blz.dpy, c->win, c->rect.x, c->rect.y,
c->rect.width, c->rect.height);
configure_client(c);
}
@@ -799,11 +799,11 @@ apply_tags(Client *c, const char *tags)
toks[n] = nil;
update_client_views(c, toks);
- XChangeProperty(blz.display, c->win, tags_atom, XA_STRING, 8,
+ XChangeProperty(blz.dpy, c->win, tags_atom, XA_STRING, 8,
PropModeReplace, (unsigned char *)c->tags, strlen(c->tags));
for(f = c->frame; f; f = f->cnext)
- blitz_settext_input(&f->tagbar, c->tags);
+ blitz_setinput(&f->tagbar, c->tags);
}
static void
diff --git a/cmd/wm/event.c b/cmd/wm/event.c
@@ -45,8 +45,8 @@ void
check_x_event(IXPConn *c)
{
XEvent ev;
- while(XPending(blz.display)) { /* main event loop */
- XNextEvent(blz.display, &ev);
+ while(XPending(blz.dpy)) { /* main event loop */
+ XNextEvent(blz.dpy, &ev);
if(handler[ev.type])
(handler[ev.type]) (&ev); /* call handler */
}
@@ -57,7 +57,7 @@ flush_masked_events(long even_mask)
{
XEvent ev;
unsigned int n = 0;
- while(XCheckMaskEvent(blz.display, even_mask, &ev)) n++;
+ while(XCheckMaskEvent(blz.dpy, even_mask, &ev)) n++;
return n;
}
@@ -171,7 +171,7 @@ handle_configurerequest(XEvent *e)
if(c->sel->area->view != screen->sel)
wc.x += 2 * screen->rect.width;
if(c->sel->area->floating) {
- XConfigureWindow(blz.display, c->framewin, ev->value_mask, &wc);
+ XConfigureWindow(blz.dpy, c->framewin, ev->value_mask, &wc);
configure_client(c);
}
}
@@ -194,9 +194,9 @@ handle_configurerequest(XEvent *e)
wc.stack_mode = Above;
ev->value_mask &= ~CWStackMode;
ev->value_mask |= CWBorderWidth;
- XConfigureWindow(blz.display, ev->window, ev->value_mask, &wc);
+ XConfigureWindow(blz.dpy, ev->window, ev->value_mask, &wc);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
static void
@@ -275,7 +275,7 @@ handle_keypress(XEvent *e)
return;
buf[n] = 0;
- if(blitz_kpress_input(&f->tagbar, ev->state, k, buf))
+ if(blitz_kpress_input(&f->tagbar, k, buf))
draw_frame(f);
}
else
@@ -294,11 +294,11 @@ handle_maprequest(XEvent *e)
XMapRequestEvent *ev = &e->xmaprequest;
static XWindowAttributes wa;
- if(!XGetWindowAttributes(blz.display, ev->window, &wa))
+ if(!XGetWindowAttributes(blz.dpy, ev->window, &wa))
return;
if(wa.override_redirect) {
- XSelectInput(blz.display, ev->window,
+ XSelectInput(blz.dpy, ev->window,
(StructureNotifyMask | PropertyChangeMask));
return;
}
diff --git a/cmd/wm/frame.c b/cmd/wm/frame.c
@@ -21,7 +21,8 @@ create_frame(Client *c, View *v)
if(c->frame) {
f->revert = c->sel->revert;
f->rect = c->sel->rect;
- }else{
+ }
+ else{
f->revert = f->rect = c->rect;
f->revert.width = f->rect.width += 2 * def.border;
f->revert.height = f->rect.height += def.border + height_of_bar();
@@ -40,11 +41,11 @@ create_frame(Client *c, View *v)
f->tagbar.blitz = &blz;
f->tagbar.drawable = pmap;
- f->tagbar.window = c->framewin;
+ f->tagbar.win = c->framewin;
f->tagbar.gc = c->gc;
f->tagbar.font = &def.font;
f->tagbar.color = def.normcolor;
- blitz_settext_input(&f->tagbar, c->tags);
+ blitz_setinput(&f->tagbar, c->tags);
return f;
}
@@ -132,9 +133,9 @@ draw_frame(Frame *f)
blitz_draw_input(&f->tagbar);
blitz_draw_label(&f->titlebar, f->client->name);
blitz_draw_label(&f->posbar, buffer);
- XCopyArea(blz.display, pmap, f->client->framewin, f->client->gc,
+ XCopyArea(blz.dpy, pmap, f->client->framewin, f->client->gc,
0, 0, f->rect.width, f->rect.height, 0, 0);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
void
diff --git a/cmd/wm/key.c b/cmd/wm/key.c
@@ -22,8 +22,8 @@ init_lock_keys()
int i;
num_lock_mask = 0;
- modmap = XGetModifierMapping(blz.display);
- num_lock = XKeysymToKeycode(blz.display, XStringToKeysym("Num_Lock"));
+ modmap = XGetModifierMapping(blz.dpy);
+ num_lock = XKeysymToKeycode(blz.dpy, XStringToKeysym("Num_Lock"));
if(modmap && modmap->max_keypermod > 0) {
int max = (sizeof(masks) / sizeof(int)) * modmap->max_keypermod;
@@ -60,26 +60,26 @@ mod_key_of_str(char *val)
static void
grab_key(Key *k)
{
- XGrabKey(blz.display, k->key, k->mod, blz.root,
+ XGrabKey(blz.dpy, k->key, k->mod, blz.root,
True, GrabModeAsync, GrabModeAsync);
if(num_lock_mask) {
- XGrabKey(blz.display, k->key, k->mod | num_lock_mask, blz.root,
+ XGrabKey(blz.dpy, k->key, k->mod | num_lock_mask, blz.root,
True, GrabModeAsync, GrabModeAsync);
- XGrabKey(blz.display, k->key, k->mod | num_lock_mask | LockMask, blz.root,
+ XGrabKey(blz.dpy, k->key, k->mod | num_lock_mask | LockMask, blz.root,
True, GrabModeAsync, GrabModeAsync);
}
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
static void
ungrab_key(Key *k)
{
- XUngrabKey(blz.display, k->key, k->mod, blz.root);
+ XUngrabKey(blz.dpy, k->key, k->mod, blz.root);
if(num_lock_mask) {
- XUngrabKey(blz.display, k->key, k->mod | num_lock_mask, blz.root);
- XUngrabKey(blz.display, k->key, k->mod | num_lock_mask | LockMask, blz.root);
+ XUngrabKey(blz.dpy, k->key, k->mod | num_lock_mask, blz.root);
+ XUngrabKey(blz.dpy, k->key, k->mod | num_lock_mask | LockMask, blz.root);
}
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
static Key *
@@ -121,7 +121,7 @@ get_key(const char *name)
kstr++;
else
kstr = seq[i];
- k->key = XKeysymToKeycode(blz.display, XStringToKeysym(kstr));
+ k->key = XKeysymToKeycode(blz.dpy, XStringToKeysym(kstr));
k->mod = mod_key_of_str(seq[i]);
}
if(r) {
@@ -140,10 +140,10 @@ next_keystroke(unsigned long *mod, KeyCode *keyCode)
KeySym sym;
*mod = 0;
do {
- XMaskEvent(blz.display, KeyPressMask, &e);
+ XMaskEvent(blz.dpy, KeyPressMask, &e);
*mod |= e.xkey.state & valid_mask;
*keyCode = (KeyCode) e.xkey.keycode;
- sym = XKeycodeToKeysym(blz.display, e.xkey.keycode, 0);
+ sym = XKeycodeToKeysym(blz.dpy, e.xkey.keycode, 0);
} while(IsModifierKey(sym));
}
@@ -154,18 +154,18 @@ emulate_key_press(unsigned long mod, KeyCode key)
Window client_win;
int revert;
- XGetInputFocus(blz.display, &client_win, &revert);
+ XGetInputFocus(blz.dpy, &client_win, &revert);
e.xkey.type = KeyPress;
e.xkey.time = CurrentTime;
e.xkey.window = client_win;
- e.xkey.display = blz.display;
+ e.xkey.display = blz.dpy;
e.xkey.state = mod;
e.xkey.keycode = key;
- XSendEvent(blz.display, client_win, True, KeyPressMask, &e);
+ XSendEvent(blz.dpy, client_win, True, KeyPressMask, &e);
e.xkey.type = KeyRelease;
- XSendEvent(blz.display, client_win, True, KeyReleaseMask, &e);
- XSync(blz.display, False);
+ XSendEvent(blz.dpy, client_win, True, KeyReleaseMask, &e);
+ XSync(blz.dpy, False);
}
static Key *
@@ -197,7 +197,7 @@ handle_key_seq(Window w, Key *done)
emulate_key_press(mod, key); /* double key */
else {
if(!found) {
- XBell(blz.display, 0);
+ XBell(blz.dpy, 0);
} /* grabbed but not found */
else if(!found->tnext && !found->next)
write_event("Key %s\n", found->name);
@@ -215,15 +215,15 @@ handle_key(Window w, unsigned long mod, KeyCode keycode)
Key *found = match_keys(key, mod, keycode, False);
if(!found) {
- XBell(blz.display, 0);
+ XBell(blz.dpy, 0);
} /* grabbed but not found */
else if(!found->tnext && !found->next)
write_event("Key %s\n", found->name);
else {
- XGrabKeyboard(blz.display, w, True, GrabModeAsync, GrabModeAsync, CurrentTime);
+ XGrabKeyboard(blz.dpy, w, True, GrabModeAsync, GrabModeAsync, CurrentTime);
handle_key_seq(w, found);
- XUngrabKeyboard(blz.display, CurrentTime);
- XSync(blz.display, False);
+ XUngrabKeyboard(blz.dpy, CurrentTime);
+ XSync(blz.dpy, False);
}
}
@@ -261,5 +261,5 @@ update_keys()
grab_key(k);
}
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
diff --git a/cmd/wm/mouse.c b/cmd/wm/mouse.c
@@ -159,14 +159,14 @@ draw_xor_border(XRectangle *r)
xor.y += 2;
xor.width = xor.width > 4 ? xor.width - 4 : 0;
xor.height = xor.height > 4 ? xor.height - 4 : 0;
- XSetLineAttributes(blz.display, xorgc, 1, LineSolid, CapNotLast, JoinMiter);
- XDrawLine(blz.display, blz.root, xorgc, xor.x + 2, xor.y + xor.height / 2,
+ XSetLineAttributes(blz.dpy, xorgc, 1, LineSolid, CapNotLast, JoinMiter);
+ XDrawLine(blz.dpy, blz.root, xorgc, xor.x + 2, xor.y + xor.height / 2,
xor.x + xor.width - 2, xor.y + xor.height / 2);
- XDrawLine(blz.display, blz.root, xorgc, xor.x + xor.width / 2, xor.y + 2,
+ XDrawLine(blz.dpy, blz.root, xorgc, xor.x + xor.width / 2, xor.y + 2,
xor.x + xor.width / 2, xor.y + xor.height - 2);
- XSetLineAttributes(blz.display, xorgc, 4, LineSolid, CapNotLast, JoinMiter);
- XDrawRectangles(blz.display, blz.root, xorgc, &xor, 1);
- XSync(blz.display, False);
+ XSetLineAttributes(blz.dpy, xorgc, 4, LineSolid, CapNotLast, JoinMiter);
+ XDrawRectangles(blz.dpy, blz.root, xorgc, &xor, 1);
+ XSync(blz.dpy, False);
}
void
@@ -186,7 +186,7 @@ do_mouse_resize(Client *c, BlitzAlign align)
XRectangle origin = frect;
XPoint pt;
- XQueryPointer(blz.display, c->framewin, &dummy, &dummy, &i, &i, &ox, &oy, &di);
+ XQueryPointer(blz.dpy, c->framewin, &dummy, &dummy, &i, &i, &ox, &oy, &di);
rx = (float)ox / frect.width;
ry = (float)oy / frect.height;
@@ -202,21 +202,21 @@ do_mouse_resize(Client *c, BlitzAlign align)
if(align&WEST)
ox -= px;
- XWarpPointer(blz.display, None, c->framewin, 0, 0, 0, 0, ox, oy);
+ XWarpPointer(blz.dpy, None, c->framewin, 0, 0, 0, 0, ox, oy);
}
- XTranslateCoordinates(blz.display, c->framewin, blz.root, ox, oy, &ox, &oy, &dummy);
+ XTranslateCoordinates(blz.dpy, c->framewin, blz.root, ox, oy, &ox, &oy, &dummy);
pt.x = ox; pt.y = oy;
- XSync(blz.display, False);
- if(XGrabPointer(blz.display, c->framewin, False, MouseMask, GrabModeAsync, GrabModeAsync,
+ XSync(blz.dpy, False);
+ if(XGrabPointer(blz.dpy, c->framewin, False, MouseMask, GrabModeAsync, GrabModeAsync,
None, cursor[CurResize], CurrentTime) != GrabSuccess)
return;
- XGrabServer(blz.display);
+ XGrabServer(blz.dpy);
draw_xor_border(&frect);
for(;;) {
- XMaskEvent(blz.display, MouseMask | ExposureMask, &ev);
+ XMaskEvent(blz.dpy, MouseMask | ExposureMask, &ev);
switch (ev.type) {
case ButtonRelease:
draw_xor_border(&frect);
@@ -226,11 +226,11 @@ do_mouse_resize(Client *c, BlitzAlign align)
resize_client(c, &frect, False);
if(rects)
free(rects);
- XUngrabServer(blz.display);
- XUngrabPointer(blz.display, CurrentTime);
- XSync(blz.display, False);
+ XUngrabServer(blz.dpy);
+ XUngrabPointer(blz.dpy, CurrentTime);
+ XSync(blz.dpy, False);
- XWarpPointer(blz.display, None, c->framewin, 0, 0, 0, 0,
+ XWarpPointer(blz.dpy, None, c->framewin, 0, 0, 0, 0,
frect.width * rx, frect.height * ry);
return;
break;
@@ -239,7 +239,7 @@ do_mouse_resize(Client *c, BlitzAlign align)
pt.x = ev.xmotion.x;
pt.y = ev.xmotion.y;
- XTranslateCoordinates(blz.display, c->framewin, blz.root, ev.xmotion.x,
+ XTranslateCoordinates(blz.dpy, c->framewin, blz.root, ev.xmotion.x,
ev.xmotion.y, &px, &py, &dummy);
rect_morph_xy(&origin, px-ox, py-oy, &align);
@@ -266,12 +266,12 @@ do_mouse_resize(Client *c, BlitzAlign align)
void
grab_mouse(Window w, unsigned long mod, unsigned int button)
{
- XGrabButton(blz.display, button, mod, w, False, ButtonMask,
+ XGrabButton(blz.dpy, button, mod, w, False, ButtonMask,
GrabModeAsync, GrabModeSync, None, None);
if((mod != AnyModifier) && num_lock_mask) {
- XGrabButton(blz.display, button, mod | num_lock_mask, w, False, ButtonMask,
+ XGrabButton(blz.dpy, button, mod | num_lock_mask, w, False, ButtonMask,
GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(blz.display, button, mod | num_lock_mask | LockMask, w, False,
+ XGrabButton(blz.dpy, button, mod | num_lock_mask | LockMask, w, False,
ButtonMask, GrabModeAsync, GrabModeSync, None, None);
}
}
@@ -279,9 +279,9 @@ grab_mouse(Window w, unsigned long mod, unsigned int button)
void
ungrab_mouse(Window w, unsigned long mod, unsigned int button)
{
- XUngrabButton(blz.display, button, mod, w);
+ XUngrabButton(blz.dpy, button, mod, w);
if(mod != AnyModifier && num_lock_mask) {
- XUngrabButton(blz.display, button, mod | num_lock_mask, w);
- XUngrabButton(blz.display, button, mod | num_lock_mask | LockMask, w);
+ XUngrabButton(blz.dpy, button, mod | num_lock_mask, w);
+ XUngrabButton(blz.dpy, button, mod | num_lock_mask | LockMask, w);
}
}
diff --git a/cmd/wm/view.c b/cmd/wm/view.c
@@ -121,7 +121,7 @@ focus_view(WMScreen *s, View *v)
Frame *f;
Client *c;
- XGrabServer(blz.display);
+ XGrabServer(blz.dpy);
assign_sel_view(v);
update_frame_selectors(v);
@@ -131,9 +131,9 @@ focus_view(WMScreen *s, View *v)
if((f = c->sel)) {
if(f->view == v) {
resize_client(c, &f->rect, False);
- //XMoveWindow(blz.display, c->framewin, f->rect.x, f->rect.y);
+ //XMoveWindow(blz.dpy, c->framewin, f->rect.x, f->rect.y);
}else
- XMoveWindow(blz.display, c->framewin, 2 * s->rect.width + f->rect.x,
+ XMoveWindow(blz.dpy, c->framewin, 2 * s->rect.width + f->rect.x,
f->rect.y);
}
@@ -141,8 +141,8 @@ focus_view(WMScreen *s, View *v)
focus_client(c, True);
draw_frames();
- XSync(blz.display, False);
- XUngrabServer(blz.display);
+ XSync(blz.dpy, False);
+ XUngrabServer(blz.dpy);
flush_masked_events(EnterWindowMask);
}
@@ -209,7 +209,7 @@ restack_view(View *v)
}
if(n)
- XRestackWindows(blz.display, wins, n);
+ XRestackWindows(blz.dpy, wins, n);
}
void
diff --git a/cmd/wm/wm.c b/cmd/wm/wm.c
@@ -49,11 +49,11 @@ scan_wins()
XWindowAttributes wa;
Window d1, d2;
- if(XQueryTree(blz.display, blz.root, &d1, &d2, &wins, &num)) {
+ if(XQueryTree(blz.dpy, blz.root, &d1, &d2, &wins, &num)) {
for(i = 0; i < num; i++) {
- if(!XGetWindowAttributes(blz.display, wins[i], &wa))
+ if(!XGetWindowAttributes(blz.dpy, wins[i], &wa))
continue;
- if(wa.override_redirect || XGetTransientForHint(blz.display, wins[i], &d1))
+ if(wa.override_redirect || XGetTransientForHint(blz.dpy, wins[i], &d1))
continue;
if(wa.map_state == IsViewable)
manage_client(create_client(wins[i], &wa));
@@ -71,7 +71,7 @@ win_property(Window w, Atom a, Atom t, long l, unsigned char **prop)
unsigned long res, extra;
int status;
- status = XGetWindowProperty(blz.display, w, a, 0L, l, False, t, &real, &format,
+ status = XGetWindowProperty(blz.dpy, w, a, 0L, l, False, t, &real, &format,
&res, &extra, prop);
if(status != Success || *prop == 0) {
@@ -108,7 +108,7 @@ int
win_state(Window w)
{
/* state hints */
- XWMHints *hints = XGetWMHints(blz.display, w);
+ XWMHints *hints = XGetWMHints(blz.dpy, w);
int res;
long *prop = 0;
@@ -130,23 +130,23 @@ win_state(Window w)
static void
init_atoms()
{
- wm_atom[WMState] = XInternAtom(blz.display, "WM_STATE", False);
- wm_atom[WMProtocols] = XInternAtom(blz.display, "WM_PROTOCOLS", False);
- wm_atom[WMDelete] = XInternAtom(blz.display, "WM_DELETE_WINDOW", False);
- net_atom[NetSupported] = XInternAtom(blz.display, "_NET_SUPPORTED", False);
- net_atom[NetWMName] = XInternAtom(blz.display, "_NET_WM_NAME", False);
- tags_atom = XInternAtom(blz.display, "_WIN_TAGS", False);
-
- XChangeProperty(blz.display, blz.root, net_atom[NetSupported], XA_ATOM, 32,
+ wm_atom[WMState] = XInternAtom(blz.dpy, "WM_STATE", False);
+ wm_atom[WMProtocols] = XInternAtom(blz.dpy, "WM_PROTOCOLS", False);
+ wm_atom[WMDelete] = XInternAtom(blz.dpy, "WM_DELETE_WINDOW", False);
+ net_atom[NetSupported] = XInternAtom(blz.dpy, "_NET_SUPPORTED", False);
+ net_atom[NetWMName] = XInternAtom(blz.dpy, "_NET_WM_NAME", False);
+ tags_atom = XInternAtom(blz.dpy, "_WIN_TAGS", False);
+
+ XChangeProperty(blz.dpy, blz.root, net_atom[NetSupported], XA_ATOM, 32,
PropModeReplace, (unsigned char *) net_atom, NetLast);
}
static void
init_cursors()
{
- cursor[CurNormal] = XCreateFontCursor(blz.display, XC_left_ptr);
- cursor[CurResize] = XCreateFontCursor(blz.display, XC_sizing);
- cursor[CurMove] = XCreateFontCursor(blz.display, XC_fleur);
+ cursor[CurNormal] = XCreateFontCursor(blz.dpy, XC_left_ptr);
+ cursor[CurResize] = XCreateFontCursor(blz.dpy, XC_sizing);
+ cursor[CurMove] = XCreateFontCursor(blz.dpy, XC_fleur);
}
static void
@@ -162,15 +162,15 @@ init_screen(WMScreen *screen)
gcv.foreground = def.selcolor.bg;
gcv.plane_mask = AllPlanes;
gcv.graphics_exposures = False;
- xorgc = XCreateGC(blz.display, blz.root, GCForeground | GCGraphicsExposures |
+ xorgc = XCreateGC(blz.dpy, blz.root, GCForeground | GCGraphicsExposures |
GCFunction | GCSubwindowMode | GCPlaneMask, &gcv);
screen->rect.x = screen->rect.y = 0;
- screen->rect.width = DisplayWidth(blz.display, blz.screen);
- screen->rect.height = DisplayHeight(blz.display, blz.screen);
+ screen->rect.width = DisplayWidth(blz.dpy, blz.screen);
+ screen->rect.height = DisplayHeight(blz.dpy, blz.screen);
def.snap = screen->rect.height / 63;
- sel_screen = XQueryPointer(blz.display, blz.root, &w, &w, &ret, &ret, &ret, &ret, &mask);
+ sel_screen = XQueryPointer(blz.dpy, blz.root, &w, &w, &ret, &ret, &ret, &ret, &mask);
}
/*
@@ -198,7 +198,7 @@ wmii_error_handler(Display *dpy, XErrorEvent *error)
return 0;
fprintf(stderr, "wmiiwm: fatal error: Xrequest code=%d, Xerror code=%d\n",
error->request_code, error->error_code);
- return x_error_handler(blz.display, error); /* calls exit() */
+ return x_error_handler(blz.dpy, error); /* calls exit() */
}
/*
@@ -218,8 +218,8 @@ cleanup()
Client *c;
for(c=client; c; c=c->next)
reparent_client(c, blz.root, c->sel->rect.x, c->sel->rect.y);
- XSetInputFocus(blz.display, PointerRoot, RevertToPointerRoot, CurrentTime);
- XSync(blz.display, False);
+ XSetInputFocus(blz.dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
+ XSync(blz.dpy, False);
}
int
@@ -258,18 +258,18 @@ main(int argc, char *argv[])
starting = True;
- blz.display = XOpenDisplay(0);
- if(!blz.display)
- error("wmiiwm: cannot open display\n");
- blz.screen = DefaultScreen(blz.display);
- blz.root = RootWindow(blz.display, blz.screen);
+ blz.dpy = XOpenDisplay(0);
+ if(!blz.dpy)
+ error("wmiiwm: cannot open dpy\n");
+ blz.screen = DefaultScreen(blz.dpy);
+ blz.root = RootWindow(blz.dpy, blz.screen);
/* check if another WM is already running */
other_wm_running = 0;
XSetErrorHandler(startup_error_handler);
/* this causes an error if some other WM is running */
- XSelectInput(blz.display, blz.root, SubstructureRedirectMask | EnterWindowMask);
- XSync(blz.display, False);
+ XSelectInput(blz.dpy, blz.root, SubstructureRedirectMask | EnterWindowMask);
+ XSync(blz.dpy, False);
if(other_wm_running)
error("wmiiwm: another window manager is already running\n");
@@ -314,7 +314,7 @@ main(int argc, char *argv[])
if(setsid() == -1)
error("wmiim: can't setsid: %s\n", strerror(errno));
close(i);
- close(ConnectionNumber(blz.display));
+ close(ConnectionNumber(blz.dpy));
snprintf(execstr, name_len, "exec %s", wmiirc);
execl("/bin/sh", "sh", "-c", execstr, nil);
error("wmiiwm: can't exec \"%s\": %s\n", wmiirc, strerror(errno));
@@ -329,7 +329,7 @@ main(int argc, char *argv[])
ixp_server_open_conn(&srv, i, &p9srv, serve_9pcon, nil);
/* X server */
- ixp_server_open_conn(&srv, ConnectionNumber(blz.display), nil, check_x_event, nil);
+ ixp_server_open_conn(&srv, ConnectionNumber(blz.dpy), nil, check_x_event, nil);
view = nil;
client = nil;
@@ -370,12 +370,12 @@ main(int argc, char *argv[])
init_screen(s);
- pmap = XCreatePixmap(blz.display, blz.root, s->rect.width, s->rect.height,
- DefaultDepth(blz.display, blz.screen));
+ pmap = XCreatePixmap(blz.dpy, blz.root, s->rect.width, s->rect.height,
+ DefaultDepth(blz.dpy, blz.screen));
wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask;
wa.cursor = cursor[CurNormal];
- XChangeWindowAttributes(blz.display, blz.root, CWEventMask | CWCursor, &wa);
+ XChangeWindowAttributes(blz.dpy, blz.root, CWEventMask | CWCursor, &wa);
wa.override_redirect = 1;
wa.background_pixmap = ParentRelative;
@@ -385,16 +385,16 @@ main(int argc, char *argv[])
s->brect = s->rect;
s->brect.height = height_of_bar();
s->brect.y = s->rect.height - s->brect.height;
- s->barwin = XCreateWindow(blz.display, RootWindow(blz.display, blz.screen),
+ s->barwin = XCreateWindow(blz.dpy, RootWindow(blz.dpy, blz.screen),
s->brect.x, s->brect.y,
s->brect.width, s->brect.height, 0,
- DefaultDepth(blz.display, blz.screen),
- CopyFromParent, DefaultVisual(blz.display, blz.screen),
+ DefaultDepth(blz.dpy, blz.screen),
+ CopyFromParent, DefaultVisual(blz.dpy, blz.screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
s->bbrush.blitz = &blz;
- s->bbrush.gc = XCreateGC(blz.display, s->barwin, 0, 0);
+ s->bbrush.gc = XCreateGC(blz.dpy, s->barwin, 0, 0);
s->bbrush.drawable = pmap;
s->bbrush.rect = s->brect;
s->bbrush.rect.x = 0;
@@ -404,7 +404,7 @@ main(int argc, char *argv[])
s->bbrush.border = True;
draw_bar(s);
- XMapRaised(blz.display, s->barwin);
+ XMapRaised(blz.dpy, s->barwin);
}
screen = &screens[0];
@@ -419,7 +419,7 @@ main(int argc, char *argv[])
fprintf(stderr, "wmii: fatal: %s\n", errstr);
cleanup();
- XCloseDisplay(blz.display);
+ XCloseDisplay(blz.dpy);
ixp_server_close(&srv);
return errstr ? 1 : 0;
diff --git a/cmd/wmiimenu.c b/cmd/wmiimenu.c
@@ -185,9 +185,9 @@ draw_menu()
brush.rect.width = seek;
blitz_draw_label(&brush, item.size > nextoff ? ">" : nil);
}
- XCopyArea(blz.display, brush.drawable, win, brush.gc, 0, 0, irect.width,
+ XCopyArea(blz.dpy, brush.drawable, win, brush.gc, 0, 0, irect.width,
irect.height, 0, 0);
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
}
static void
@@ -367,19 +367,19 @@ main(int argc, char *argv[])
usage();
}
- blz.display = XOpenDisplay(0);
- if(!blz.display) {
- fprintf(stderr, "%s", "wmiimenu: cannot open display\n");
+ blz.dpy = XOpenDisplay(0);
+ if(!blz.dpy) {
+ fprintf(stderr, "%s", "wmiimenu: cannot open dpy\n");
exit(1);
}
- blz.screen = DefaultScreen(blz.display);
- blz.root = RootWindow(blz.display, blz.screen);
+ blz.screen = DefaultScreen(blz.dpy);
+ blz.root = RootWindow(blz.dpy, blz.screen);
maxname = read_allitems();
/* grab as early as possible, but after reading all items!!! */
while(XGrabKeyboard
- (blz.display, blz.root, True, GrabModeAsync,
+ (blz.dpy, blz.root, True, GrabModeAsync,
GrabModeAsync, CurrentTime) != GrabSuccess)
usleep(1000);
@@ -405,24 +405,24 @@ main(int argc, char *argv[])
wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask
| SubstructureRedirectMask | SubstructureNotifyMask;
- irect.width = DisplayWidth(blz.display, blz.screen);
+ irect.width = DisplayWidth(blz.dpy, blz.screen);
irect.height = font.ascent + font.descent + 4;
- irect.y = DisplayHeight(blz.display, blz.screen) - irect.height;
+ irect.y = DisplayHeight(blz.dpy, blz.screen) - irect.height;
irect.x = 0;
- win = XCreateWindow(blz.display, blz.root, irect.x, irect.y,
- irect.width, irect.height, 0, DefaultDepth(blz.display, blz.screen),
- CopyFromParent, DefaultVisual(blz.display, blz.screen),
+ win = XCreateWindow(blz.dpy, blz.root, irect.x, irect.y,
+ irect.width, irect.height, 0, DefaultDepth(blz.dpy, blz.screen),
+ CopyFromParent, DefaultVisual(blz.dpy, blz.screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
- XDefineCursor(blz.display, win, XCreateFontCursor(blz.display, XC_xterm));
- XSync(blz.display, False);
+ XDefineCursor(blz.dpy, win, XCreateFontCursor(blz.dpy, XC_xterm));
+ XSync(blz.dpy, False);
/* pixmap */
- gc = XCreateGC(blz.display, win, 0, 0);
- pmap = XCreatePixmap(blz.display, win, irect.width, irect.height,
- DefaultDepth(blz.display, blz.screen));
+ gc = XCreateGC(blz.dpy, win, 0, 0);
+ pmap = XCreatePixmap(blz.dpy, win, irect.width, irect.height,
+ DefaultDepth(blz.dpy, blz.screen));
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
brush.blitz = &blz;
brush.color = normcolor;
@@ -445,12 +445,12 @@ main(int argc, char *argv[])
text[0] = 0;
update_items(text);
- XMapRaised(blz.display, win);
+ XMapRaised(blz.dpy, win);
draw_menu();
- XSync(blz.display, False);
+ XSync(blz.dpy, False);
/* main event loop */
- while(!XNextEvent(blz.display, &ev)) {
+ while(!XNextEvent(blz.dpy, &ev)) {
switch (ev.type) {
case KeyPress:
handle_kpress(&ev.xkey);
@@ -467,11 +467,11 @@ main(int argc, char *argv[])
break;
}
- XUngrabKeyboard(blz.display, CurrentTime);
- XFreePixmap(blz.display, pmap);
- XFreeGC(blz.display, gc);
- XDestroyWindow(blz.display, win);
- XCloseDisplay(blz.display);
+ XUngrabKeyboard(blz.dpy, CurrentTime);
+ XFreePixmap(blz.dpy, pmap);
+ XFreeGC(blz.dpy, gc);
+ XDestroyWindow(blz.dpy, win);
+ XCloseDisplay(blz.dpy);
return ret;
}
diff --git a/liblitz/blitz.h b/liblitz/blitz.h
@@ -18,7 +18,7 @@ typedef struct BlitzBrush BlitzBrush;
typedef struct BlitzInput BlitzInput;
struct Blitz {
- Display *display;
+ Display *dpy;
int screen;
Window root;
};
@@ -66,10 +66,11 @@ struct BlitzInput {
char *text;
char *curstart;
char *curend;
- Bool drag;
unsigned int size;
+ unsigned int len;
+ Bool drag;
Drawable drawable;
- Window window;
+ Window win;
GC gc;
BlitzColor color;
BlitzFont *font;
@@ -101,5 +102,5 @@ Bool blitz_bpress_input(BlitzInput *i, int x, int y);
Bool blitz_brelease_input(BlitzInput *i, int x, int y);
Bool blitz_bmotion_input(BlitzInput *i, int x, int y);
Bool blitz_ispointinrect(int x, int y, XRectangle * r);
-void blitz_settext_input(BlitzInput *i, const char *text);
-Bool blitz_kpress_input(BlitzInput *i, unsigned long mod, KeySym k, const char *ks);
+void blitz_setinput(BlitzInput *i, char *text);
+Bool blitz_kpress_input(BlitzInput *i, KeySym k, char *ks);
diff --git a/liblitz/brush.c b/liblitz/brush.c
@@ -12,7 +12,7 @@
void
blitz_draw_tile(BlitzBrush *b)
{
- blitz_drawbg(b->blitz->display, b->drawable, b->gc, b->rect,
+ blitz_drawbg(b->blitz->dpy, b->drawable, b->gc, b->rect,
b->color, b->border);
}
@@ -35,10 +35,10 @@ blitz_draw_label(BlitzBrush *b, char *text)
gcv.foreground = b->color.fg;
gcv.background = b->color.bg;
if(b->font->set)
- XChangeGC(b->blitz->display, b->gc, GCForeground | GCBackground, &gcv);
+ XChangeGC(b->blitz->dpy, b->gc, GCForeground | GCBackground, &gcv);
else {
gcv.font = b->font->xfont->fid;
- XChangeGC(b->blitz->display, b->gc, GCForeground | GCBackground | GCFont, &gcv);
+ XChangeGC(b->blitz->dpy, b->gc, GCForeground | GCBackground | GCFont, &gcv);
}
h = b->font->ascent + b->font->descent;
@@ -78,8 +78,8 @@ blitz_draw_label(BlitzBrush *b, char *text)
break;
}
if(b->font->set)
- XmbDrawImageString(b->blitz->display, b->drawable, b->font->set, b->gc,
+ XmbDrawImageString(b->blitz->dpy, b->drawable, b->font->set, b->gc,
x, y, buf, len);
else
- XDrawImageString(b->blitz->display, b->drawable, b->gc, x, y, buf, len);
+ XDrawImageString(b->blitz->dpy, b->drawable, b->gc, x, y, buf, len);
}
diff --git a/liblitz/color.c b/liblitz/color.c
@@ -16,8 +16,8 @@ xloadcolor(Blitz *blitz, char *colstr)
cext_strlcpy(col, colstr, sizeof(col));
col[7] = 0;
- XAllocNamedColor(blitz->display,
- DefaultColormap(blitz->display, blitz->screen), col, &color, &color);
+ XAllocNamedColor(blitz->dpy,
+ DefaultColormap(blitz->dpy, blitz->screen), col, &color, &color);
return color.pixel;
}
diff --git a/liblitz/font.c b/liblitz/font.c
@@ -37,14 +37,14 @@ blitz_loadfont(Blitz *blitz, BlitzFont *font)
setlocale(LC_ALL, "");
if(font->set)
- XFreeFontSet(blitz->display, font->set);
- font->set = XCreateFontSet(blitz->display, fontname, &missing, &n, &def);
+ XFreeFontSet(blitz->dpy, font->set);
+ font->set = XCreateFontSet(blitz->dpy, fontname, &missing, &n, &def);
if(missing) {
while(n--)
fprintf(stderr, "liblitz: missing fontset: %s\n", missing[n]);
XFreeStringList(missing);
if(font->set) {
- XFreeFontSet(blitz->display, font->set);
+ XFreeFontSet(blitz->dpy, font->set);
font->set = nil;
}
}
@@ -67,12 +67,12 @@ blitz_loadfont(Blitz *blitz, BlitzFont *font)
}
else {
if(font->xfont)
- XFreeFont(blitz->display, font->xfont);
+ XFreeFont(blitz->dpy, font->xfont);
font->xfont = nil;
- font->xfont = XLoadQueryFont(blitz->display, fontname);
+ font->xfont = XLoadQueryFont(blitz->dpy, fontname);
if (!font->xfont) {
fontname = "fixed";
- font->xfont = XLoadQueryFont(blitz->display, fontname);
+ font->xfont = XLoadQueryFont(blitz->dpy, fontname);
}
if (!font->xfont) {
fprintf(stderr, "%s", "liblitz: error, cannot load 'fixed' font\n");
diff --git a/liblitz/input.c b/liblitz/input.c
@@ -25,10 +25,10 @@ xchangegc(BlitzInput *i, BlitzColor *c, Bool invert)
gcv.background = c->bg;
}
if(i->font->set)
- XChangeGC(i->blitz->display, i->gc, GCForeground | GCBackground, &gcv);
+ XChangeGC(i->blitz->dpy, i->gc, GCForeground | GCBackground, &gcv);
else {
gcv.font = i->font->xfont->fid;
- XChangeGC(i->blitz->display, i->gc, GCForeground | GCBackground | GCFont, &gcv);
+ XChangeGC(i->blitz->dpy, i->gc, GCForeground | GCBackground | GCFont, &gcv);
}
}
@@ -36,64 +36,69 @@ static void
xdrawtextpart(BlitzInput *i, char *start, char *end,
unsigned int *xoff, unsigned int yoff)
{
- char c;
+ unsigned int len;
- if(!start)
+ if(!start || !(len = end - start))
return;
- if(end) {
- c = *end;
- *end = 0;
- }
+
if(i->font->set)
- XmbDrawImageString(i->blitz->display, i->drawable, i->font->set, i->gc,
- *xoff, yoff, start, strlen(start));
+ XmbDrawImageString(i->blitz->dpy, i->drawable, i->font->set, i->gc,
+ *xoff, yoff, start, len);
else
- XDrawImageString(i->blitz->display, i->drawable, i->gc, *xoff, yoff,
- start, strlen(start));
+ XDrawImageString(i->blitz->dpy, i->drawable, i->gc, *xoff, yoff,
+ start, len);
+
+ *xoff += blitz_textwidth_l(i->font, start, len);
+}
+
+void
+blitz_setinput(BlitzInput *i, char *text)
+{
+ if(!text) {
+ if(i->size) {
+ i->text[0] = 0;
+ i->len = 0;
+ }
+ return;
+ }
- *xoff += blitz_textwidth(i->font, start);
- if(end)
- *end = c;
+ i->len = strlen(text);
+ if(i->len > i->size) {
+ i->size = 2 * i->len;
+ i->text = realloc(i->text, i->size);
+ }
+ memcpy(i->text, text, i->len + 1);
+ i->curstart = i->curend = i->text + i->len;
}
static char *
curend(BlitzInput *i)
{
- if(i->curstart && i->curend) {
- if(i->curstart < i->curend)
- return i->curend;
- else
- return i->curstart;
- }
- else if(i->curend)
- return nil;
- return i->curend;
+ if(i->curstart < i->curend)
+ return i->curend;
+ else
+ return i->curstart;
}
static char *
curstart(BlitzInput *i)
{
- if(i->curstart && i->curend) {
- if(i->curstart < i->curend)
- return i->curstart;
- else
- return i->curend;
- }
- else if(i->curend)
+ if(i->curstart < i->curend)
+ return i->curstart;
+ else
return i->curend;
- return i->curstart;
}
void
blitz_draw_input(BlitzInput *i)
{
- unsigned int xoff, yoff, xcursor, h;
char *start, *end;
+ unsigned int xoff, yoff, xcursor, h;
if (!i)
return;
- blitz_drawbg(i->blitz->display, i->drawable, i->gc, i->rect, i->color, True);
+ blitz_drawbg(i->blitz->dpy, i->drawable, i->gc, i->rect, i->color, True);
h = (i->font->ascent + i->font->descent);
yoff = i->rect.y + (i->rect.height - h) / 2 + i->font->ascent;
@@ -111,13 +116,13 @@ blitz_draw_input(BlitzInput *i)
xdrawtextpart(i, start, end, &xoff, yoff);
/* draw remaining normal text */
xchangegc(i, &i->color, False);
- xdrawtextpart(i, end, nil, &xoff, yoff);
+ xdrawtextpart(i, end, i->text + i->len, &xoff, yoff);
/* draw cursor */
if(!start && !end)
xcursor = xoff;
if(start == end)
- blitz_drawcursor(i->blitz->display, i->drawable, i->gc,
+ blitz_drawcursor(i->blitz->dpy, i->drawable, i->gc,
xcursor, yoff - h + 2, h - 1, i->color);
}
@@ -148,110 +153,16 @@ xcharof(BlitzInput *i, int x, char *start, unsigned int len)
static char *
charof(BlitzInput *i, int x, int y)
{
- unsigned int len;
-
if(!i->text || !blitz_ispointinrect(x, y, &i->rect))
return nil;
- len = strlen(i->text);
/* normalize and check x */
if((x -= (i->rect.x + i->rect.height / 2)) < 0)
return i->text;
- else if(x > blitz_textwidth_l(i->font, i->text, len))
- return nil;
-
- return xcharof(i, x, i->text, strlen(i->text));
-}
+ else if(x > blitz_textwidth_l(i->font, i->text, i->len))
+ return i->text + i->len;
-static char *
-cursor(BlitzInput *i)
-{
- char *start = curstart(i);
- char *end = curend(i);
-
- if(!start && i->text)
- return i->text + (i->size - 1);
- return end;
-}
-
-static Bool
-insert(BlitzInput *i, const char s)
-{
- char *buf, *c, *p, *q;
-
- if(!(c = cursor(i)))
- return False;
-
- buf = cext_emallocz(++i->size);
- for(p = i->text, q = buf; p != c; p++, q++)
- *q = *p;
- *q = s;
- for(q++; *p; p++, q++)
- *q = *p;
-
- return True;
-}
-
-static Bool
-delete(BlitzInput *i)
-{
- char *c, *p, *q;
-
- if(!(c = cursor(i)))
- return False;
-
- for(q = c, p = c + 1; *p; p++, q++)
- *q = *p;
- return True;
-}
-
-static void
-left(BlitzInput *i)
-{
- char *c;
- if(!(c = cursor(i)))
- return;
-
- if(c > i->text)
- i->curstart = i->curend = c - 1;
- else
- i->curstart = i->curstart = i->text;
-}
-
-static void
-right(BlitzInput *i)
-{
- char *c = cursor(i);
-
- if(!c)
- i->curstart = i->curend = nil;
- else {
- if(c < i->text + (i->size - 1))
- i->curstart = i->curend = c + 1;
- else
- i->curstart = i->curend = nil;
- }
-}
-
-void
-blitz_settext_input(BlitzInput *i, const char *text)
-{
- unsigned int len = 0;
-
- if(!text) {
- i->size = 0;
- if(i->text)
- free(i->text);
- i->text = nil;
- return;
- }
-
- if(!(len = strlen(text)))
- return;
-
- i->size = len + 1;
- i->text = realloc(i->text, i->size);
- memcpy(i->text, text, i->size);
+ return xcharof(i, x, i->text, i->len);
}
Bool
@@ -274,8 +185,6 @@ blitz_brelease_input(BlitzInput *i, int x, int y)
if(!(i->drag = blitz_ispointinrect(x, y, &i->rect)))
return False;
- /*XGrabKeyboard(i->blitz->display, i->window, True,
- GrabModeAsync, GrabModeAsync, CurrentTime);*/
oend = i->curend;
i->curend = charof(i, x, y);
i->drag = False;
@@ -286,78 +195,57 @@ Bool
blitz_bmotion_input(BlitzInput *i, int x, int y)
{
char *oend;
+ Bool focus;
- if(!i->drag || !(i->drag = blitz_ispointinrect(x, y, &i->rect)))
- return False;
+ focus = blitz_ispointinrect(x, y, &i->rect);
+ if(focus)
+ XSetInputFocus(i->blitz->dpy, i->win,
+ RevertToPointerRoot, CurrentTime);
+
+ if(!i->drag || !(i->drag = focus))
+ return False;
oend = i->curend;
i->curend = charof(i, x, y);
return i->curend == oend;
}
Bool
-blitz_kpress_input(BlitzInput *i, unsigned long mod, KeySym k, const char *ks)
+blitz_kpress_input(BlitzInput *i, KeySym k, char *ks)
{
- if(mod & ControlMask) {
- switch (k) {
- case XK_a:
- k = XK_Begin;
- break;
- case XK_b:
- k = XK_Left;
- break;
- case XK_e:
- k = XK_End;
- break;
- case XK_h:
- k = XK_BackSpace;
- break;
- case XK_j:
- k= XK_Return;
- break;
- case XK_k:
- k = XK_Delete;
- break;
- case XK_u:
- blitz_settext_input(i, nil);
- return True;
- case XK_w:
- k = XK_BackSpace;
- break;
- default:
- return False;
- }
- }
+ /*
+ char *start, *end;
if(IsCursorKey(k)) {
+ start = curstart(i);
+ end = curend(i);
switch(k) {
- case XK_Home:
- case XK_Begin:
- i->curstart = i->curend = i->text;
- return True;
case XK_Left:
- left(i);
+ if(start != end)
+ i->curstart = i->curend = start;
+ else if(start > i->start)
+ i->curstart = i->curend = start--;
+ else
+ i->curstart = i->curend = i->start;
return True;
case XK_Right:
- right(i);
- return True;
- case XK_End:
- i->curstart = i->curend = nil;
+ if(start != end)
+ i->curstart = i->curend = end;
+ else if(start < i->end)
+ i->curstart = i->curend = start++;
+ else
+ i->curstart = i->curend = i->end;
return True;
}
}
else {
switch(k) {
- case XK_Tab:
- case XK_Num_Lock:
- case XK_Return:
- break;
- case XK_Delete:
case XK_BackSpace:
return delete(i);
default:
- return insert(i, *ks);
+ return insert(i, ks);
}
}
+ */
return False;
}