1. 28 May, 2019 2 commits
    • Manuel Stoeckl's avatar
      Defer truncated message parts correctly · 15ac2e38
      Manuel Stoeckl authored
      This commit ensures that when a series of messages read from
      either the compositor or application is truncated halfway through
      a message, that the truncated message is completed and correctly
      parsed on the next iteration of the message transport state machine.
    • Manuel Stoeckl's avatar
      Rewrite main proxy loop to use nonblocking sockets · 4d42fae3
      Manuel Stoeckl authored
      Previously, the main proxy loops in `run_server_child` and
      `run_client_child` alternated between making transfers from their shared
      channel to their individual wayland compositor/application channels.
      By using socket connections in nonblocking mode, the proxy now can
      simultaneously maintain transfers in both directions. This ensures that
      large transfers (such as a full-screen image) do not prevent e.g. key
      release events from being transferred.
      Additionally, as the two proxy loops were very similar, they have been
       combined into the `main_interface_loop` routine.
      The code still does not correctly handle the case where a read from
      the wayland compositor/application fills the entire read buffer and
      truncates a sent message, but it is now easier to adjust for that case.
  2. 27 May, 2019 5 commits
    • Manuel Stoeckl's avatar
      Add deletion framework for file descriptors · 1c834fdf
      Manuel Stoeckl authored
      When shadow_fd structs _that are owned by known protocol objects_
      have their reference count drop to zero, they are deleted.
      Newly created shadow_fd's begin with a reference count of 1,
      which is reduced when the translated fd to sent to the
      display/application/other waypipe socket end. This ensures
      that the object is not deleted early, even if the compositor
      e.g. wl_display.delete_id's the fd owning object before receiving
    • Manuel Stoeckl's avatar
      Remove incorrect warning messages · fc9fecef
      Manuel Stoeckl authored
      For wl_shm_pool.resize, wl_shm.create_pool, and wl_surface.commit .
    • Manuel Stoeckl's avatar
    • Manuel Stoeckl's avatar
      Improve build portability · 065233ab
      Manuel Stoeckl authored
      * Make scdoc optional; documentation is not strictly necessary
      * Explicitly test for fmacro-prefix-map support
      * Test for the minimum possible versions of wayland dependencies
      * Reduce required meson version
    • Manuel Stoeckl's avatar
      Implement simple buffer ownership system · f73e15a0
      Manuel Stoeckl authored
      Every wp_object has a nullable reference to the shadow structure
      for a file descriptor. As the existence of wayland protocol
      objects is not guaranteed in the face of compositor/application
      misbehavior, when e.g. a wl_buffer is created from a wl_shm_pool,
      the wl_buffer registers a reference to the file descriptor that
      the wl_shm_pool had. Methods that imply a file descriptor change
      (wl_keyboard.keymap, wl_surface.commit) mark the object's referenced
      file descriptor as dirty, so that changes can be transferred.
      This commit does not yet implement any deletion logic.
  3. 26 May, 2019 1 commit
  4. 25 May, 2019 1 commit
  5. 23 May, 2019 1 commit
  6. 21 May, 2019 1 commit
  7. 20 May, 2019 3 commits
  8. 18 May, 2019 1 commit
  9. 17 May, 2019 1 commit
  10. 16 May, 2019 1 commit
  11. 15 May, 2019 4 commits
  12. 14 May, 2019 3 commits
  13. 13 May, 2019 2 commits
  14. 12 May, 2019 2 commits
  15. 11 May, 2019 1 commit