/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
window.c for the Openbox window manager
- Copyright (c) 2003 Ben Jansens
+ Copyright (c) 2003-2007 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "dock.h"
#include "client.h"
#include "frame.h"
+#include "prompt.h"
GHashTable *window_map;
+static guint window_hash(Window *w) { return *w; }
+static gboolean window_comp(Window *w1, Window *w2) { return *w1 == *w2; }
+
void window_startup(gboolean reconfig)
{
if (reconfig) return;
- window_map = g_hash_table_new(g_int_hash, g_int_equal);
+ window_map = g_hash_table_new((GHashFunc)window_hash,
+ (GEqualFunc)window_comp);
}
void window_shutdown(gboolean reconfig)
case Window_Client:
return ((ObClient*)self)->frame->window;
case Window_Internal:
- return ((InternalWindow*)self)->win;
+ return ((InternalWindow*)self)->window;
+ case Window_Prompt:
+ return ((ObPrompt*)self)->super.window;
}
g_assert_not_reached();
return None;
}
-Window window_layer(ObWindow *self)
+ObStackingLayer window_layer(ObWindow *self)
{
switch (self->type) {
case Window_Menu:
return ((ObClient*)self)->layer;
case Window_Internal:
return OB_STACKING_LAYER_INTERNAL;
+ case Window_Prompt:
+ /* not used directly for stacking, prompts are managed as clients */
+ g_assert_not_reached();
+ break;
}
g_assert_not_reached();
return None;