wayland input methods
play

Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland - PowerPoint PPT Presentation

Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland Input Methods Input methods? Wayland Input Methods Input method developers want a unified architecture! (And UI toolkits don't want to bother too much ) Wayland Input


  1. Wayland Input Methods Michael Hasselmann Openismus GmbH Wayland Input Methods

  2. Input methods? Wayland Input Methods

  3. Input method developers want a unified architecture! (And UI toolkits don't want to bother too much …) Wayland Input Methods

  4. No protocol evolution in XIM https://mail.gnome.org/archives/wm-spec- list/2007-August/msg00025.html Wayland Input Methods

  5. One display server, many platforms Shell Extensions Applications Shells & Window Managers Toolkits Qt Quick Qt Quick Gnome Gnome Plasma/ Plasma/ ST/Mx Elementary ST/Mx Elementary Unity Unity Components Components Shell Plasma Active Shell Plasma Active Qt/QML Qt/QML GTK+ GTK+ Clutter Clutter Evas/Edje Evas/Edje SDL SDL Mutter Compiz KWin Mutter Compiz KWin Display Server Weston Weston Xorg Xorg Kernel Much better, more detailed: http://blog.mecheye.net/2012/06/the-linux-graphics-stack/ (Jasper „magcius“ St. Pierre) Wayland Input Methods

  6. Wayland 1.0: No input methods (but lots of crazy talk @ FOSDEM 2012) Wayland Input Methods

  7. One protocol, three interfaces Input methods protocol/input_method.xml interfaces : input_method_context, input_method, input_panel, input_panel_surface requests : commit_string, preedit_string, preedit_styling, keysym … events : surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods

  8. One protocol, three interfaces Input methods Weston protocol/input_method.xml examples : clients/keyboard.c interfaces : clients/editor.c input_method_context, clients/weston-simple-im.c input_method, input_panel, input_panel_surface generated headers: input-method-client- requests : protocol.h commit_string, input-method-server- preedit_string, protocol.h preedit_styling, keysym … text-client-protocol.h text-server-protocol.h events : surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods

  9. One protocol, three interfaces Input methods UI toolkits Weston protocol/input_method.xml protocol/text.xml examples : clients/keyboard.c interfaces : interfaces: clients/editor.c input_method_context, clients/weston-simple-im.c text_model, input_method, input_panel, text_model_factory input_panel_surface API (generated from XML): requests: input-method-client- requests : set_surrounding_text, protocol.h commit_string, activate, deactivate, input-method-server- preedit_string, set_content_type, … protocol.h preedit_styling, keysym, … text-client-protocol.h events: text-server-protocol.h events : commit_string, surrounding_text, reset, preedit_string, content_type, preedit_styling, keysm, … invoke_action, commit, … Wayland Input Methods

  10. Architecture Overview Application (Qt) Application (Qt) Application (EFL) Application (EFL) Application (GTK+) Application (GTK+) Wayland & Wayland & Wayland text Wayland text Interface Interface (text_model) (text_model) Weston Input Method Weston Input Method Wayland & Wayland input method Interfaces (input_method_context, input_panel_surface) https://wiki.maliit.org/Wayland_Input_Method_System_Proposal Wayland Input Methods

  11. Weston Keyboard & EFL Wayland Input Methods

  12. Maliit Keybord & EFL Wayland Input Methods

  13. Sub-surfaces (in X11: transient hints) Wayland Input Methods

  14. Sub-surfaces & input methods Wayland Input Methods

  15. IPC with sync calls application compositor input method Wayland Input Methods

  16. IPC + sequence numbers input method requests: application requests: activate(n) (idle) set_surrounding_text(n) set_cursor_position(n) commit(n) preedit_string(n) commit_string(n) reset(n+1) reset(n+1) commit_string(n+1) Wayland Input Methods

  17. Videos & more details @ blog.jpetersen.org Wayland Input Methods

  18. ? Wayland Input Methods

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend