Several small corrections
This commit is contained in:
parent
8a35dc7695
commit
ab350c86f7
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
STRIP ?= strip
|
STRIP ?= strip
|
||||||
CFLAGS ?= --std=c99 -fshort-wchar -Os
|
CFLAGS ?= -std=c99 -fshort-wchar -Os
|
||||||
LDFLAGS += -lxcb
|
LDFLAGS += -lxcb
|
||||||
CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long\
|
CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long\
|
||||||
-Wsign-conversion -Wconversion -Wimplicit-function-declaration
|
-Wsign-conversion -Wconversion -Wimplicit-function-declaration
|
||||||
|
|
40
bar.c
40
bar.c
|
@ -30,6 +30,12 @@ enum {
|
||||||
FONT_MAX
|
FONT_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ALIGN_L = 0,
|
||||||
|
ALIGN_C,
|
||||||
|
ALIGN_R
|
||||||
|
};
|
||||||
|
|
||||||
static xcb_connection_t *c;
|
static xcb_connection_t *c;
|
||||||
static xcb_window_t win;
|
static xcb_window_t win;
|
||||||
static xcb_drawable_t canvas;
|
static xcb_drawable_t canvas;
|
||||||
|
@ -54,13 +60,13 @@ xcb_set_bg (int i)
|
||||||
void
|
void
|
||||||
xcb_set_fg (int i)
|
xcb_set_fg (int i)
|
||||||
{
|
{
|
||||||
xcb_change_gc (c, draw_gc , XCB_GC_FOREGROUND, (const unsigned []){ palette[i] });
|
xcb_change_gc (c, draw_gc , XCB_GC_FOREGROUND, (const uint32_t []){ palette[i] });
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
xcb_set_ud (int i)
|
xcb_set_ud (int i)
|
||||||
{
|
{
|
||||||
xcb_change_gc (c, underl_gc, XCB_GC_FOREGROUND, (const unsigned []){ palette[i] });
|
xcb_change_gc (c, underl_gc, XCB_GC_FOREGROUND, (const uint32_t []){ palette[i] });
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -73,19 +79,19 @@ void
|
||||||
xcb_set_fontset (int i)
|
xcb_set_fontset (int i)
|
||||||
{
|
{
|
||||||
sel_font = &fontset[i&1];
|
sel_font = &fontset[i&1];
|
||||||
xcb_change_gc (c, draw_gc , XCB_GC_FONT, (const unsigned []){ sel_font->xcb_ft });
|
xcb_change_gc (c, draw_gc , XCB_GC_FONT, (const uint32_t []){ sel_font->xcb_ft });
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
draw_char (int x, int align, wchar_t ch)
|
draw_char (int x, int align, wchar_t ch)
|
||||||
{
|
{
|
||||||
switch (align) {
|
switch (align) {
|
||||||
case 1:
|
case ALIGN_C:
|
||||||
xcb_copy_area (c, canvas, canvas, draw_gc, bar_width / 2 - x / 2, 0,
|
xcb_copy_area (c, canvas, canvas, draw_gc, bar_width / 2 - x / 2, 0,
|
||||||
bar_width / 2 - (x + sel_font->width) / 2, 0, x, BAR_HEIGHT);
|
bar_width / 2 - (x + sel_font->width) / 2, 0, x, BAR_HEIGHT);
|
||||||
x = bar_width / 2 - (x + sel_font->width) / 2 + x;
|
x = bar_width / 2 - (x + sel_font->width) / 2 + x;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case ALIGN_R:
|
||||||
xcb_copy_area (c, canvas, canvas, draw_gc, bar_width - x, 0,
|
xcb_copy_area (c, canvas, canvas, draw_gc, bar_width - x, 0,
|
||||||
bar_width - x - sel_font->width, 0, x, BAR_HEIGHT);
|
bar_width - x - sel_font->width, 0, x, BAR_HEIGHT);
|
||||||
x = bar_width - sel_font->width;
|
x = bar_width - sel_font->width;
|
||||||
|
@ -141,15 +147,15 @@ parse (char *text)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
align = 0;
|
align = ALIGN_L;
|
||||||
pos_x = 0;
|
pos_x = 0;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
align = 1;
|
align = ALIGN_C;
|
||||||
pos_x = 0;
|
pos_x = 0;
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
align = 2;
|
align = ALIGN_R;
|
||||||
pos_x = 0;
|
pos_x = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -233,7 +239,7 @@ set_ewmh_atoms (xcb_window_t root)
|
||||||
xcb_get_property_reply_t *reply1;
|
xcb_get_property_reply_t *reply1;
|
||||||
xcb_atom_t atoms[5];
|
xcb_atom_t atoms[5];
|
||||||
int compliance_lvl;
|
int compliance_lvl;
|
||||||
unsigned int v[12] = {0};
|
uint32_t v[12] = {0};
|
||||||
|
|
||||||
cookies[0] = xcb_intern_atom (c, 0, strlen ("_NET_WM_WINDOW_TYPE") , "_NET_WM_WINDOW_TYPE");
|
cookies[0] = xcb_intern_atom (c, 0, strlen ("_NET_WM_WINDOW_TYPE") , "_NET_WM_WINDOW_TYPE");
|
||||||
cookies[1] = xcb_intern_atom (c, 0, strlen ("_NET_WM_WINDOW_TYPE_DOCK"), "_NET_WM_WINDOW_TYPE_DOCK");
|
cookies[1] = xcb_intern_atom (c, 0, strlen ("_NET_WM_WINDOW_TYPE_DOCK"), "_NET_WM_WINDOW_TYPE_DOCK");
|
||||||
|
@ -270,7 +276,7 @@ set_ewmh_atoms (xcb_window_t root)
|
||||||
/* Show on every desktop */
|
/* Show on every desktop */
|
||||||
if (*a == atoms[2]) {
|
if (*a == atoms[2]) {
|
||||||
xcb_change_property (c, XCB_PROP_MODE_REPLACE, win, atoms[2], XCB_ATOM_CARDINAL, 32, 1,
|
xcb_change_property (c, XCB_PROP_MODE_REPLACE, win, atoms[2], XCB_ATOM_CARDINAL, 32, 1,
|
||||||
(const unsigned []){ 0xffffffff } );
|
(const uint32_t []){ 0xffffffff } );
|
||||||
compliance_lvl++;
|
compliance_lvl++;
|
||||||
}
|
}
|
||||||
/* Tell the WM that this space is for the bar */
|
/* Tell the WM that this space is for the bar */
|
||||||
|
@ -324,13 +330,13 @@ init (void)
|
||||||
y = 0;
|
y = 0;
|
||||||
xcb_create_window (c, XCB_COPY_FROM_PARENT, win, root, 0, y,
|
xcb_create_window (c, XCB_COPY_FROM_PARENT, win, root, 0, y,
|
||||||
bar_width, BAR_HEIGHT, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, scr->root_visual,
|
bar_width, BAR_HEIGHT, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, scr->root_visual,
|
||||||
XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK, (const unsigned []){ palette[0], XCB_EVENT_MASK_EXPOSURE });
|
XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK, (const uint32_t []){ palette[0], XCB_EVENT_MASK_EXPOSURE });
|
||||||
|
|
||||||
/* Set EWMH hints */
|
/* Set EWMH hints */
|
||||||
int ewmh_docking = set_ewmh_atoms (root);
|
int ewmh_docking = set_ewmh_atoms (root);
|
||||||
|
|
||||||
/* Quirk for wm not supporting the EWMH docking method */
|
/* Quirk for wm not supporting the EWMH docking method */
|
||||||
xcb_change_window_attributes (c, win, XCB_CW_OVERRIDE_REDIRECT, (const unsigned []){ !ewmh_docking });
|
xcb_change_window_attributes (c, win, XCB_CW_OVERRIDE_REDIRECT, (const uint32_t []){ !ewmh_docking });
|
||||||
|
|
||||||
/* Create a temporary canvas */
|
/* Create a temporary canvas */
|
||||||
canvas = xcb_generate_id (c);
|
canvas = xcb_generate_id (c);
|
||||||
|
@ -338,13 +344,13 @@ init (void)
|
||||||
|
|
||||||
/* Create the gc for drawing */
|
/* Create the gc for drawing */
|
||||||
draw_gc = xcb_generate_id (c);
|
draw_gc = xcb_generate_id (c);
|
||||||
xcb_create_gc (c, draw_gc, root, XCB_GC_FOREGROUND | XCB_GC_BACKGROUND, (const unsigned []){ palette[1], palette[0] });
|
xcb_create_gc (c, draw_gc, root, XCB_GC_FOREGROUND | XCB_GC_BACKGROUND, (const uint32_t []){ palette[1], palette[0] });
|
||||||
|
|
||||||
clear_gc = xcb_generate_id (c);
|
clear_gc = xcb_generate_id (c);
|
||||||
xcb_create_gc (c, clear_gc, root, XCB_GC_FOREGROUND, (const unsigned []){ palette[0] });
|
xcb_create_gc (c, clear_gc, root, XCB_GC_FOREGROUND, (const uint32_t []){ palette[0] });
|
||||||
|
|
||||||
underl_gc = xcb_generate_id (c);
|
underl_gc = xcb_generate_id (c);
|
||||||
xcb_create_gc (c, underl_gc, root, XCB_GC_FOREGROUND, (const unsigned []){ palette[0] });
|
xcb_create_gc (c, underl_gc, root, XCB_GC_FOREGROUND, (const uint32_t []){ palette[0] });
|
||||||
|
|
||||||
/* Make the bar visible */
|
/* Make the bar visible */
|
||||||
xcb_map_window (c, win);
|
xcb_map_window (c, win);
|
||||||
|
@ -399,10 +405,10 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
atexit (cleanup);
|
|
||||||
signal (SIGINT, sighandle);
|
signal (SIGINT, sighandle);
|
||||||
signal (SIGTERM, sighandle);
|
signal (SIGTERM, sighandle);
|
||||||
init ();
|
init ();
|
||||||
|
atexit (cleanup);
|
||||||
|
|
||||||
/* Get the fd to Xserver */
|
/* Get the fd to Xserver */
|
||||||
pollin[1].fd = xcb_get_file_descriptor (c);
|
pollin[1].fd = xcb_get_file_descriptor (c);
|
||||||
|
@ -412,7 +418,7 @@ main (int argc, char **argv)
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int redraw = 0;
|
int redraw = 0;
|
||||||
|
|
||||||
if (poll ((struct pollfd *)&pollin, 2, -1) > 0) {
|
if (poll (pollin, 2, -1) > 0) {
|
||||||
if (pollin[0].revents & POLLHUP) { /* No more data... */
|
if (pollin[0].revents & POLLHUP) { /* No more data... */
|
||||||
if (permanent) pollin[0].fd = -1; /* ...null the fd and continue polling :D */
|
if (permanent) pollin[0].fd = -1; /* ...null the fd and continue polling :D */
|
||||||
else break; /* ...bail out */
|
else break; /* ...bail out */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user