X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fframe.hh;h=e1647a991e2e7243722d5d2a61617ecb764ef56b;hb=9860b76c50e5ecacc85921539058eab4c655c38d;hp=9e3f3822b93f172874e73e8d09a4e0de517a45ba;hpb=fb3848450e649a05c0bed84a02bc9ab4e563b5d9;p=chaz%2Fopenbox diff --git a/src/frame.hh b/src/frame.hh index 9e3f3822..e1647a99 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -25,6 +25,9 @@ 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 { private: @@ -37,7 +40,11 @@ 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; otk::OtkButton _button_close; otk::OtkButton _button_iconify; @@ -55,11 +62,6 @@ private: */ OBClient::DecorationFlags _decorations; - //! Creates the base frame window - Window createFrame(); - //! Creates a child frame decoration element window - Window createChild(Window parent, Cursor cursor); - //! Reparents the client window from the root window onto the frame void grabClient(); //! Reparents the client window back to the root window @@ -84,7 +86,15 @@ public: //! Update the frame to match the client void adjust(); //! Shape the frame window to the client window - void adjustShape(); + void adjustShape(); + + //! 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(); }; }