]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
make the combined client list menu not suck quite as bad
[chaz/openbox] / openbox / client.h
index ab1c830cdc0092ae988328773f50e8cedd04d3a5..b418964dcedc9c98e1844dcc2f96cfc910b35547 100644 (file)
@@ -1,6 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    client.h for the Openbox window manager
+   Copyright (c) 2006        Mikael Magnusson
    Copyright (c) 2003        Ben Jansens
 
    This program is free software; you can redistribute it and/or modify
@@ -210,8 +211,6 @@ struct _ObClient
   
     /*! Can the window receive input focus? */
     gboolean can_focus;
-    /*! Urgency flag */
-    gboolean urgent;
     /*! Notify the window when it receives focus? */
     gboolean focus_notify;
 
@@ -242,6 +241,8 @@ struct _ObClient
     /*! The window should be underneath other windows of the same type.
       above takes priority over below. */
     gboolean below;
+    /*! Demands attention flag */
+    gboolean demands_attention;
 
     /*! The layer in which the window will be stacked, windows in lower layers
       are always below windows in higher layers. */
@@ -268,15 +269,15 @@ struct _ObClient
     ObClientIcon *icons;
     /*! The number of icons in icons */
     guint nicons;
+
+    guint32 user_time;
 };
 
 struct _ObAppSettings
 {
+    gchar *class;
     gchar *name;
     gchar *role;
-    gboolean decor;
-    gboolean shade;
-    gboolean focus;
 
     Point position;
     gboolean center_x;
@@ -284,9 +285,18 @@ struct _ObAppSettings
     gboolean pos_given;
 
     guint desktop;
-    guint head;
-
-    guint layer;
+    gint shade;
+    gint decor;
+    gint focus;
+    gint head;
+    gint iconic;
+    gint skip_pager;
+    gint skip_taskbar;
+    gint max_horz;
+    gint max_vert;
+    gint fullscreen;
+
+    gint layer;
 };
 
 extern GList *client_list;
@@ -421,6 +431,9 @@ void client_maximize(ObClient *self, gboolean max, gint dir,
 */
 void client_shade(ObClient *self, gboolean shade);
 
+/*! Hilite the window to make the user notice it */
+void client_hilite(ObClient *self, gboolean hilite);
+
 /*! Request the client to close its window */
 void client_close(ObClient *self);
 
@@ -469,8 +482,11 @@ void client_unfocus(ObClient *self);
   when the user deliberately selects a window for use.
   @param here If true, then the client is brought to the current desktop;
               otherwise, the desktop is changed to where the client lives.
+  @param user If true, then a user action is what requested the activation;
+              otherwise, it means an application requested it on its own
+  @param timestamp The time at which the activate was requested.
 */
-void client_activate(ObClient *self, gboolean here);
+void client_activate(ObClient *self, gboolean here, gboolean user, Time time);
 
 /*! Calculates the stacking layer for the client window */
 void client_calc_layer(ObClient *self);
@@ -517,6 +533,8 @@ void client_update_class(ObClient *self);
 void client_update_strut(ObClient *self);
 /*! Updates the window's icons */
 void client_update_icons(ObClient *self);
+/*! Updates the window's user time */
+void client_update_user_time(ObClient *self, gboolean new_event);
 
 /*! Set up what decor should be shown on the window and what functions should
   be allowed (ObClient::decorations and ObClient::functions).
@@ -553,7 +571,11 @@ ObClient *client_search_focus_tree_full(ObClient *self);
 */
 ObClient *client_search_modal_child(ObClient *self);
 
-ObClient *client_search_top_transient(ObClient *self);
+/*! Returns a list of top-level windows which this is a transient for.
+  It will only contain more than 1 element if the client is transient for its
+  group.
+*/
+GSList *client_search_top_transients(ObClient *self);
 
 /*! Search for a parent of a client. This only searches up *ONE LEVEL*, and
   returns the searched for parent if it is a parent, or NULL if not. */
@@ -567,7 +589,7 @@ ObClient *client_search_transient(ObClient *self, ObClient *search);
 ObClient *client_find_directional(ObClient *c, ObDirection dir);
 
 /*! Return the closest edge in the given direction */
-gint client_directional_edge_search(ObClient *c, ObDirection dir);
+gint client_directional_edge_search(ObClient *c, ObDirection dir, gboolean hang);
 
 /*! Set a client window to be above/below other clients.
   @layer < 0 indicates the client should be placed below other clients.<br>
This page took 0.022682 seconds and 4 git commands to generate.