diff options
author | Jan Arne Petersen <jpetersen@openismus.com> | 2013-04-18 16:47:29 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-05-02 16:41:47 -0400 |
commit | 7cd29e199ac3fca57c84be021c36f9019cfa7b92 (patch) | |
tree | b163ebe4da5d819cd44be6903ba0b8acf127d28a /clients/keyboard.c | |
parent | 14da96bf81b5fdf720698b633de2a742c4f644dd (diff) | |
download | weston-7cd29e199ac3fca57c84be021c36f9019cfa7b92.tar.gz |
text: Add output argument to set_toplevel
Allow to specify an output for a toplevel input panel surface.
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Diffstat (limited to 'clients/keyboard.c')
-rw-r--r-- | clients/keyboard.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/clients/keyboard.c b/clients/keyboard.c index 2f28a8f1..17fb6837 100644 --- a/clients/keyboard.c +++ b/clients/keyboard.c @@ -39,6 +39,7 @@ struct virtual_keyboard { struct input_method *input_method; struct input_method_context *context; struct display *display; + struct output *output; char *preedit_string; uint32_t preedit_style; struct { @@ -768,7 +769,7 @@ keyboard_create(struct output *output, struct virtual_keyboard *virtual_keyboard struct keyboard *keyboard; const struct layout *layout; struct input_panel_surface *ips; - + layout = get_current_layout(virtual_keyboard); keyboard = malloc(sizeof *keyboard); @@ -795,27 +796,18 @@ keyboard_create(struct output *output, struct virtual_keyboard *virtual_keyboard ips = input_panel_get_input_panel_surface(virtual_keyboard->input_panel, window_get_wl_surface(keyboard->window)); - input_panel_surface_set_toplevel(ips, INPUT_PANEL_SURFACE_POSITION_CENTER_BOTTOM); -} - -static void -handle_output_configure(struct output *output, void *data) -{ - struct virtual_keyboard *virtual_keyboard = data; + input_panel_surface_set_toplevel(ips, + output_get_wl_output(output), + INPUT_PANEL_SURFACE_POSITION_CENTER_BOTTOM); - /* skip existing outputs */ - if (output_get_user_data(output)) - return; - - output_set_user_data(output, virtual_keyboard); - - keyboard_create(output, virtual_keyboard); + fprintf(stderr, "%s, %p\n", __FUNCTION__, output_get_wl_output(output)); } int main(int argc, char *argv[]) { struct virtual_keyboard virtual_keyboard; + struct output *output; memset(&virtual_keyboard, 0, sizeof virtual_keyboard); @@ -827,7 +819,9 @@ main(int argc, char *argv[]) display_set_user_data(virtual_keyboard.display, &virtual_keyboard); display_set_global_handler(virtual_keyboard.display, global_handler); - display_set_output_configure_handler(virtual_keyboard.display, handle_output_configure); + + output = display_get_output(virtual_keyboard.display); + keyboard_create(output, &virtual_keyboard); display_run(virtual_keyboard.display); |