diff options
-rw-r--r-- | src/Window.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Window.cc b/src/Window.cc index 4d407ad..c08cd19 100644 --- a/src/Window.cc +++ b/src/Window.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: Window.cc,v 1.255 2003/12/21 15:24:28 rathnor Exp $ | 25 | // $Id: Window.cc,v 1.256 2003/12/21 16:23:19 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -902,8 +902,12 @@ bool FluxboxWindow::setCurrentClient(WinClient &client, bool setinput, long igno | |||
902 | 902 | ||
903 | m_client = &client; | 903 | m_client = &client; |
904 | m_client->raise(); | 904 | m_client->raise(); |
905 | frame().setLabelButtonFocus(*m_labelbuttons[m_client]); | 905 | if (setinput && setInputFocus(ignore_event)) { |
906 | return setinput && setInputFocus(ignore_event); | 906 | frame().setLabelButtonFocus(*m_labelbuttons[m_client]); |
907 | return true; | ||
908 | } | ||
909 | |||
910 | return false; | ||
907 | } | 911 | } |
908 | 912 | ||
909 | bool FluxboxWindow::isGroupable() const { | 913 | bool FluxboxWindow::isGroupable() const { |
@@ -1195,14 +1199,13 @@ bool FluxboxWindow::setInputFocus(long ignore_event) { | |||
1195 | if (m_client->getFocusMode() == WinClient::F_LOCALLYACTIVE || | 1199 | if (m_client->getFocusMode() == WinClient::F_LOCALLYACTIVE || |
1196 | m_client->getFocusMode() == WinClient::F_PASSIVE) { | 1200 | m_client->getFocusMode() == WinClient::F_PASSIVE) { |
1197 | m_client->setInputFocus(RevertToPointerRoot, CurrentTime); | 1201 | m_client->setInputFocus(RevertToPointerRoot, CurrentTime); |
1198 | |||
1199 | // this may or may not send, but we've setInputFocus already, so return true | ||
1200 | m_client->sendFocus(); | 1202 | m_client->sendFocus(); |
1201 | ret = true; | 1203 | ret = true; |
1202 | } else { | 1204 | } else { |
1203 | ret = m_client->sendFocus(); // checks if it should send or not | 1205 | ret = m_client->sendFocus(); |
1204 | } | 1206 | } |
1205 | 1207 | ||
1208 | |||
1206 | // People can ignore an event until the focus comes through | 1209 | // People can ignore an event until the focus comes through |
1207 | // this is most likely to be an EnterNotify for sloppy focus | 1210 | // this is most likely to be an EnterNotify for sloppy focus |
1208 | if (ret && m_client->getFocusMode() != WinClient::F_NOINPUT && ignore_event != None) | 1211 | if (ret && m_client->getFocusMode() != WinClient::F_NOINPUT && ignore_event != None) |