aboutsummaryrefslogtreecommitdiff
path: root/src/fluxbox.cc
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-07-20 18:05:40 (GMT)
committerrathnor <rathnor>2003-07-20 18:05:40 (GMT)
commit037bd174bfb107fef4657c949ce49c188090f3e7 (patch)
tree35d56080c76f4751946be2ddf95e4ce18e2a5bf2 /src/fluxbox.cc
parent8500132b0a05d22470e63cee1d16191ecb138ecf (diff)
downloadfluxbox_pavel-037bd174bfb107fef4657c949ce49c188090f3e7.zip
fluxbox_pavel-037bd174bfb107fef4657c949ce49c188090f3e7.tar.bz2
fix focus and raising for transient windows in particular
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r--src/fluxbox.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 027da76..b7a4d5b 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.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: fluxbox.cc,v 1.171 2003/07/18 15:40:55 rathnor Exp $ 25// $Id: fluxbox.cc,v 1.172 2003/07/20 18:05:39 rathnor Exp $
26 26
27#include "fluxbox.hh" 27#include "fluxbox.hh"
28 28
@@ -891,11 +891,13 @@ void Fluxbox::handleEvent(XEvent * const e) {
891 break; 891 break;
892 892
893 FluxboxWindow *win = searchWindow(e->xfocus.window); 893 FluxboxWindow *win = searchWindow(e->xfocus.window);
894 if (win && ! win->isFocused()) 894 if (win && ! win->isFocused()) {
895 setFocusedWindow(win); 895 setFocusedWindow(win);
896 }
896 897
897 } break; 898 } break;
898 case FocusOut:{ 899 case FocusOut:{
900
899 if (e->xfocus.mode == NotifyUngrab || 901 if (e->xfocus.mode == NotifyUngrab ||
900 e->xfocus.detail == NotifyPointer) 902 e->xfocus.detail == NotifyPointer)
901 break; 903 break;
@@ -904,8 +906,7 @@ void Fluxbox::handleEvent(XEvent * const e) {
904#ifdef DEBUG 906#ifdef DEBUG
905 cerr<<__FILE__<<"("<<__FUNCTION__<<") Focus out is not a FluxboxWindow !!"<<endl; 907 cerr<<__FILE__<<"("<<__FUNCTION__<<") Focus out is not a FluxboxWindow !!"<<endl;
906#endif // DEBUG 908#endif // DEBUG
907 if (getFocusedWindow()) 909
908 getFocusedWindow()->setInputFocus();
909 } 910 }
910 } 911 }
911 break; 912 break;
@@ -1084,8 +1085,9 @@ void Fluxbox::handleClientMessage(XClientMessageEvent &ce) {
1084 1085
1085 } else if (ce.message_type == m_fbatoms->getFluxboxChangeWindowFocusAtom()) { 1086 } else if (ce.message_type == m_fbatoms->getFluxboxChangeWindowFocusAtom()) {
1086 FluxboxWindow *win = searchWindow(ce.window); 1087 FluxboxWindow *win = searchWindow(ce.window);
1087 if (win && win->isVisible() && win->setInputFocus()) 1088 if (win && win->isVisible() && win->setInputFocus()) {
1088 win->installColormap(true); 1089 win->installColormap(true);
1090 }
1089 } else if (ce.message_type == m_fbatoms->getFluxboxCycleWindowFocusAtom()) { 1091 } else if (ce.message_type == m_fbatoms->getFluxboxCycleWindowFocusAtom()) {
1090 BScreen *screen = searchScreen(ce.window); 1092 BScreen *screen = searchScreen(ce.window);
1091 1093