Fix missing pointer dereference and missing assignment.
[gwm.git] / window-table.h
blob7bbf846fcd795e423ef9dbf38b65daafd02cf8cc
1 #ifndef WINDOW_TABLE_H
2 #define WINDOW_TABLE_H
4 extern struct window_table {
5 struct half_table {
6 xcb_window_t key;
7 int index;
8 } *t[ 2 ];
9 struct gwm_window **values; /* compact array containing the values, to
10 make iteration more efficient */
11 int n; /* number of entries in each half table */
12 int used; /* number of entries occupied */
13 int max; /* maximum chain length to follow during insertion */
14 unsigned long hash;
15 } windows, update_windows;
17 extern void table_init( struct window_table *table );
18 #if DEBUG
19 extern void table_destroy( struct window_table *table );
20 #endif
21 extern PURE struct gwm_window *table_lookup( struct window_table *table,
22 xcb_window_t key );
23 extern void queue_window_update( struct gwm_window *window,
24 int x, int y, int width, int height,
25 int cleared );
26 extern void window_update_done( struct gwm_window *window );
27 extern MALLOC struct gwm_window *add_window( xcb_window_t w );
28 extern void forget_window( struct gwm_window *window );
29 extern struct gwm_window *lookup_window( xcb_window_t w );
31 #define STACK_END 0x20000000
32 #define STACK_MASK 0xE0000000
34 extern struct window_stack {
35 struct stacking_order {
36 xcb_window_t window, lower_window, higher_window;
37 } *t[ 2 ];
38 int n; /* number of entries in each half table */
39 int used; /* number of entries occupied */
40 int max; /* maximum chain length to follow during insertion */
41 unsigned long hash;
42 } window_stack;
44 extern void stack_init( struct window_stack *stack );
45 #if DEBUG
46 extern void stack_destroy( struct window_stack *stack );
47 #endif
48 extern PURE struct stacking_order *stack_lookup( struct window_stack *stack,
49 xcb_window_t key );
50 extern void stack_insert_singleton( struct window_stack *stack,
51 xcb_window_t key );
52 extern void stack_insert_above( struct window_stack *stack,
53 xcb_window_t key, xcb_window_t lower_window );
54 extern void stack_remove( struct window_stack *stack, xcb_window_t window );
55 extern void stack_move_above( struct window_stack *stack,
56 xcb_window_t key, xcb_window_t lower_window );
57 extern xcb_window_t stack_real_below( struct window_stack *stack,
58 xcb_window_t window );
59 #endif