diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Slit.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/Slit.cc b/src/Slit.cc index 63b1eb4..df05b4f 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.42 2003/04/25 17:27:36 fluxgen Exp $ | 25 | // $Id: Slit.cc,v 1.43 2003/05/01 15:03:36 rathnor Exp $ |
26 | 26 | ||
27 | #include "Slit.hh" | 27 | #include "Slit.hh" |
28 | 28 | ||
@@ -761,6 +761,9 @@ void Slit::reconfigure() { | |||
761 | break; | 761 | break; |
762 | } | 762 | } |
763 | 763 | ||
764 | if (do_auto_hide && !hidden && !timer.isTiming()) | ||
765 | timer.start(); | ||
766 | |||
764 | slitmenu.reconfigure(); | 767 | slitmenu.reconfigure(); |
765 | updateClientmenu(); | 768 | updateClientmenu(); |
766 | } | 769 | } |
@@ -1007,6 +1010,11 @@ void Slit::leaveNotifyEvent(XCrossingEvent &ev) { | |||
1007 | } else if (! slitmenu.isVisible()) { | 1010 | } else if (! slitmenu.isVisible()) { |
1008 | if (! timer.isTiming()) | 1011 | if (! timer.isTiming()) |
1009 | timer.start(); | 1012 | timer.start(); |
1013 | } else { | ||
1014 | // the menu is open, keep it firing until it closes | ||
1015 | timer.fireOnce(false); | ||
1016 | if (! timer.isTiming()) | ||
1017 | timer.start(); | ||
1010 | } | 1018 | } |
1011 | 1019 | ||
1012 | } | 1020 | } |
@@ -1049,6 +1057,10 @@ void Slit::configureRequestEvent(XConfigureRequestEvent &event) { | |||
1049 | 1057 | ||
1050 | 1058 | ||
1051 | void Slit::timeout() { | 1059 | void Slit::timeout() { |
1060 | if (!slitmenu.isVisible()) { | ||
1061 | timer.fireOnce(true); | ||
1062 | } else | ||
1063 | return; | ||
1052 | hidden = ! hidden; // toggle hidden state | 1064 | hidden = ! hidden; // toggle hidden state |
1053 | if (hidden) | 1065 | if (hidden) |
1054 | frame.window.move(frame.x_hidden, frame.y_hidden); | 1066 | frame.window.move(frame.x_hidden, frame.y_hidden); |