X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fframe.hh;h=1816ad011ef17f39b30ebe6fc66100dd2977c073;hb=301adc8bc20dff10093f3c0df44e30acbbddab67;hp=ff6a21ad0becd3ab9db8d8f74fbdc440b6adf4c4;hpb=d8de17b58e2fee1414e0970bc372b661abe259a6;p=chaz%2Fopenbox diff --git a/src/frame.hh b/src/frame.hh index ff6a21ad..1816ad01 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -25,8 +25,16 @@ namespace ob { //! Holds and decorates a frame around an OBClient (client window) /*! + The frame is responsible for calling XSelectInput on the client window's new + parent with the SubstructureRedirectMask so that structure events for the + client are sent to the window manager. */ class OBFrame : public otk::OtkWidget { +public: + + //! The event mask to grab on frame windows + static const long event_mask = EnterWindowMask | LeaveWindowMask; + private: OBClient *_client; const otk::ScreenInfo *_screen; @@ -37,6 +45,9 @@ private: //! The size of the frame on each side of the client window otk::Strut _size; + //! The size of the frame on each side of the client window inside the border + otk::Strut _innersize; + // decoration windows otk::OtkFocusWidget _plate; // sits entirely under the client window otk::OtkFocusWidget _titlebar; @@ -85,6 +96,10 @@ public: //! Applies gravity for the client's gravity, moving the frame to the //! appropriate place void applyGravity(); + + //! Reversely applies gravity for the client's gravity, moving the frame so + //! that the client is in its pre-gravity position + void reverseGravity(); }; }