Browse Source

attempts at auto-focus

David Rose 19 years ago
parent
commit
c1f598e117
1 changed files with 12 additions and 0 deletions
  1. 12 0
      panda/src/glxdisplay/glxGraphicsWindow.cxx

+ 12 - 0
panda/src/glxdisplay/glxGraphicsWindow.cxx

@@ -361,6 +361,9 @@ process_events() {
     case MapNotify:
     case MapNotify:
       properties.set_minimized(false);
       properties.set_minimized(false);
       system_changed_properties(properties);
       system_changed_properties(properties);
+
+      // Auto-focus the window when it is mapped.
+      XSetInputFocus(_display, _xwindow, RevertToPointerRoot, CurrentTime);
       break;
       break;
 
 
     case ClientMessage:
     case ClientMessage:
@@ -514,6 +517,15 @@ set_properties_now(WindowProperties &properties) {
     properties.clear_cursor_hidden();
     properties.clear_cursor_hidden();
   }
   }
 
 
+  if (properties.has_foreground()) {
+    if (properties.get_foreground()) {
+      XSetInputFocus(_display, _xwindow, RevertToPointerRoot, CurrentTime);
+    } else {
+      XSetInputFocus(_display, PointerRoot, RevertToPointerRoot, CurrentTime);
+    }
+    properties.clear_foreground();
+  }
+
   set_wm_properties(wm_properties, true);
   set_wm_properties(wm_properties, true);
 }
 }