Merge branch 'backport' into work
[mikachu/openbox.git] / openbox / client.h
index 09c93e6..30cab17 100644 (file)
@@ -246,6 +246,8 @@ struct _ObClient
 
     /*! The window uses shape extension to be non-rectangular? */
     gboolean shaped;
+    /*! The window uses shape extension to have non-rectangular input? */
+    gboolean shaped_input;
 
     /*! The window is modal, so it must be processed before any windows it is
       related to can be focused */
@@ -396,13 +398,10 @@ void client_convert_gravity_resize(ObClient *self, gint gravity,
   client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE)
 #define client_move_resize(self, x, y, w, h) \
   client_configure(self, x, y, w, h, TRUE, TRUE, FALSE)
-
-/*! Make a client reconfigure so that it will honour its current max/min sizes
-  and other bounds.
-  @param force If TRUE, then a ConfigureNotify event will be sent to the client
-               even if nothing has changed.
-*/
-void client_reconfigure(ObClient *self, gboolean force);
+#define client_reconfigure(self, force) \
+  client_configure(self, ((ObClient*)self)->area.x, ((ObClient*)self)->area.y, \
+                   ((ObClient*)self)->area.width, \
+                   ((ObClient*)self)->area.height, FALSE, TRUE, force)
 
 /*! Figure out where a window will end up and what size it will be if you
   told it to move/resize to these coordinates.
@@ -574,14 +573,14 @@ gboolean client_focus(ObClient *self);
 
 /*! Activates the client for use, focusing, uniconifying it, etc. To be used
   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 desktop If true, and the window is on another desktop, it will still
+                 be activated.
   @param raise If true, the client is brought to the front.
   @param unshade If true, the client is unshaded (if it is shaded)
   @param user If true, then a user action is what requested the activation;
               otherwise, it means an application requested it on its own
 */
-void client_activate(ObClient *self, gboolean here, gboolean raise,
+void client_activate(ObClient *self, gboolean desktop, gboolean raise,
                      gboolean unshade, gboolean user);
 
 /*! Bring all of its helper windows to its desktop. These are the utility and
@@ -633,6 +632,8 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig);
 
 /*! Sets the window's type and transient flag */
 void client_get_type_and_transientness(ObClient *self);
+/*! Gets the motif wm hints */
+void client_get_mwm_hints(ObClient *self);
 
 /*! Returns a client's icon set, or its parents (recursively) if it doesn't
   have one