]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
oops
[chaz/openbox] / openbox / event.c
index 91ba190b8824b124a6e0c5f8b60256377fd96b4b..0c2b4c394984b107dcf6213f2274f80ac89f6d66 100644 (file)
@@ -246,10 +246,9 @@ void event_process(XEvent *e)
     case EnterNotify:
     case LeaveNotify:
        event_lasttime = e->xcrossing.time;
-        /* XXX this caused problems before... but i don't remember why. hah.
-           so back it is. if problems arise again, then try filtering on the
-           detail instead of the mode. */
-        if (e->xcrossing.mode != NotifyNormal) return;
+        /* NotifyUngrab occurs when a mouse button is released and the event is
+           caused, like when lowering a window */
+        if (e->xcrossing.mode == NotifyGrab) return;
        break;
     }
 
@@ -438,7 +437,7 @@ static void event_handle_client(Client *client, XEvent *e)
        client_unmanage(client);
        break;
     case MapRequest:
-        if (!client->iconic) break; /* this normal doesn't happen, but if it
+        if (!client->iconic) break; /* this normally doesn't happen, but if it
                                        does, we don't want it! */
         if (screen_showing_desktop)
             screen_show_desktop(FALSE);
@@ -485,7 +484,8 @@ static void event_handle_client(Client *client, XEvent *e)
                }
                e->xclient = ce.xclient;
            }
-           client_set_desktop(client, e->xclient.data.l[0]);
+            if ((unsigned)e->xclient.data.l[0] < screen_num_desktops)
+                client_set_desktop(client, (unsigned)e->xclient.data.l[0]);
        } else if (msgtype == prop_atoms.net_wm_state) {
            /* can't compress these */
            g_message("net_wm_state %s %ld %ld for 0x%lx",
This page took 0.025305 seconds and 4 git commands to generate.