Rafael Antognolli wrote:

+    <request name="move">
+      <description summary="start an interactive move">
+       Start a pointer-driven move of the surface.
+
+       This request must be used in response to a button press event.
+       The server may ignore move requests depending on the state of
+       the surface (e.g. fullscreen or maximized).
+      </description>
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose 
pointer is used"/>
+      <arg name="serial" type="uint" summary="serial of the implicit grab on the 
pointer"/>
+      <art name="cursor_surface" type="object" interface="wl_surface" summary="the 
cursor surface used during the movement"/>
+    </request>
+
+    <request name="resize">
+      <description summary="start an interactive resize">
+       Start a pointer-driven resizing of the surface.
+
+       This request must be used in response to a button press event.
+       The server may ignore resize requests depending on the state of
+       the surface (e.g. fullscreen or maximized).
+      </description>
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose 
pointer is used"/>
+      <arg name="serial" type="uint" summary="serial of the implicit grab on the 
pointer"/>
+      <arg name="edges" type="uint" summary="which edge or corner is being 
dragged"/>
+      <art name="cursor_surface" type="object" interface="wl_surface" summary="the 
cursor surface used during the resizing"/>
+    </request>

I would merge these two requests since there really is no difference.

The new request should look like the resize one, with a new enumeration value 16 to indicate move and/or titlebar. The "none" value means "compositor can choose anything to do" and should be sent for clicks in the contents area in most cases. I did not use 15 for move because that might want to mean "symmetric resize about center". Also it may be useful to combine the titlebar indicator with an edge flag in case the titlebar is not at the top or is on more than one side.

In addition there should be a "preview" request. It takes exactly the same arguments but is in response to a mouse move. It indicates the the compositor that if the mouse is clicked the above will be called, and the compositor can use this to preview by changing the cursor or drawing overlays (there also has to be a "cancel preview" request).

It may not be clear but one thing I would like supported are "thick" resize areas. The client does not have to draw resize borders, provided there are "dead" areas near the edges of the window that the user can click on and call the above. The client can send 0 for "what" to let the compositor decide how thick the edges are.

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to