- if (e->type == ButtonPress || e->type == ButtonRelease ||
- e->type == MotionNotify || e->type == KeyPress ||
- e->type == KeyRelease)
- {
- event_handle_user_input(client, e);
+ if (e->type == ButtonPress || e->type == ButtonRelease) {
+ /* If the button press was on some non-root window, or was physically
+ on the root window, the process it */
+ if (window != RootWindow(ob_display, ob_screen) ||
+ e->xbutton.subwindow == None)
+ {
+ event_handle_user_input(client, e);
+ }
+ /* Otherwise only process it if it was physically on an openbox
+ internal window */
+ else {
+ ObWindow *w;
+
+ if ((w = g_hash_table_lookup(window_map, &e->xbutton.subwindow)) &&
+ WINDOW_IS_INTERNAL(w))
+ {
+ event_handle_user_input(client, e);
+ }
+ }