X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fwindow.c;h=521d9e2d4cd1908cb9bca909a07f5a1f7b0cdf2a;hb=4cd886e5188549ab48a11b70cb40b65efe916b6c;hp=90de822faf17fce87f8de60e588cc8da0def1deb;hpb=58cfbb7f8419e084af6b6b8b00c88ed270c29e88;p=chaz%2Fopenbox diff --git a/openbox/window.c b/openbox/window.c index 90de822f..521d9e2d 100644 --- a/openbox/window.c +++ b/openbox/window.c @@ -1,18 +1,37 @@ #include "window.h" #include "menu.h" -#include "slit.h" +#include "config.h" +#include "dock.h" #include "client.h" #include "frame.h" +GHashTable *window_map; + +void window_startup() +{ + window_map = g_hash_table_new(g_int_hash, g_int_equal); +} + +void window_shutdown() +{ + g_hash_table_destroy(window_map); +} + Window window_top(ObWindow *self) { switch (self->type) { case Window_Menu: - return ((Menu*)self)->frame; - case Window_Slit: - return ((Slit*)self)->frame; + return ((ObMenu*)self)->frame; + case Window_Dock: + return ((ObDock*)self)->frame; + case Window_DockApp: + /* not to be used for stacking */ + g_assert_not_reached(); + break; case Window_Client: - return ((Client*)self)->frame->window; + return ((ObClient*)self)->frame->window; + case Window_Internal: + return ((InternalWindow*)self)->win; } g_assert_not_reached(); return None; @@ -22,11 +41,17 @@ Window window_layer(ObWindow *self) { switch (self->type) { case Window_Menu: - return Layer_Internal; - case Window_Slit: - return ((Slit*)self)->layer; + return OB_STACKING_LAYER_INTERNAL; + case Window_Dock: + return config_dock_layer; + case Window_DockApp: + /* not to be used for stacking */ + g_assert_not_reached(); + break; case Window_Client: - return ((Client*)self)->layer; + return ((ObClient*)self)->layer; + case Window_Internal: + return OB_STACKING_LAYER_INTERNAL; } g_assert_not_reached(); return None;