]> Dogcows Code - chaz/openbox/blobdiff - src/blackbox.cc
backing out sticky transients change, this should go in the netwm branch
[chaz/openbox] / src / blackbox.cc
index c93b28a6331683a727333f07ac746234483e31a1..72bbf7234eedccea6566109a8f107516338e2c1d 100644 (file)
@@ -90,6 +90,8 @@ extern "C" {
 #endif // HAVE_LIBGEN_H
 }
 
+#include <assert.h>
+
 #include <algorithm>
 #include <string>
 using std::string;
@@ -559,11 +561,14 @@ void Blackbox::process_event(XEvent *e) {
   }
 
   case FocusIn: {
-    if (e->xfocus.detail != NotifyNonlinear) {
+    if (e->xfocus.detail != NotifyNonlinear &&
+        e->xfocus.detail != NotifyAncestor) {
       /*
         don't process FocusIns when:
         1. the new focus window isn't an ancestor or inferior of the old
         focus window (NotifyNonlinear)
+        make sure to allow the FocusIn when the old focus window was an
+        ancestor but didn't have a parent, such as root (NotifyAncestor)
       */
       break;
     }
@@ -650,7 +655,7 @@ void Blackbox::process_event(XEvent *e) {
 
   case ClientMessage: {
     if (e->xclient.format == 32) {
-      if (e->xclient.message_type == getWMChangeStateAtom()) {
+      if (e->xclient.message_type == xatom->getAtom(XAtom::wm_change_state)) {
         BlackboxWindow *win = searchWindow(e->xclient.window);
         if (! win || ! win->validateClient()) return;
 
This page took 0.022211 seconds and 4 git commands to generate.