X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.hh;h=4e22e2dc9d2b0f7012d690f71d187e8d55ac7f5a;hb=68194ce957db36ead19a39fdc7636a220befafe9;hp=e61ece428dd78d1fc61dbcc43da02ccbc75c09a8;hpb=732bfd191dbf1f5cf3473a794f9a736dcba6117e;p=chaz%2Fopenbox diff --git a/src/client.hh b/src/client.hh index e61ece42..4e22e2dc 100644 --- a/src/client.hh +++ b/src/client.hh @@ -22,11 +22,14 @@ extern "C" { #include "otk/rect.hh" #include "otk/eventhandler.hh" #include "widget.hh" +#include "python.hh" namespace ob { class OBFrame; +extern PyTypeObject OBClient_Type; + //! Maintains the state of a client window. /*! OBClient maintains the state of a client window. The state consists of the @@ -40,6 +43,7 @@ class OBFrame; change (such as causing a redraw of the titlebar after the title is changed). */ class OBClient : public otk::OtkEventHandler, public OBWidget { + PyObject_HEAD public: //! The frame window which decorates around the client window @@ -134,6 +138,14 @@ public: static const long event_mask = PropertyChangeMask | FocusChangeMask | StructureNotifyMask; + //! The mask of events to not let propogate past the client + /*! + This makes things like xprop work on the client window, but means we have + to explicitly grab clicks that we want. + */ + static const long no_propagate_mask = ButtonPressMask | ButtonReleaseMask | + ButtonMotionMask; + //! The number of unmap events to ignore on the window int ignore_unmaps;