Update TODO
[profile/ivi/wayland.git] / TODO
diff --git a/TODO b/TODO
index 6480b99..8cb8d34 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,90 +1,15 @@
 Core wayland protocol
 
- - scanner: wl_* prefix removal: split it out into a namespace part so
-   we can call variables "surface" instead of "wl_surface"?
-
- - We need rotation information in the output (multiples of 90
-   degress) and we'll need a way for a client to communicate that it
-   has rendered it's buffer according to the output rotation.  The
-   goal is to be able to pageflip directly to the client buffer, and
-   for that we need the client to render accordingly and the
-   compositor needs to know that it did.
-
- - Atomicity.  Currently a lot of the atomicity in Wayland relies on
-   how we batch up all requests in a protocol buffer and only flushes
-   in the "blockhandler" in the client.  Consensus was that we need
-   something more reliable and explicit.  The suggestion is that we
-   make surface.attach a synchronization point such that everything
-   before that is batched and applied atomically when the
-   surface.attach request comes in.  For cases where we need atomicity
-   beyond a surface.attach, we can add an atomic grouping mechanism,
-   that can group together multiple surface.attach requests into a
-   bigger atomic change.  To be researched a bit.
-
- - We should make pointer sprites regular surfaces.  Something like
-   input_device.set_sprite(surface).  This also make client side
-   animated cursors simple/possible, since we now get a frame event
-   that can drive the animation.
-
  - Maybe try to make remote wayland actually happen, to see if there
-   is something in the protocol/architecute that makes it harder than
+   is something in the protocol/architecture that makes it harder than
    it should be.
 
- - Reconsider data types for coordinates in events.  double, floats or
-   fixed point.  Transformed and/or accelerated input generates
-   sub-pixel positions.  24.8 fixed point could work.  Need to think
-   about the range of coordinates we need.  Different from X problem,
-   since we don't have sub-windows, which is where X hits the 16 bit
-   limitations.  Monitor and window sizes haven't yet out-grown the 16
-   bit range.
-
- - Key events need a bit more work/thinking/redesign. As it is we need
-   a mechanism to change and synchronize keymaps, repeat rates.  But
-   as we started talking, we decided that we needed to go back and
-   research what other systems do instead of just essentially copying
-   the X model.  Sending out unicode events in addition to keycode
-   events has a lot of benefits (OSK can send out unicode events
-   instead of fake keycode events, apps become much simpler...)  Move
-   keymap handling and repeat to the server?  Needs more research.
-
- - Pointer axis events need modifiers (ctrl-scroll eg), but we either
-   need to send the modifier state with each axis/scroll event or send
-   keys down on pointer_focus and subsequent key events... or just key
-   events for modifier keys... or for the non-repeating subset?
-
- - Input protocol restructuring: break up events into wl_pointer
-   (enter/leave/motion/button/axis events, set_pointer_surface
-   request), wl_keyboard (enter/leave/key events... what
-   else... unicode event, set_map request? pending kb work), and
-   wl_touch (down/up/motion/cancel events) interfaces.  Rename
-   wl_input_device to wl_seat.  wl_seat has zero or one of each, and
-   will announce this at bind time.  Raw devices are also tied to a
-   wl_seat, but we may not do that for 1.0, we just need to make sure
-   wl_seat has a forward compatible way to announce them.
-
- - Add timestamp to touch_cancel, add touch id to touch_cancel (?)
-
- - The output protocol needs to send all the ugly timing details for the modes.
-
 ICCCM
 
- - clipboard manager interface?  what's needed?  just notification
-   that the selection has gone away.  should the clipboard manager be
-   able to take over the selection "seamlessly", ie, with the same
-   timestamp etc?  Doesn't seem like we need that, the clipboard will
-   have to set a new data_source anyway, with the subset of mimetypes
-   it offers (the clipboad manager may only offer a subset of the
-   types offered by the original data_source)
-
  - mime-type guidelines for data_source (ie, both dnd and selection):
    recommended types for text or images, types that a clipboard
    manager must support, mime-types must be listed in preferred order
 
- - TRANSIENT_FOR handled by wl_shell_surface, WM_CLASS replaced by
-   .desktop file filename (absolute path if non-standard location)
-   WM_CLASS used for grouping windows in one button in a panel, for
-   example.  So we'll need a request to set that.
-
  - we need a "no kb focus please" mechanism.  Or should this be
    implicit in a specific surface type?
 
@@ -93,10 +18,6 @@ EWMH
  - configure should provide dx_left, dx_right, dy_top, dy_bottom, or
    dx, dy, width and height.
 
- - _NET_WM_NAME (shell_surface.set_title(utf8)), _NET_WM_ICON Is this
-   just another wl_surface? Do we need this if we have the .desktop
-   file?  How to set multiple sizes?
-
  - move to workspace, keep on top, on all workspaces, minimize etc
    requests for implementing client side window menu? or just make a
    "show window menu" request to let the compositor display and manage
@@ -104,10 +25,6 @@ EWMH
 
  - window move and resize functionality for kb and touch.
 
- - dnd loose ends: self-dnd: initiate dnd with a null data-source,
-   compositor will not offer to other clients, client has to know
-   internally what's offered and how to transfer data. no fd passing.
-
  - Protocol for specifying title bar rectangle (for moving
    unresponsive apps).  Rectangle for close button, so we can popup
    force-close dialog if application doesn't respond to ping event
@@ -121,8 +38,6 @@ EWMH
 
 EGL/gbm
 
- - Don't wl_display_iterate in eglSwapBuffer, send an eventfd fd?
-
  - Land Robert Braggs EGL extensions: frame age, swap with damage
 
  - Make it possible to share buffers from compositor to clients.
@@ -139,6 +54,7 @@ EGL/gbm
    allocate a scanout buffer now" event to the fullscreen-to-be
    client.
 
+
 Misc
 
  - glyph cache
@@ -169,28 +85,6 @@ Misc
    switching away from.  for minimized windows that we don't want live
    thumb nails for. etc.
 
-libxkbcommon
-
-  - pull in actions logic from xserver
-
-  - pull in keycode to keysym logic from libX11
-
-  - expose alloc functions in libxkbcommon, drop xserver funcs?
-
-  - pull the logic to write the xkb file from xkb_desc and names into
-    libxkbcommon and just build up the new xkb_desc instead of
-    dump+parse? (XkbWriteXKBKeymapForNames followed by
-    xkb_compile_keymap_from_string in XkbDDXLoadKeymapByNames)
-
-  - pull in keysym defs as XKB_KEY_BackSpace
-
-  - figure out what other X headers we can get rid of, make it not
-    need X at all (except when we gen the keysyms).
-
-  - Sort out namespace pollution (XkbFoo macros, atom funcs etc).
-
-  - Sort out 32 bit vmods and serialization
-
 
 Clients and ports
 
@@ -211,8 +105,6 @@ Clients and ports
  - SDL port, bnf has work in progress here:
    http://cgit.freedesktop.org/~bnf/sdl-wayland/
 
- - libva + eglimage + kms integration
-
 
 Ideas