]> Dogcows Code - chaz/openbox/blobdiff - openbox/stacking.h
add support for _NET_RESTACK_WINDOW
[chaz/openbox] / openbox / stacking.h
index 2ad3677d2915f646ae8b00b125220f09ddb21997..d570c944867cbb7e088b7c7a5b097b71c3588b99 100644 (file)
@@ -1,7 +1,8 @@
-/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    stacking.h for the Openbox window manager
-   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2006        Mikael Magnusson
+   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
 
 /*! The possible stacking layers a client window can be a part of */
 typedef enum {
-    OB_STACKING_LAYER_DESKTOP,    /*!< 0 - desktop windows */
-    OB_STACKING_LAYER_BELOW,      /*!< 1 - normal windows w/ below */
-    OB_STACKING_LAYER_NORMAL,     /*!< 2 - normal windows */
-    OB_STACKING_LAYER_ABOVE,      /*!< 3 - normal windows w/ above */
-    OB_STACKING_LAYER_TOP,        /*!< 4 - always-on-top-windows (docks?) */
-    OB_STACKING_LAYER_FULLSCREEN, /*!< 5 - fullscreeen windows */
-    OB_STACKING_LAYER_INTERNAL,   /*!< 6 - openbox windows/menus */
+    OB_STACKING_LAYER_DESKTOP,     /*!< 0 - desktop windows */
+    OB_STACKING_LAYER_BELOW,       /*!< 1 - normal windows w/ below */
+    OB_STACKING_LAYER_NORMAL,      /*!< 2 - normal windows */
+    OB_STACKING_LAYER_ABOVE,       /*!< 3 - normal windows w/ above */
+    OB_STACKING_LAYER_FULLSCREEN,  /*!< 4 - fullscreeen windows */
+    OB_STACKING_LAYER_INTERNAL,    /*!< 5 - openbox windows/menus */
     OB_NUM_STACKING_LAYERS
 } ObStackingLayer;
 
@@ -59,4 +59,21 @@ void stacking_lower(ObWindow *window);
 */
 void stacking_below(ObWindow *window, ObWindow *below);
 
+/*! Returns TRUE if client is occluded by sibling. If sibling is NULL it tries
+  against all other clients. Otherwise, it returns FALSE.
+*/
+gboolean stacking_occluded(struct _ObClient *client,struct _ObClient *sibling);
+
+/*! Restack a window based upon a sibling (or all windows) in various ways.
+  @param client The client to be restacked
+  @param sibling Another client to compare to, or NULL to compare to all
+                 windows
+  @param detail One of Above, Below, TopIf, BottomIf, Opposite
+  See http://tronche.com/gui/x/xlib/window/configure.html for details on
+  how each detail works with and without a sibling.
+*/
+void stacking_restack_request(struct _ObClient *client,
+                              struct _ObClient *sibling,
+                              gint detail);
+
 #endif
This page took 0.021715 seconds and 4 git commands to generate.