Move shell bindings to shell.c
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 12 Apr 2011 21:25:42 +0000 (17:25 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 13 Apr 2011 02:09:42 +0000 (22:09 -0400)
compositor/compositor.c
compositor/compositor.h
compositor/shell.c

index b8eecde..4536c85 100644 (file)
@@ -1008,51 +1008,6 @@ wlsc_surface_activate(struct wlsc_surface *surface,
                                           time);
 }
 
-static void
-move_binding(struct wl_input_device *device, uint32_t time,
-            uint32_t key, uint32_t button, uint32_t state, void *data)
-{
-       struct wlsc_compositor *compositor = data;
-       struct wlsc_surface *surface =
-               (struct wlsc_surface *) device->pointer_focus;
-
-       shell_move(NULL,
-                  (struct wl_shell *) &compositor->shell,
-                  &surface->surface, device, time);
-}
-
-static void
-resize_binding(struct wl_input_device *device, uint32_t time,
-              uint32_t key, uint32_t button, uint32_t state, void *data)
-{
-       struct wlsc_compositor *compositor = data;
-       struct wlsc_surface *surface =
-               (struct wlsc_surface *) device->pointer_focus;
-       uint32_t edges = 0;
-       int32_t x, y;
-
-       x = device->grab_x - surface->x;
-       y = device->grab_y - surface->y;
-
-       if (x < surface->width / 3)
-               edges |= WL_SHELL_RESIZE_LEFT;
-       else if (x < 2 * surface->width / 3)
-               edges |= 0;
-       else
-               edges |= WL_SHELL_RESIZE_RIGHT;
-
-       if (y < surface->height / 3)
-               edges |= WL_SHELL_RESIZE_TOP;
-       else if (y < 2 * surface->height / 3)
-               edges |= 0;
-       else
-               edges |= WL_SHELL_RESIZE_BOTTOM;
-
-       shell_resize(NULL,
-                    (struct wl_shell *) &compositor->shell,
-                    &surface->surface, device, time, edges);
-}
-
 struct wlsc_binding {
        uint32_t key;
        uint32_t button;
@@ -1565,13 +1520,13 @@ wlsc_compositor_init(struct wlsc_compositor *ec, struct wl_display *display)
        wlsc_shm_init(ec);
        eglBindWaylandDisplayWL(ec->display, ec->wl_display);
 
-       wlsc_shell_init(ec);
-
        wl_list_init(&ec->surface_list);
        wl_list_init(&ec->input_device_list);
        wl_list_init(&ec->output_list);
        wl_list_init(&ec->binding_list);
 
+       wlsc_shell_init(ec);
+
        wlsc_compositor_add_binding(ec, KEY_BACKSPACE, 0,
                                    MODIFIER_CTRL | MODIFIER_ALT,
                                    terminate_binding, ec);
@@ -1581,10 +1536,6 @@ wlsc_compositor_init(struct wlsc_compositor *ec, struct wl_display *display)
                                    switcher_terminate_binding, ec);
        wlsc_compositor_add_binding(ec, KEY_RIGHTMETA, MODIFIER_SUPER, 0,
                                    switcher_terminate_binding, ec);
-       wlsc_compositor_add_binding(ec, 0, BTN_LEFT, MODIFIER_SUPER,
-                                   move_binding, ec);
-       wlsc_compositor_add_binding(ec, 0, BTN_MIDDLE, MODIFIER_SUPER,
-                                   resize_binding, ec);
 
        create_pointer_images(ec);
 
index 70a223d..6828b28 100644 (file)
@@ -250,16 +250,6 @@ wlsc_shm_init(struct wlsc_compositor *ec);
 int
 wlsc_shell_init(struct wlsc_compositor *ec);
 
-void
-shell_move(struct wl_client *client, struct wl_shell *shell,
-          struct wl_surface *surface,
-          struct wl_input_device *device, uint32_t time);
-
-void
-shell_resize(struct wl_client *client, struct wl_shell *shell,
-            struct wl_surface *surface,
-            struct wl_input_device *device, uint32_t time, uint32_t edges);
-
 struct wlsc_compositor *
 x11_compositor_create(struct wl_display *display, int width, int height);
 
index 8ed7d2c..c480e9a 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <linux/input.h>
 
 #include "wayland-server.h"
 #include "compositor.h"
@@ -74,7 +75,7 @@ static const struct wl_grab_interface move_grab_interface = {
        move_grab_end
 };
 
-void
+static void
 shell_move(struct wl_client *client, struct wl_shell *shell,
           struct wl_surface *surface,
           struct wl_input_device *device, uint32_t time)
@@ -169,7 +170,7 @@ static const struct wl_grab_interface resize_grab_interface = {
        resize_grab_end
 };
 
-void
+static void
 shell_resize(struct wl_client *client, struct wl_shell *shell,
             struct wl_surface *surface,
             struct wl_input_device *device, uint32_t time, uint32_t edges)
@@ -662,6 +663,51 @@ const static struct wl_shell_interface shell_interface = {
        shell_create_selection
 };
 
+static void
+move_binding(struct wl_input_device *device, uint32_t time,
+            uint32_t key, uint32_t button, uint32_t state, void *data)
+{
+       struct wlsc_compositor *compositor = data;
+       struct wlsc_surface *surface =
+               (struct wlsc_surface *) device->pointer_focus;
+
+       shell_move(NULL,
+                  (struct wl_shell *) &compositor->shell,
+                  &surface->surface, device, time);
+}
+
+static void
+resize_binding(struct wl_input_device *device, uint32_t time,
+              uint32_t key, uint32_t button, uint32_t state, void *data)
+{
+       struct wlsc_compositor *compositor = data;
+       struct wlsc_surface *surface =
+               (struct wlsc_surface *) device->pointer_focus;
+       uint32_t edges = 0;
+       int32_t x, y;
+
+       x = device->grab_x - surface->x;
+       y = device->grab_y - surface->y;
+
+       if (x < surface->width / 3)
+               edges |= WL_SHELL_RESIZE_LEFT;
+       else if (x < 2 * surface->width / 3)
+               edges |= 0;
+       else
+               edges |= WL_SHELL_RESIZE_RIGHT;
+
+       if (y < surface->height / 3)
+               edges |= WL_SHELL_RESIZE_TOP;
+       else if (y < 2 * surface->height / 3)
+               edges |= 0;
+       else
+               edges |= WL_SHELL_RESIZE_BOTTOM;
+
+       shell_resize(NULL,
+                    (struct wl_shell *) &compositor->shell,
+                    &surface->surface, device, time, edges);
+}
+
 int
 wlsc_shell_init(struct wlsc_compositor *ec)
 {
@@ -673,5 +719,10 @@ wlsc_shell_init(struct wlsc_compositor *ec)
        if (wl_display_add_global(ec->wl_display, &shell->object, NULL))
                return -1;
 
+       wlsc_compositor_add_binding(ec, 0, BTN_LEFT, MODIFIER_SUPER,
+                                   move_binding, ec);
+       wlsc_compositor_add_binding(ec, 0, BTN_MIDDLE, MODIFIER_SUPER,
+                                   resize_binding, ec);
+
        return 0;
 }