diff options
-rw-r--r-- | src/Slit.cc | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/Slit.cc b/src/Slit.cc index a219fd8..c349230 100644 --- a/src/Slit.cc +++ b/src/Slit.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Slit.cc,v 1.63 2003/06/22 12:31:37 fluxgen Exp $ | 25 | // $Id: Slit.cc,v 1.64 2003/06/22 14:17:17 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Slit.hh" | 27 | #include "Slit.hh" |
28 | 28 | ||
@@ -39,10 +39,11 @@ | |||
39 | #include "Screen.hh" | 39 | #include "Screen.hh" |
40 | #include "ImageControl.hh" | 40 | #include "ImageControl.hh" |
41 | #include "RefCount.hh" | 41 | #include "RefCount.hh" |
42 | #include "SimpleCommand.hh" | ||
43 | #include "BoolMenuItem.hh" | 42 | #include "BoolMenuItem.hh" |
44 | #include "EventManager.hh" | 43 | #include "EventManager.hh" |
44 | #include "SimpleCommand.hh" | ||
45 | #include "MacroCommand.hh" | 45 | #include "MacroCommand.hh" |
46 | #include "FbCommands.hh" | ||
46 | #include "LayerMenu.hh" | 47 | #include "LayerMenu.hh" |
47 | #include "fluxbox.hh" | 48 | #include "fluxbox.hh" |
48 | #include "XLayer.hh" | 49 | #include "XLayer.hh" |
@@ -78,6 +79,9 @@ public: | |||
78 | explicit SlitClientMenuItem(SlitClient &client, FbTk::RefCount<FbTk::Command> &cmd): | 79 | explicit SlitClientMenuItem(SlitClient &client, FbTk::RefCount<FbTk::Command> &cmd): |
79 | FbTk::MenuItem(client.matchName().c_str(), cmd), m_client(client) { | 80 | FbTk::MenuItem(client.matchName().c_str(), cmd), m_client(client) { |
80 | FbTk::MenuItem::setSelected(client.visible()); | 81 | FbTk::MenuItem::setSelected(client.visible()); |
82 | // save resources as default click action | ||
83 | FbTk::RefCount<FbTk::Command> save_rc(new FbCommands::SaveResources()); | ||
84 | setCommand(save_rc); | ||
81 | } | 85 | } |
82 | const std::string &label() const { | 86 | const std::string &label() const { |
83 | return m_client.matchName(); | 87 | return m_client.matchName(); |
@@ -88,7 +92,6 @@ public: | |||
88 | void click(int button, int time) { | 92 | void click(int button, int time) { |
89 | m_client.setVisible(!m_client.visible()); | 93 | m_client.setVisible(!m_client.visible()); |
90 | FbTk::MenuItem::click(button, time); | 94 | FbTk::MenuItem::click(button, time); |
91 | Fluxbox::instance()->save_rc(); | ||
92 | } | 95 | } |
93 | private: | 96 | private: |
94 | SlitClient &m_client; | 97 | SlitClient &m_client; |
@@ -258,10 +261,16 @@ void Slit::clearStrut() { | |||
258 | } | 261 | } |
259 | 262 | ||
260 | void Slit::updateStrut() { | 263 | void Slit::updateStrut() { |
264 | bool had_strut = m_strut ? true : false; | ||
261 | clearStrut(); | 265 | clearStrut(); |
262 | // no need for area if we're autohiding | 266 | // no need for area if we're autohiding or set maximize over |
263 | if (doAutoHide()) | 267 | if (doAutoHide() || *m_rc_maximize_over) { |
268 | // update screen area if we had a strut before | ||
269 | if (had_strut) | ||
270 | screen().updateAvailableWorkspaceArea(); | ||
264 | return; | 271 | return; |
272 | } | ||
273 | |||
265 | 274 | ||
266 | int left = 0, right = 0, top = 0, bottom = 0; | 275 | int left = 0, right = 0, top = 0, bottom = 0; |
267 | switch (placement()) { | 276 | switch (placement()) { |
@@ -532,6 +541,7 @@ void Slit::removeClient(Window w, bool remap) { | |||
532 | 541 | ||
533 | 542 | ||
534 | void Slit::reconfigure() { | 543 | void Slit::reconfigure() { |
544 | |||
535 | m_transp->setAlpha(*m_rc_alpha); | 545 | m_transp->setAlpha(*m_rc_alpha); |
536 | 546 | ||
537 | frame.width = 0; | 547 | frame.width = 0; |
@@ -686,7 +696,6 @@ void Slit::reconfigure() { | |||
686 | updateClientmenu(); | 696 | updateClientmenu(); |
687 | updateStrut(); | 697 | updateStrut(); |
688 | 698 | ||
689 | |||
690 | } | 699 | } |
691 | 700 | ||
692 | 701 | ||
@@ -809,9 +818,6 @@ void Slit::reposition() { | |||
809 | frame.window.moveResize(frame.x, frame.y, | 818 | frame.window.moveResize(frame.x, frame.y, |
810 | frame.width, frame.height); | 819 | frame.width, frame.height); |
811 | } | 820 | } |
812 | #ifdef DEBUG | ||
813 | cerr<<__FILE__<<"("<<__FUNCTION__<<"): frame("<<dec<<frame.x<<", "<<frame.y<<", "<<frame.width<<", "<<frame.height<<")"<<endl; | ||
814 | #endif // DEBUG | ||
815 | 821 | ||
816 | } | 822 | } |
817 | 823 | ||
@@ -1101,8 +1107,7 @@ void Slit::setupMenu() { | |||
1101 | 1107 | ||
1102 | FbTk::MacroCommand *s_a_reconf_macro = new FbTk::MacroCommand(); | 1108 | FbTk::MacroCommand *s_a_reconf_macro = new FbTk::MacroCommand(); |
1103 | FbTk::MacroCommand *s_a_reconf_slit_macro = new FbTk::MacroCommand(); | 1109 | FbTk::MacroCommand *s_a_reconf_slit_macro = new FbTk::MacroCommand(); |
1104 | FbTk::RefCount<FbTk::Command> saverc_cmd(new FbTk::SimpleCommand<Fluxbox>(*Fluxbox::instance(), | 1110 | FbTk::RefCount<FbTk::Command> saverc_cmd(new FbCommands::SaveResources()); |
1105 | &Fluxbox::save_rc)); | ||
1106 | FbTk::RefCount<FbTk::Command> reconf_cmd(new FbCommands::ReconfigureFluxboxCmd()); | 1111 | FbTk::RefCount<FbTk::Command> reconf_cmd(new FbCommands::ReconfigureFluxboxCmd()); |
1107 | FbTk::RefCount<FbTk::Command> reconf_slit_cmd(new FbTk::SimpleCommand<Slit>(*this, &Slit::reconfigure)); | 1112 | FbTk::RefCount<FbTk::Command> reconf_slit_cmd(new FbTk::SimpleCommand<Slit>(*this, &Slit::reconfigure)); |
1108 | 1113 | ||