X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fwindow.c;h=8b986b1b422f8a814b4a15c6931a7bfb4788ea27;hb=f85a85541790a6095eb583ddb8684eece8dcc0c6;hp=11f5e46b56e9b1e81cb94f405bdf1bd9047fcdad;hpb=7c7868f47d42796a236c9a1813bed5fe9f0d4f41;p=chaz%2Fopenbox diff --git a/openbox/window.c b/openbox/window.c index 11f5e46b..8b986b1b 100644 --- a/openbox/window.c +++ b/openbox/window.c @@ -1,18 +1,39 @@ #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; } @@ -24,13 +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 Layer_Internal; + return OB_STACKING_LAYER_INTERNAL; } g_assert_not_reached(); return None;