all repos — openbox @ 6e42b65bda1706887f3b2a7f9d79ba20f7611a06

openbox fork - make it a bit more like ryudo

openbox/window.c (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "window.h"
#include "menu.h"
#include "slit.h"
#include "client.h"
#include "frame.h"

Window window_top(ObWindow *self)
{
    switch (self->type) {
    case Window_Menu:
        return ((Menu*)self)->frame;
    case Window_Slit:
        return ((Slit*)self)->frame;
    case Window_Client:
        return ((Client*)self)->frame->window;
    case Window_Internal:
        return ((InternalWindow*)self)->win;
    }
    g_assert_not_reached();
    return None;
}

Window window_layer(ObWindow *self)
{
    switch (self->type) {
    case Window_Menu:
        return Layer_Internal;
    case Window_Slit:
        return ((Slit*)self)->layer;
    case Window_Client:
        return ((Client*)self)->layer;
    case Window_Internal:
        return Layer_Internal;
    }
    g_assert_not_reached();
    return None;
}