shell: center the unlock dialog
authorPekka Paalanen <ppaalanen@gmail.com>
Fri, 2 Dec 2011 08:59:17 +0000 (10:59 +0200)
committerPekka Paalanen <ppaalanen@gmail.com>
Wed, 14 Dec 2011 11:43:49 +0000 (13:43 +0200)
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
compositor/shell.c

index ec7df87..e32e8bc 100644 (file)
@@ -360,6 +360,13 @@ shell_surface_set_transient(struct wl_client *client,
        shsurf->type = SHELL_SURFACE_TRANSIENT;
 }
 
+static struct wlsc_output *
+get_default_output(struct wlsc_compositor *compositor)
+{
+       return container_of(compositor->output_list.next,
+                           struct wlsc_output, link);
+}
+
 static void
 shell_surface_set_fullscreen(struct wl_client *client,
                             struct wl_resource *resource)
@@ -374,8 +381,7 @@ shell_surface_set_fullscreen(struct wl_client *client,
 
        /* FIXME: Fullscreen on first output */
        /* FIXME: Handle output going away */
-       output = container_of(es->compositor->output_list.next,
-                             struct wlsc_output, link);
+       output = get_default_output(es->compositor);
        es->output = output;
 
        shsurf->saved_x = es->x;
@@ -946,6 +952,9 @@ map(struct wlsc_shell *base,
        case SHELL_SURFACE_FULLSCREEN:
                center_on_output(surface, surface->fullscreen_output);
                break;
+       case SHELL_SURFACE_LOCK:
+               center_on_output(surface, get_default_output(compositor));
+               break;
        default:
                ;
        }