aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkt <markt>2007-07-02 05:27:21 (GMT)
committermarkt <markt>2007-07-02 05:27:21 (GMT)
commit295c929f984a5dbc54d9672e092e79abcf0f227a (patch)
tree7e54b5d70554aa2704d14c9388b18d0c9bab8b4e
parent4e5e7668504ee511b0a422df08f2338f3f68e0fe (diff)
downloadfluxbox-295c929f984a5dbc54d9672e092e79abcf0f227a.zip
fluxbox-295c929f984a5dbc54d9672e092e79abcf0f227a.tar.bz2
minor usability fix for :Tab and :GoToWindow commands
fixed handle rendering when switching from a style without them
-rw-r--r--src/CurrentWindowCmd.cc7
-rw-r--r--src/FbWinFrame.cc5
-rw-r--r--src/FocusControl.cc14
3 files changed, 13 insertions, 13 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc
index f411f83..4a60e63 100644
--- a/src/CurrentWindowCmd.cc
+++ b/src/CurrentWindowCmd.cc
@@ -94,9 +94,10 @@ void TakeToPrevWorkspaceCmd::real_execute() {
94} 94}
95 95
96void GoToTabCmd::real_execute() { 96void GoToTabCmd::real_execute() {
97 int num = m_tab_num + (m_tab_num > 0 ? 0 : fbwindow().numClients() + 1); 97 int num = m_tab_num;
98 if (num < 1 || num > fbwindow().numClients()) 98 if (num < 0) num += fbwindow().numClients() + 1;
99 return; 99 if (num < 1) num = 1;
100 if (num > fbwindow().numClients()) num = fbwindow().numClients();
100 101
101 FluxboxWindow::ClientList::iterator it = fbwindow().clientList().begin(); 102 FluxboxWindow::ClientList::iterator it = fbwindow().clientList().begin();
102 103
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
index a387744..6f9c86e 100644
--- a/src/FbWinFrame.cc
+++ b/src/FbWinFrame.cc
@@ -789,10 +789,11 @@ bool FbWinFrame::showHandle() {
789 if (m_use_handle || theme().handleWidth() == 0) 789 if (m_use_handle || theme().handleWidth() == 0)
790 return false; 790 return false;
791 791
792 m_use_handle = true;
793
792 // weren't previously rendered... 794 // weren't previously rendered...
793 renderHandles(); 795 renderHandles();
794 796 applyHandles();
795 m_use_handle = true;
796 797
797 m_handle.show(); 798 m_handle.show();
798 m_handle.showSubwindows(); // shows grips 799 m_handle.showSubwindows(); // shows grips
diff --git a/src/FocusControl.cc b/src/FocusControl.cc
index 8706752..47a0a71 100644
--- a/src/FocusControl.cc
+++ b/src/FocusControl.cc
@@ -169,16 +169,15 @@ void FocusControl::cycleFocus(Focusables &window_list, const ClientPattern *pat,
169 169
170void FocusControl::goToWindowNumber(Focusables &winlist, int num, 170void FocusControl::goToWindowNumber(Focusables &winlist, int num,
171 const ClientPattern *pat) { 171 const ClientPattern *pat) {
172 Focusable *last_matched = 0;
172 if (num > 0) { 173 if (num > 0) {
173 Focusables::iterator it = winlist.begin(); 174 Focusables::iterator it = winlist.begin();
174 Focusables::iterator it_end = winlist.end(); 175 Focusables::iterator it_end = winlist.end();
175 for (; it != it_end; ++it) { 176 for (; it != it_end; ++it) {
176 if (!doSkipWindow(**it, pat) && (*it)->acceptsFocus()) { 177 if (!doSkipWindow(**it, pat) && (*it)->acceptsFocus()) {
177 --num; 178 --num;
178 if (!num) { 179 last_matched = *it;
179 (*it)->focus(); 180 if (!num) break;
180 return;
181 }
182 } 181 }
183 } 182 }
184 } else if (num < 0) { 183 } else if (num < 0) {
@@ -187,13 +186,12 @@ void FocusControl::goToWindowNumber(Focusables &winlist, int num,
187 for (; it != it_end; ++it) { 186 for (; it != it_end; ++it) {
188 if (!doSkipWindow(**it, pat) && (*it)->acceptsFocus()) { 187 if (!doSkipWindow(**it, pat) && (*it)->acceptsFocus()) {
189 ++num; 188 ++num;
190 if (!num) { 189 last_matched = *it;
191 (*it)->focus(); 190 if (!num) break;
192 return;
193 }
194 } 191 }
195 } 192 }
196 } 193 }
194 if (last_matched) last_matched->focus();
197} 195}
198 196
199void FocusControl::addFocusBack(WinClient &client) { 197void FocusControl::addFocusBack(WinClient &client) {