X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fwindow.c;h=8b986b1b422f8a814b4a15c6931a7bfb4788ea27;hb=c1b2fc5324522f74a14a5cfa210c95e1509a6e7f;hp=90de822faf17fce87f8de60e588cc8da0def1deb;hpb=58cfbb7f8419e084af6b6b8b00c88ed270c29e88;p=chaz%2Fopenbox diff --git a/openbox/window.c b/openbox/window.c index 90de822f..8b986b1b 100644 --- a/openbox/window.c +++ b/openbox/window.c @@ -1,18 +1,41 @@ #include "window.h" -#include "menu.h" -#include "slit.h" +#include "menuframe.h" +#include "config.h" +#include "dock.h" #include "client.h" #include "frame.h" +GHashTable *window_map; + +void window_startup(gboolean reconfig) +{ + if (reconfig) return; + + window_map = g_hash_table_new(g_int_hash, g_int_equal); +} + +void window_shutdown(gboolean reconfig) +{ + if (reconfig) return; + + 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 ((ObMenuFrame*)self)->window; + 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 +45,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;