1. 16 Feb, 2012 4 commits
    • Pekka Paalanen's avatar
      protocol: remove absolute coordinates from pointer · 5536031b
      Pekka Paalanen authored
      
      
      Remove the absolute coordinate fields from the pointer motion and
      pointer_focus events. Clients are not supposed to see any global
      coordinates.
      
      Fix wayland-server code accordingly. wayland-client code is unaffected.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <ppaalanen@gmail.com>
      5536031b
    • Ander Conselvan de Oliveira's avatar
      data_device: get rid of attach request · 7243062f
      Ander Conselvan de Oliveira authored
      
      
      In the effort to make everything a regular surface, remove
      data_device.attach request. To maintan the functionality, add
      an icon surface parameter to data_device.start_drag.
      Signed-off-by: Kristian H. Kristensen's avatarKristian Høgsberg <krh@bitplanet.net>
      Signed-off-by: Ander Conselvan de Oliveira's avatarAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      7243062f
    • Juan Zhao's avatar
      Add fullscreen protocol · b3981136
      Juan Zhao authored
      Map the surface as a fullscreen surface. On the output the
      surface is assigned to. The client can use different fulllscreen
      method to fix the size mismatch issue: default, scale, driver
      and fill.
      
      Hints to indicate compositor how to deal with this fullscreen surface.
      
      "default" means the client has no preference on fullscreen
                behavior, policies are determined by compositor.
      "scale"   means the client prefers scaling by the compositor.
                Scaling would always preserve surface's aspect ratio.
                And the surface is centered.
      "driver"  means the client wants to switch video mode to the
                smallest mode that can fit the client buffer. If the
                sizes do not match, black borders are added. And the
                framerate parameter is used for "driver" method,
                to indicate the preferred framerate. framerate=0 means
                that the app does not care about framerate
      "fill"    means the client wants to add blackborders to the
                surface. This would be preferring 1:1 pixel mapping
                in the monitor native video mode. The surface is
                centered.
      b3981136
    • Juan Zhao's avatar
      Add maximized protocol · 2eddfce1
      Juan Zhao authored
      A request from the client to ask the compositor to maximize the surface.
      The compositor will reply with a configure event telling
      the expected new surface size.  The operation is completed on the
      next buffer attach to this surface.
      
      A maximized client will fill the fullscreen of the output it is bound
      to, except the panel area. This is the main difference between
      a maximized shell surface and a fullscreen shell surface.
      2eddfce1
  2. 09 Feb, 2012 7 commits
  3. 19 Jan, 2012 4 commits
  4. 18 Jan, 2012 1 commit
    • Jesse Barnes's avatar
      scanner: Support documentation elements · 5cd04713
      Jesse Barnes authored
      On Wed, 18 Jan 2012 12:29:37 -0800
      "Kristensen, Kristian H" <kristian.h.kristensen@intel.com> wrote:
      > Yeah, that looks good.  I was thinking of a separate <description> tag
      > to avoid stuffing too much into an attribute.
      
      How does this look?  It adds a summary attribute to atomic elements,
      and a <description> tag with a summary for others.  Spits out enum
      documentation like this:
      
      /**
       * wl_display_error - global error values
       * @WL_DISPLAY_ERROR_INVALID_OBJECT: server couldn't find object
       * @WL_DISPLAY_ERROR_INVALID_METHOD: method doesn't exist on the specified interface
       * @WL_DISPLAY_ERROR_NO_MEMORY: server is out of memory
       *
       * These errors are global and can be emitted in response to any server request.
       */
      enum wl_display_error {
      	WL_DISPLAY_ERROR_INVALID_OBJECT = 0,
      	WL_DISPLAY_ERROR_INVALID_METHOD = 1,
      	WL_DISPLAY_ERROR_NO_MEMORY = 2,
      };
      
      and structure documentation like this:
      
      /**
       * wl_display - core global object
       * @bind: bind an object to the display
       * @sync: (none)
       *
       * The core global object. This is a special singleton object. It is used for
       * internal wayland protocol features.
       */
      struct wl_display_interface {
      	void (*bind)(struct wl_client *client,
      		     struct wl_resource *resource,
      		     uint32_t name,
      		     const char *interface,
      		     uint32_t version,
      		     uint32_t id);
      	void (*sync)(struct wl_client *client,
      		     struct wl_resource *resource,
      		     uint32_t callback);
      };
      5cd04713
  5. 13 Jan, 2012 1 commit
  6. 12 Jan, 2012 1 commit
    • Neil Roberts's avatar
      server: In default grab, update focus resource after sending release · e0b6af03
      Neil Roberts authored
      The default grab implementation in wayland-server was updating the
      focus resource before sending the button event. This would cause the
      button release to be dropped from the implicit grab if the pointer is
      moved away from the focus surface. This patch just swaps the order
      around.
      e0b6af03
  7. 11 Jan, 2012 1 commit
  8. 06 Jan, 2012 4 commits
    • Kristian Høgsberg's avatar
      Add new wl_shell popup surface type · b2e619c7
      Kristian Høgsberg authored
      b2e619c7
    • Kristian Høgsberg's avatar
      b6b3d07c
    • Kristian Høgsberg's avatar
      dbb3ba72
    • Kristian Høgsberg's avatar
      New grab API · 5ffe9f47
      Kristian Høgsberg authored
      This commit changes the way struct wl_grab works in a couple of ways:
      
       - The grab itself now decides when it ends instead of hardcoding button
         up as the terminating event.  We remove the end vfunc since a grab now
         always know when it ends and can just clean up at that point.
      
       - We add a new focus vfunc that is invoked every time the pointer enters
         a new surface, regardless of any grabs.  The callback receives the
         surface and the surface-relative pointer coordinates.  The callback lets
         a grab send enter/leave events and change the grab focus.
      
       - The grab has a focus surface, wich determines the coordinate space
         for the motion callback coordinates.
      
       - The input device always tracks the current surface, ie the surface that
         currently contains the pointer, and coordinates relative to that surface.
      
      With these changes, we will be able to pull the core input event delivery
      and the drag and drop grab into the core wayland-server library.
      5ffe9f47
  9. 04 Jan, 2012 1 commit
  10. 03 Jan, 2012 2 commits
  11. 29 Dec, 2011 1 commit
  12. 27 Dec, 2011 1 commit
  13. 22 Dec, 2011 3 commits
  14. 21 Dec, 2011 1 commit
  15. 19 Dec, 2011 1 commit
  16. 17 Dec, 2011 2 commits
  17. 14 Dec, 2011 2 commits
  18. 13 Dec, 2011 1 commit
  19. 05 Dec, 2011 1 commit
    • Pekka Paalanen's avatar
      client: unset WAYLAND_SOCKET env variable · 58bb064a
      Pekka Paalanen authored
      
      
      WAYLAND_SOCKET contains a file descriptor that is an open connection to
      a Wayland server. It is private to us, and makes no sense to relay the
      same value (or any value) to our child processes.
      
      Unset the environment variable to prevent it from being accidentally
      relayed to other processes.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <ppaalanen@gmail.com>
      58bb064a
  20. 29 Nov, 2011 1 commit
    • Pekka Paalanen's avatar
      server: do not send delete_id to a dead client · cf89b40c
      Pekka Paalanen authored
      
      
      During client tear-down, all objects are destroyed in id order.
      Therefore the display object is destroyed first.
      
      If the destroy listeners of any object destroy another object by calling
      wl_resoruce_destroy(), we try to send a delete_id event to the client.
      This leads to a segmentation fault without a display object.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <ppaalanen@gmail.com>
      cf89b40c