More code.
This commit is contained in:
parent
1276de8974
commit
b664456706
25
data.h
25
data.h
|
@ -3,7 +3,32 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defines a position in the table
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct Cell {
|
||||||
|
int row;
|
||||||
|
int column;
|
||||||
|
} Cell;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We need to save the height of a font because it is required for each drawing of
|
||||||
|
* text but relatively hard to get. As soon as a new font needs to be loaded, a
|
||||||
|
* Font-entry will be filled for later use.
|
||||||
|
*
|
||||||
|
*/
|
||||||
typedef struct Font {
|
typedef struct Font {
|
||||||
char *name;
|
char *name;
|
||||||
int height;
|
int height;
|
||||||
} Font;
|
} Font;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A client is X11-speak for a window.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct Client {
|
||||||
|
/* TODO: this is NOT final */
|
||||||
|
Cell old_position; /* if you set a client to floating and set it back to managed,
|
||||||
|
it does remember its old position and *tries* to get back there */
|
||||||
|
} Client;
|
||||||
|
|
17
mainx.c
17
mainx.c
|
@ -440,6 +440,16 @@ static int handleEvent(void *ignored, xcb_connection_t *c, xcb_generic_event_t *
|
||||||
{
|
{
|
||||||
return format_event(e);
|
return format_event(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int handle_key_press(void *ignored, xcb_connection_t *c, xcb_generic_event_t *e)
|
||||||
|
{
|
||||||
|
xcb_key_press_event_t *event = e;
|
||||||
|
printf("oh yay!\n");
|
||||||
|
printf("gots press %d\n", event->detail);
|
||||||
|
/* TODO: try to change the window border of all windows. */
|
||||||
|
return format_event(e);
|
||||||
|
}
|
||||||
|
|
||||||
static void redrawWindow(xcb_connection_t *c, client_window_t *client)
|
static void redrawWindow(xcb_connection_t *c, client_window_t *client)
|
||||||
{
|
{
|
||||||
printf("redrawing window.\n");
|
printf("redrawing window.\n");
|
||||||
|
@ -561,6 +571,8 @@ myfont.height = reply->font_ascent + reply->font_descent;
|
||||||
int i;
|
int i;
|
||||||
for(i = 2; i < 128; ++i)
|
for(i = 2; i < 128; ++i)
|
||||||
xcb_event_set_handler(&evenths, i, handleEvent, 0);
|
xcb_event_set_handler(&evenths, i, handleEvent, 0);
|
||||||
|
|
||||||
|
xcb_event_set_handler(&evenths, XCB_KEY_PRESS, handle_key_press, 0);
|
||||||
for(i = 0; i < 256; ++i)
|
for(i = 0; i < 256; ++i)
|
||||||
xcb_event_set_error_handler(&evenths, i, (xcb_generic_error_handler_t) handleEvent, 0);
|
xcb_event_set_error_handler(&evenths, i, (xcb_generic_error_handler_t) handleEvent, 0);
|
||||||
|
|
||||||
|
@ -573,6 +585,8 @@ myfont.height = reply->font_ascent + reply->font_descent;
|
||||||
xcb_property_handlers_init(&prophs, &evenths);
|
xcb_property_handlers_init(&prophs, &evenths);
|
||||||
xcb_event_set_map_notify_handler(&evenths, handle_map_notify_event, &prophs);
|
xcb_event_set_map_notify_handler(&evenths, handle_map_notify_event, &prophs);
|
||||||
|
|
||||||
|
//xcb_grab_key (xcb_connection_t *c, uint8_t owner_events, xcb_window_t grab_window, uint16_t modifiers, xcb_keycode_t key, uint8_t pointer_mode, uint8_t keyboard_mode)
|
||||||
|
|
||||||
|
|
||||||
root = xcb_aux_get_screen(c, screens)->root;
|
root = xcb_aux_get_screen(c, screens)->root;
|
||||||
|
|
||||||
|
@ -582,6 +596,9 @@ myfont.height = reply->font_ascent + reply->font_descent;
|
||||||
xcb_change_window_attributes(c, root, mask, values);
|
xcb_change_window_attributes(c, root, mask, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Grab 'a' */
|
||||||
|
xcb_grab_key(c, 0, root, 0, 38, XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC);
|
||||||
|
|
||||||
xcb_flush(c);
|
xcb_flush(c);
|
||||||
|
|
||||||
manage_existing_windows(c, &prophs, root);
|
manage_existing_windows(c, &prophs, root);
|
||||||
|
|
Loading…
Reference in New Issue