diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Window.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/Window.cc b/src/Window.cc index be8fab6..4e49091 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.169 2003/05/11 13:36:11 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.170 2003/05/11 15:32:23 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -1163,7 +1163,7 @@ bool FluxboxWindow::setInputFocus() { | |||
1163 | WinClient::TransientList::iterator it_end = m_client->transients.end(); | 1163 | WinClient::TransientList::iterator it_end = m_client->transients.end(); |
1164 | for (; it != it_end; ++it) { | 1164 | for (; it != it_end; ++it) { |
1165 | if ((*it)->isModal()) | 1165 | if ((*it)->isModal()) |
1166 | return (*it)->fbwindow()->setCurrentClient(**it,true); | 1166 | return (*it)->fbwindow()->setCurrentClient(**it, true); |
1167 | } | 1167 | } |
1168 | } else { | 1168 | } else { |
1169 | if (m_focus_mode == F_LOCALLYACTIVE || m_focus_mode == F_PASSIVE) { | 1169 | if (m_focus_mode == F_LOCALLYACTIVE || m_focus_mode == F_PASSIVE) { |
@@ -1177,6 +1177,8 @@ bool FluxboxWindow::setInputFocus() { | |||
1177 | 1177 | ||
1178 | Fluxbox::instance()->setFocusedWindow(this); | 1178 | Fluxbox::instance()->setFocusedWindow(this); |
1179 | 1179 | ||
1180 | m_frame.setFocus(true); | ||
1181 | |||
1180 | if (send_focus_message) | 1182 | if (send_focus_message) |
1181 | m_client->sendFocus(); | 1183 | m_client->sendFocus(); |
1182 | 1184 | ||
@@ -1950,8 +1952,13 @@ void FluxboxWindow::handleEvent(XEvent &event) { | |||
1950 | 1952 | ||
1951 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { | 1953 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { |
1952 | // we're only conserned about client window event | 1954 | // we're only conserned about client window event |
1953 | if (re.window != m_client->window()) | 1955 | WinClient *client = findClient(re.window); |
1956 | if (client == 0) { | ||
1957 | #ifdef DEBUG | ||
1958 | cerr<<"mapRequestEvent: Can't find client!"<<endl; | ||
1959 | #endif // DEBUG | ||
1954 | return; | 1960 | return; |
1961 | } | ||
1955 | 1962 | ||
1956 | Fluxbox *fluxbox = Fluxbox::instance(); | 1963 | Fluxbox *fluxbox = Fluxbox::instance(); |
1957 | 1964 | ||
@@ -2006,7 +2013,7 @@ void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { | |||
2006 | } | 2013 | } |
2007 | 2014 | ||
2008 | deiconify(false); | 2015 | deiconify(false); |
2009 | 2016 | ||
2010 | break; | 2017 | break; |
2011 | case InactiveState: | 2018 | case InactiveState: |
2012 | case ZoomState: | 2019 | case ZoomState: |