From: Ning Tang <ning.t...@intel.com> It is no requirement to use lockscreen. So remove it totally but remaining unlock listener to unlock from sleep status. --- clients/tablet-shell.c | 94 ----------------------------------------------- protocol/tablet-shell.xml | 5 --- src/tablet-shell.c | 79 +++------------------------------------ 3 files changed, 6 insertions(+), 172 deletions(-)
diff --git a/clients/tablet-shell.c b/clients/tablet-shell.c index a19effa..7c579c4 100644 --- a/clients/tablet-shell.c +++ b/clients/tablet-shell.c @@ -41,7 +41,6 @@ struct tablet { struct window *switcher; struct homescreen *homescreen; - struct lockscreen *lockscreen; }; struct homescreen { @@ -51,11 +50,6 @@ struct homescreen { struct input *input; }; -struct lockscreen { - struct window *window; - struct widget *widget; -}; - /* container of launchers on background */ struct layout { struct widget *widget; @@ -99,8 +93,6 @@ struct launcher { struct wl_data_source *data_source; }; -static char *key_lockscreen_icon; -static char *key_lockscreen_background; static char *key_homescreen_background; static char *key_launcher_icon; static char *key_launcher_path; @@ -120,8 +112,6 @@ static cairo_surface_t *trash_surface = NULL; struct rectangle *trash_allocation = NULL; static const struct config_key shell_config_keys[] = { - { "lockscreen-icon", CONFIG_KEY_STRING, &key_lockscreen_icon }, - { "lockscreen", CONFIG_KEY_STRING, &key_lockscreen_background }, { "homescreen", CONFIG_KEY_STRING, &key_homescreen_background }, { "trash-image", CONFIG_KEY_STRING, &key_trash_image }, { "terminal", CONFIG_KEY_STRING, &key_terminal }, @@ -305,55 +295,6 @@ static const struct wl_data_source_listener data_source_listener = { NULL, }; -static void -lockscreen_draw(struct widget *widget, void *data) -{ - struct lockscreen *lockscreen = data; - cairo_surface_t *surface; - cairo_surface_t *icon; - struct rectangle allocation; - cairo_t *cr; - int width, height; - - surface = window_get_surface(lockscreen->window); - cr = cairo_create(surface); - - widget_get_allocation(widget, &allocation); - paint_background(cr, key_lockscreen_background, &allocation); - - cairo_set_operator(cr, CAIRO_OPERATOR_OVER); - icon = load_cairo_surface(key_lockscreen_icon); - if (icon) { - width = cairo_image_surface_get_width(icon); - height = cairo_image_surface_get_height(icon); - cairo_set_source_surface(cr, icon, - allocation.x + (allocation.width - width) / 2, - allocation.y + (allocation.height - height) / 2); - } else { - fprintf(stderr, "couldn't load lockscreen icon: %s\n", - key_lockscreen_icon); - cairo_set_source_rgb(cr, 0.2, 0, 0); - } - cairo_paint(cr); - cairo_destroy(cr); - cairo_surface_destroy(icon); - cairo_surface_destroy(surface); -} - -static void -lockscreen_button_handler(struct widget *widget, - struct input *input, uint32_t time, - uint32_t button, - enum wl_pointer_button_state state, void *data) -{ - struct lockscreen *lockscreen = data; - - if (state == WL_POINTER_BUTTON_STATE_PRESSED && lockscreen->window) { - window_destroy(lockscreen->window); - lockscreen->window = NULL; - } -} - static cairo_surface_t * create_drag_cursor(struct launcher *launcher, int32_t x, int32_t y, double opacity) @@ -638,40 +579,6 @@ static void trash_set_allocation(struct rectangle allocation) } } -static struct lockscreen * -lockscreen_create(struct tablet *tablet) -{ - struct lockscreen *lockscreen; - - lockscreen = malloc (sizeof *lockscreen); - memset(lockscreen, 0, sizeof *lockscreen); - - lockscreen->window = window_create_custom(tablet->display); - lockscreen->widget = - window_add_widget(lockscreen->window, lockscreen); - window_set_user_data(lockscreen->window, lockscreen); - window_set_title(lockscreen->window, "lockscreen"); - widget_set_redraw_handler(lockscreen->widget, lockscreen_draw); - widget_set_button_handler(lockscreen->widget, - lockscreen_button_handler); - - return lockscreen; -} - -static void -show_lockscreen(void *data, struct tablet_shell *tablet_shell) -{ - struct tablet *tablet = data; - - tablet->lockscreen = lockscreen_create(tablet); - tablet_shell_set_lockscreen(tablet->tablet_shell, - window_get_wl_surface(tablet->lockscreen->window)); - - widget_schedule_resize(tablet->lockscreen->widget, - tablet->allocation.width, - tablet->allocation.height); -} - static void show_switcher(void *data, struct tablet_shell *tablet_shell) { @@ -709,7 +616,6 @@ launch_terminal(void *data, struct tablet_shell *tablet_shell) } static const struct tablet_shell_listener tablet_shell_listener = { - show_lockscreen, show_switcher, hide_switcher, launch_terminal diff --git a/protocol/tablet-shell.xml b/protocol/tablet-shell.xml index 24ca2fd..40188ec 100644 --- a/protocol/tablet-shell.xml +++ b/protocol/tablet-shell.xml @@ -1,10 +1,6 @@ <protocol name="tablet"> <interface name="tablet_shell" version="1"> - <request name="set_lockscreen"> - <arg name="surface" type="object" interface="wl_surface"/> - </request> - <request name="set_switcher"> <arg name="surface" type="object" interface="wl_surface"/> </request> @@ -27,7 +23,6 @@ <arg name="fd" type="fd"/> </request> - <event name="show_lockscreen"/> <event name="show_switcher"/> <event name="hide_switcher"/> <event name="launch_terminal"/> diff --git a/src/tablet-shell.c b/src/tablet-shell.c index 0bd0120..27d0486 100644 --- a/src/tablet-shell.c +++ b/src/tablet-shell.c @@ -37,7 +37,6 @@ enum { STATE_STARTING, - STATE_LOCKED, STATE_HOME, STATE_SWITCHER, STATE_TASK @@ -47,7 +46,6 @@ struct tablet_shell { struct wl_resource resource; struct wl_resource client_resource; - struct wl_listener lock_listener; struct wl_listener unlock_listener; struct wl_listener destroy_listener; @@ -57,10 +55,6 @@ struct tablet_shell { struct weston_surface *surface; - struct weston_surface *lockscreen_surface; - struct wl_listener lockscreen_listener; - struct weston_layer lockscreen_layer; - struct weston_layer application_layer; struct weston_surface *home_surface; @@ -166,6 +160,7 @@ shell_handle_surface_destroy(struct wl_listener *listener, void *data) destroy_shell_surface(shsurf); } } + static void shell_surface_pong(struct wl_client *client, struct wl_resource *resource, uint32_t serial) @@ -412,7 +407,7 @@ static void tablet_shell_set_state(struct tablet_shell *shell, int state) { static const char *states[] = { - "STARTING", "LOCKED", "HOME", "SWITCHER", "TASK" + "STARTING", "HOME", "SWITCHER", "TASK" }; weston_log("switching to state %s (from %s)\n", @@ -436,10 +431,7 @@ tablet_shell_surface_configure(struct weston_surface *surface, weston_surface_configure(surface, 0, 0, width, height); - if (surface == shell->lockscreen_surface) { - wl_list_insert(&shell->lockscreen_layer.surface_list, - &surface->layer_link); - } else if (surface == shell->switcher_surface) { + if (surface == shell->switcher_surface) { /* */ } else if (surface == shell->home_surface) { if (shell->state == STATE_STARTING) { @@ -447,9 +439,7 @@ tablet_shell_surface_configure(struct weston_surface *surface, wl_list_insert(&shell->homescreen_layer.surface_list, &surface->layer_link); - tablet_shell_set_state(shell, STATE_LOCKED); - shell->previous_state = STATE_HOME; - tablet_shell_send_show_lockscreen(&shell->resource); + shell->state = STATE_HOME; } } else if (shell->current_client && shell->current_client->surface != surface && @@ -465,33 +455,6 @@ tablet_shell_surface_configure(struct weston_surface *surface, } static void -handle_lockscreen_surface_destroy(struct wl_listener *listener, void *data) -{ - struct tablet_shell *shell = - container_of(listener, - struct tablet_shell, lockscreen_listener); - - shell->lockscreen_surface = NULL; - tablet_shell_set_state(shell, shell->previous_state); -} - -static void -tablet_shell_set_lockscreen(struct wl_client *client, - struct wl_resource *resource, - struct wl_resource *surface_resource) -{ - struct tablet_shell *shell = resource->data; - struct weston_surface *es = surface_resource->data; - - weston_surface_set_position(es, 0, 0); - shell->lockscreen_surface = es; - shell->lockscreen_surface->configure = tablet_shell_surface_configure; - shell->lockscreen_listener.notify = handle_lockscreen_surface_destroy; - wl_signal_add(&es->surface.resource.destroy_signal, - &shell->lockscreen_listener); -} - -static void center_on_output(struct weston_surface *surface, struct weston_output *output) { struct weston_mode *mode = output->current; @@ -625,8 +588,7 @@ handle_switcher_surface_destroy(struct wl_listener *listener, void *data) struct tablet_shell, switcher_listener); shell->switcher_surface = NULL; - if (shell->state != STATE_LOCKED) - tablet_shell_set_state(shell, shell->previous_state); + tablet_shell_set_state(shell, shell->previous_state); } static void @@ -795,7 +757,6 @@ tablet_shell_create_client(struct wl_client *client, } static const struct tablet_shell_interface tablet_shell_implementation = { - tablet_shell_set_lockscreen, tablet_shell_set_switcher, tablet_shell_set_homescreen, tablet_shell_show_grid, @@ -828,25 +789,10 @@ toggle_switcher(struct tablet_shell *shell) } static void -tablet_shell_lock(struct wl_listener *listener, void *data) -{ - struct tablet_shell *shell = - container_of(listener, struct tablet_shell, lock_listener); - - if (shell->state == STATE_LOCKED) - return; - if (shell->state == STATE_SWITCHER) - tablet_shell_send_hide_switcher(&shell->resource); - - tablet_shell_send_show_lockscreen(&shell->resource); - tablet_shell_set_state(shell, STATE_LOCKED); -} - -static void tablet_shell_unlock(struct wl_listener *listener, void *data) { struct tablet_shell *shell = - container_of(listener, struct tablet_shell, lock_listener); + container_of(listener, struct tablet_shell, unlock_listener); weston_compositor_wake(shell->compositor); } @@ -878,9 +824,6 @@ menu_key_binding(struct wl_seat *seat, uint32_t time, uint32_t key, void *data) { struct tablet_shell *shell = data; - if (shell->state == STATE_LOCKED) - return; - toggle_switcher(shell); } @@ -889,9 +832,6 @@ home_key_binding(struct wl_seat *seat, uint32_t time, uint32_t key, void *data) { struct tablet_shell *shell = data; - if (shell->state == STATE_LOCKED) - return; - if (1) { wl_event_source_timer_update(shell->long_press_source, 500); shell->long_press_active = 1; @@ -1037,9 +977,6 @@ tablet_shell_destroy(struct wl_listener *listener, void *data) if (shell->home_surface) shell->home_surface->configure = NULL; - if (shell->lockscreen_surface) - shell->lockscreen_surface->configure = NULL; - wl_event_source_remove(shell->long_press_source); free(shell); } @@ -1059,8 +996,6 @@ module_init(struct weston_compositor *compositor) shell->destroy_listener.notify = tablet_shell_destroy; wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener); - shell->lock_listener.notify = tablet_shell_lock; - wl_signal_add(&compositor->lock_signal, &shell->lock_listener); shell->unlock_listener.notify = tablet_shell_unlock; wl_signal_add(&compositor->unlock_signal, &shell->unlock_listener); @@ -1107,8 +1042,6 @@ module_init(struct weston_compositor *compositor) &compositor->cursor_layer.link); weston_layer_init(&shell->application_layer, &compositor->cursor_layer.link); - weston_layer_init(&shell->lockscreen_layer, - &compositor->cursor_layer.link); launch_ux_daemon(shell); tablet_shell_set_state(shell, STATE_STARTING); -- 1.7.12.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel