Activate toplevel fullscreen and menu surfaces
authorJuan Zhao <juan.j.zhao@linux.intel.com>
Thu, 15 Dec 2011 16:31:51 +0000 (11:31 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 15 Dec 2011 16:31:51 +0000 (11:31 -0500)
Activate the toplevel, fullscrren and menu surfaces during mapping,
so that the launched applications can get the keyboard focus without
clicking on that window.

compositor/shell.c

index 9035eb2..0966724 100644 (file)
@@ -1027,6 +1027,20 @@ map(struct wlsc_shell *base,
                wlsc_surface_configure(surface,
                                       surface->x, surface->y, width, height);
 
+       switch (surface_type) {
+       case SHELL_SURFACE_TOPLEVEL:
+       case SHELL_SURFACE_TRANSIENT:
+       case SHELL_SURFACE_FULLSCREEN:
+               if (!shell->locked)
+                       activate(base, surface,
+                                (struct wlsc_input_device *)
+                                       compositor->input_device,
+                                wlsc_compositor_get_time());
+               break;
+       default:
+               break;
+       }
+
        if (surface_type == SHELL_SURFACE_TOPLEVEL)
                wlsc_zoom_run(surface, 0.8, 1.0, NULL, NULL);
 }