Unstable protocols

fullscreen-shell

Client Headers

struct wl_output
Page

page_fullscreen_shell_unstable_v1 The fullscreen_shell_unstable_v1 protocol

Section

page_ifaces_fullscreen_shell_unstable_v1 Interfaces

  • @subpage page_iface_zwp_fullscreen_shell_v1 - displays a single surface per output

  • @subpage page_iface_zwp_fullscreen_shell_mode_feedback_v1 -

Section

page_copyright_fullscreen_shell_unstable_v1 Copyright

<pre>

Copyright © 2016 Yong Bakos Copyright © 2015 Jason Ekstrand Copyright © 2015 Jonas Ådahl

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_fullscreen_shell_v1 zwp_fullscreen_shell_v1

section

page_iface_zwp_fullscreen_shell_v1_desc Description

Displays a single surface per output.

This interface provides a mechanism for a single client to display simple full-screen surfaces. While there technically may be multiple clients bound to this interface, only one of those clients should be shown at a time.

To present a surface, the client uses either the present_surface or present_surface_for_mode requests. Presenting a surface takes effect on the next wl_surface.commit. See the individual requests for details about scaling and mode switches.

The client can have at most one surface per output at any time. Requesting a surface to be presented on an output that already has a surface replaces the previously presented surface. Presenting a null surface removes its content and effectively disables the output. Exactly what happens when an output is “disabled” is compositor-specific. The same surface may be presented on multiple outputs simultaneously.

Once a surface is presented on an output, it stays on that output until either the client removes it or the compositor destroys the output. This way, the client can update the output’s contents by simply attaching a new buffer.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_fullscreen_shell_v1_api API

See @ref iface_zwp_fullscreen_shell_v1.

const struct wl_interface zwp_fullscreen_shell_v1_interface

The zwp_fullscreen_shell_v1 interface

Displays a single surface per output.

This interface provides a mechanism for a single client to display simple full-screen surfaces. While there technically may be multiple clients bound to this interface, only one of those clients should be shown at a time.

To present a surface, the client uses either the present_surface or present_surface_for_mode requests. Presenting a surface takes effect on the next wl_surface.commit. See the individual requests for details about scaling and mode switches.

The client can have at most one surface per output at any time. Requesting a surface to be presented on an output that already has a surface replaces the previously presented surface. Presenting a null surface removes its content and effectively disables the output. Exactly what happens when an output is “disabled” is compositor-specific. The same surface may be presented on multiple outputs simultaneously.

Once a surface is presented on an output, it stays on that output until either the client removes it or the compositor destroys the output. This way, the client can update the output’s contents by simply attaching a new buffer.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_fullscreen_shell_mode_feedback_v1 zwp_fullscreen_shell_mode_feedback_v1

section

page_iface_zwp_fullscreen_shell_mode_feedback_v1_api API

See @ref iface_zwp_fullscreen_shell_mode_feedback_v1.

const struct wl_interface zwp_fullscreen_shell_mode_feedback_v1_interface

The zwp_fullscreen_shell_mode_feedback_v1 interface

enum zwp_fullscreen_shell_v1_capability

capabilities advertised by the compositor

Various capabilities that can be advertised by the compositor. They are advertised one-at-a-time when the wl_fullscreen_shell interface is bound. See the wl_fullscreen_shell.capability event for more details.

ARBITRARY_MODES: This is a hint to the client that indicates that the compositor is capable of setting practically any mode on its outputs. If this capability is provided, wl_fullscreen_shell.present_surface_for_mode will almost never fail and clients should feel free to set whatever mode they like. If the compositor does not advertise this, it may still support some modes that are not advertised through wl_global.mode but it is less likely.

CURSOR_PLANE: This is a hint to the client that indicates that the compositor can handle a cursor surface from the client without actually compositing. This may be because of a hardware cursor plane or some other mechanism. If the compositor does not advertise this capability then setting wl_pointer.cursor may degrade performance or be ignored entirely. If CURSOR_PLANE is not advertised, it is recommended that the client draw its own cursor and set wl_pointer.cursor(NULL).

ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ARBITRARY_MODES

compositor is capable of almost any output mode

ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_CURSOR_PLANE

compositor has a separate cursor plane

enum zwp_fullscreen_shell_v1_present_method

different method to set the surface fullscreen

Hints to indicate to the compositor how to deal with a conflict between the dimensions of the surface and the dimensions of the output. The compositor is free to ignore this parameter.

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_DEFAULT

no preference, apply default policy

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_CENTER

center the surface on the output

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM

scale the surface, preserving aspect ratio, to the largest size that will fit on the output

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM_CROP

scale the surface, preserving aspect ratio, to fully fill the output cropping if needed

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_STRETCH

scale the surface to the size of the output ignoring aspect ratio

enum zwp_fullscreen_shell_v1_error

wl_fullscreen_shell error values

These errors can be emitted in response to wl_fullscreen_shell requests.

ZWP_FULLSCREEN_SHELL_V1_ERROR_INVALID_METHOD

present_method is not known

struct zwp_fullscreen_shell_v1_listener
Struct

zwp_fullscreen_shell_v1_listener

void (*)(void *, struct zwp_fullscreen_shell_v1 *, uint32_t) capability

advertises a capability of the compositor

Advertises a single capability of the compositor.

When the wl_fullscreen_shell interface is bound, this event is emitted once for each capability advertised. Valid capabilities are given by the wl_fullscreen_shell.capability enum. If clients want to take advantage of any of these capabilities, they should use a wl_display.sync request immediately after binding to ensure that they receive all the capability events.

int zwp_fullscreen_shell_v1_add_listener(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1, const struct zwp_fullscreen_shell_v1_listener * listener, void * data)
ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_RELEASE_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_FOR_MODE_SINCE_VERSION
void zwp_fullscreen_shell_v1_set_user_data(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1, void * user_data)
void * zwp_fullscreen_shell_v1_get_user_data(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)
void zwp_fullscreen_shell_v1_destroy(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)
void zwp_fullscreen_shell_v1_release(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)

Release the binding from the wl_fullscreen_shell interface.

This destroys the server-side object and frees this binding. If the client binds to wl_fullscreen_shell multiple times, it may wish to free some of those bindings.

void zwp_fullscreen_shell_v1_present_surface(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1, struct wl_surface * surface, uint32_t method, struct wl_output * output)

Present a surface on the given output.

If the output is null, the compositor will present the surface on whatever display (or displays) it thinks best. In particular, this may replace any or all surfaces currently presented so it should not be used in combination with placing surfaces on specific outputs.

The method parameter is a hint to the compositor for how the surface is to be presented. In particular, it tells the compositor how to handle a size mismatch between the presented surface and the output. The compositor is free to ignore this parameter.

The “zoom”, “zoom_crop”, and “stretch” methods imply a scaling operation on the surface. This will override any kind of output scaling, so the buffer_scale property of the surface is effectively ignored.

struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_v1_present_surface_for_mode(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1, struct wl_surface * surface, struct wl_output * output, int32_t framerate)

Presents a surface on the given output for a particular mode.

If the current size of the output differs from that of the surface, the compositor will attempt to change the size of the output to match the surface. The result of the mode-switch operation will be returned via the provided wl_fullscreen_shell_mode_feedback object.

If the current output mode matches the one requested or if the compositor successfully switches the mode to match the surface, then the mode_successful event will be sent and the output will contain the contents of the given surface. If the compositor cannot match the output size to the surface size, the mode_failed will be sent and the output will contain the contents of the previously presented surface (if any). If another surface is presented on the given output before either of these has a chance to happen, the present_cancelled event will be sent.

Due to race conditions and other issues unknown to the client, no mode-switch operation is guaranteed to succeed. However, if the mode is one advertised by wl_output.mode or if the compositor advertises the ARBITRARY_MODES capability, then the client should expect that the mode-switch operation will usually succeed.

If the size of the presented surface changes, the resulting output is undefined. The compositor may attempt to change the output mode to compensate. However, there is no guarantee that a suitable mode will be found and the client has no way to be notified of success or failure.

The framerate parameter specifies the desired framerate for the output in mHz. The compositor is free to ignore this parameter. A value of 0 indicates that the client has no preference.

If the value of wl_output.scale differs from wl_surface.buffer_scale, then the compositor may choose a mode that matches either the buffer size or the surface size. In either case, the surface will fill the output.

struct zwp_fullscreen_shell_mode_feedback_v1_listener
Struct

zwp_fullscreen_shell_mode_feedback_v1_listener

void (*)(void *, struct zwp_fullscreen_shell_mode_feedback_v1 *) mode_successful

mode switch succeeded

This event indicates that the attempted mode switch operation was successful. A surface of the size requested in the mode switch will fill the output without scaling.

Upon receiving this event, the client should destroy the wl_fullscreen_shell_mode_feedback object.

void (*)(void *, struct zwp_fullscreen_shell_mode_feedback_v1 *) mode_failed

mode switch failed

This event indicates that the attempted mode switch operation failed. This may be because the requested output mode is not possible or it may mean that the compositor does not want to allow it.

Upon receiving this event, the client should destroy the wl_fullscreen_shell_mode_feedback object.

void (*)(void *, struct zwp_fullscreen_shell_mode_feedback_v1 *) present_cancelled

mode switch cancelled

This event indicates that the attempted mode switch operation was cancelled. Most likely this is because the client requested a second mode switch before the first one completed.

Upon receiving this event, the client should destroy the wl_fullscreen_shell_mode_feedback object.

int zwp_fullscreen_shell_mode_feedback_v1_add_listener(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1, const struct zwp_fullscreen_shell_mode_feedback_v1_listener * listener, void * data)
ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_SUCCESSFUL_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_FAILED_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_PRESENT_CANCELLED_SINCE_VERSION
void zwp_fullscreen_shell_mode_feedback_v1_set_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1, void * user_data)
void * zwp_fullscreen_shell_mode_feedback_v1_get_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1)
void zwp_fullscreen_shell_mode_feedback_v1_destroy(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1)

Server Headers

struct wl_output
Page

page_fullscreen_shell_unstable_v1 The fullscreen_shell_unstable_v1 protocol

Section

page_ifaces_fullscreen_shell_unstable_v1 Interfaces

  • @subpage page_iface_zwp_fullscreen_shell_v1 - displays a single surface per output

  • @subpage page_iface_zwp_fullscreen_shell_mode_feedback_v1 -

Section

page_copyright_fullscreen_shell_unstable_v1 Copyright

<pre>

Copyright © 2016 Yong Bakos Copyright © 2015 Jason Ekstrand Copyright © 2015 Jonas Ådahl

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_fullscreen_shell_v1 zwp_fullscreen_shell_v1

section

page_iface_zwp_fullscreen_shell_v1_desc Description

Displays a single surface per output.

This interface provides a mechanism for a single client to display simple full-screen surfaces. While there technically may be multiple clients bound to this interface, only one of those clients should be shown at a time.

To present a surface, the client uses either the present_surface or present_surface_for_mode requests. Presenting a surface takes effect on the next wl_surface.commit. See the individual requests for details about scaling and mode switches.

The client can have at most one surface per output at any time. Requesting a surface to be presented on an output that already has a surface replaces the previously presented surface. Presenting a null surface removes its content and effectively disables the output. Exactly what happens when an output is “disabled” is compositor-specific. The same surface may be presented on multiple outputs simultaneously.

Once a surface is presented on an output, it stays on that output until either the client removes it or the compositor destroys the output. This way, the client can update the output’s contents by simply attaching a new buffer.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_fullscreen_shell_v1_api API

See @ref iface_zwp_fullscreen_shell_v1.

const struct wl_interface zwp_fullscreen_shell_v1_interface

The zwp_fullscreen_shell_v1 interface

Displays a single surface per output.

This interface provides a mechanism for a single client to display simple full-screen surfaces. While there technically may be multiple clients bound to this interface, only one of those clients should be shown at a time.

To present a surface, the client uses either the present_surface or present_surface_for_mode requests. Presenting a surface takes effect on the next wl_surface.commit. See the individual requests for details about scaling and mode switches.

The client can have at most one surface per output at any time. Requesting a surface to be presented on an output that already has a surface replaces the previously presented surface. Presenting a null surface removes its content and effectively disables the output. Exactly what happens when an output is “disabled” is compositor-specific. The same surface may be presented on multiple outputs simultaneously.

Once a surface is presented on an output, it stays on that output until either the client removes it or the compositor destroys the output. This way, the client can update the output’s contents by simply attaching a new buffer.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_fullscreen_shell_mode_feedback_v1 zwp_fullscreen_shell_mode_feedback_v1

section

page_iface_zwp_fullscreen_shell_mode_feedback_v1_api API

See @ref iface_zwp_fullscreen_shell_mode_feedback_v1.

const struct wl_interface zwp_fullscreen_shell_mode_feedback_v1_interface

The zwp_fullscreen_shell_mode_feedback_v1 interface

enum zwp_fullscreen_shell_v1_capability

capabilities advertised by the compositor

Various capabilities that can be advertised by the compositor. They are advertised one-at-a-time when the wl_fullscreen_shell interface is bound. See the wl_fullscreen_shell.capability event for more details.

ARBITRARY_MODES: This is a hint to the client that indicates that the compositor is capable of setting practically any mode on its outputs. If this capability is provided, wl_fullscreen_shell.present_surface_for_mode will almost never fail and clients should feel free to set whatever mode they like. If the compositor does not advertise this, it may still support some modes that are not advertised through wl_global.mode but it is less likely.

CURSOR_PLANE: This is a hint to the client that indicates that the compositor can handle a cursor surface from the client without actually compositing. This may be because of a hardware cursor plane or some other mechanism. If the compositor does not advertise this capability then setting wl_pointer.cursor may degrade performance or be ignored entirely. If CURSOR_PLANE is not advertised, it is recommended that the client draw its own cursor and set wl_pointer.cursor(NULL).

ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ARBITRARY_MODES

compositor is capable of almost any output mode

ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_CURSOR_PLANE

compositor has a separate cursor plane

enum zwp_fullscreen_shell_v1_present_method

different method to set the surface fullscreen

Hints to indicate to the compositor how to deal with a conflict between the dimensions of the surface and the dimensions of the output. The compositor is free to ignore this parameter.

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_DEFAULT

no preference, apply default policy

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_CENTER

center the surface on the output

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM

scale the surface, preserving aspect ratio, to the largest size that will fit on the output

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM_CROP

scale the surface, preserving aspect ratio, to fully fill the output cropping if needed

ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_STRETCH

scale the surface to the size of the output ignoring aspect ratio

enum zwp_fullscreen_shell_v1_error

wl_fullscreen_shell error values

These errors can be emitted in response to wl_fullscreen_shell requests.

ZWP_FULLSCREEN_SHELL_V1_ERROR_INVALID_METHOD

present_method is not known

struct zwp_fullscreen_shell_v1_interface
Struct

zwp_fullscreen_shell_v1_interface

void (*)(struct wl_client *, struct wl_resource *) release

release the wl_fullscreen_shell interface

Release the binding from the wl_fullscreen_shell interface.

This destroys the server-side object and frees this binding. If the client binds to wl_fullscreen_shell multiple times, it may wish to free some of those bindings.

void (*)(struct wl_client *, struct wl_resource *, struct wl_resource *, uint32_t, struct wl_resource *) present_surface

present surface for display

Present a surface on the given output.

If the output is null, the compositor will present the surface on whatever display (or displays) it thinks best. In particular, this may replace any or all surfaces currently presented so it should not be used in combination with placing surfaces on specific outputs.

The method parameter is a hint to the compositor for how the surface is to be presented. In particular, it tells the compositor how to handle a size mismatch between the presented surface and the output. The compositor is free to ignore this parameter.

The “zoom”, “zoom_crop”, and “stretch” methods imply a scaling operation on the surface. This will override any kind of output scaling, so the buffer_scale property of the surface is effectively ignored.

void (*)(struct wl_client *, struct wl_resource *, struct wl_resource *, struct wl_resource *, int32_t, uint32_t) present_surface_for_mode

present surface for display at a particular mode

Presents a surface on the given output for a particular mode.

If the current size of the output differs from that of the surface, the compositor will attempt to change the size of the output to match the surface. The result of the mode-switch operation will be returned via the provided wl_fullscreen_shell_mode_feedback object.

If the current output mode matches the one requested or if the compositor successfully switches the mode to match the surface, then the mode_successful event will be sent and the output will contain the contents of the given surface. If the compositor cannot match the output size to the surface size, the mode_failed will be sent and the output will contain the contents of the previously presented surface (if any). If another surface is presented on the given output before either of these has a chance to happen, the present_cancelled event will be sent.

Due to race conditions and other issues unknown to the client, no mode-switch operation is guaranteed to succeed. However, if the mode is one advertised by wl_output.mode or if the compositor advertises the ARBITRARY_MODES capability, then the client should expect that the mode-switch operation will usually succeed.

If the size of the presented surface changes, the resulting output is undefined. The compositor may attempt to change the output mode to compensate. However, there is no guarantee that a suitable mode will be found and the client has no way to be notified of success or failure.

The framerate parameter specifies the desired framerate for the output in mHz. The compositor is free to ignore this parameter. A value of 0 indicates that the client has no preference.

If the value of wl_output.scale differs from wl_surface.buffer_scale, then the compositor may choose a mode that matches either the buffer size or the surface size. In either case, the surface will fill the output.

ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_RELEASE_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_FOR_MODE_SINCE_VERSION
void zwp_fullscreen_shell_v1_send_capability(struct wl_resource * resource_, uint32_t capability)

Sends an capability event to the client owning the resource.

Parameters
  • resource – The client’s resource

ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_SUCCESSFUL_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_FAILED_SINCE_VERSION
ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_PRESENT_CANCELLED_SINCE_VERSION
void zwp_fullscreen_shell_mode_feedback_v1_send_mode_successful(struct wl_resource * resource_)

Sends an mode_successful event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_fullscreen_shell_mode_feedback_v1_send_mode_failed(struct wl_resource * resource_)

Sends an mode_failed event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_fullscreen_shell_mode_feedback_v1_send_present_cancelled(struct wl_resource * resource_)

Sends an present_cancelled event to the client owning the resource.

Parameters
  • resource – The client’s resource

idle-inhibit

Client Headers

struct wl_surface
Page

page_idle_inhibit_unstable_v1 The idle_inhibit_unstable_v1 protocol

Section

page_ifaces_idle_inhibit_unstable_v1 Interfaces

  • @subpage page_iface_zwp_idle_inhibit_manager_v1 - control behavior when display idles

  • @subpage page_iface_zwp_idle_inhibitor_v1 - context object for inhibiting idle behavior

Section

page_copyright_idle_inhibit_unstable_v1 Copyright

<pre>

Copyright © 2015 Samsung Electronics Co., Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_idle_inhibit_manager_v1 zwp_idle_inhibit_manager_v1

section

page_iface_zwp_idle_inhibit_manager_v1_desc Description

This interface permits inhibiting the idle behavior such as screen blanking, locking, and screensaving. The client binds the idle manager globally, then creates idle-inhibitor objects for each surface.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_idle_inhibit_manager_v1_api API

See @ref iface_zwp_idle_inhibit_manager_v1.

const struct wl_interface zwp_idle_inhibit_manager_v1_interface

The zwp_idle_inhibit_manager_v1 interface

This interface permits inhibiting the idle behavior such as screen blanking, locking, and screensaving. The client binds the idle manager globally, then creates idle-inhibitor objects for each surface.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_idle_inhibitor_v1 zwp_idle_inhibitor_v1

section

page_iface_zwp_idle_inhibitor_v1_desc Description

An idle inhibitor prevents the output that the associated surface is visible on from being set to a state where it is not visually usable due to lack of user interaction (e.g. blanked, dimmed, locked, set to power save, etc.) Any screensaver processes are also blocked from displaying.

If the surface is destroyed, unmapped, becomes occluded, loses visibility, or otherwise becomes not visually relevant for the user, the idle inhibitor will not be honored by the compositor; if the surface subsequently regains visibility the inhibitor takes effect once again. Likewise, the inhibitor isn’t honored if the system was already idled at the time the inhibitor was established, although if the system later de-idles and re-idles the inhibitor will take effect.

section

page_iface_zwp_idle_inhibitor_v1_api API

See @ref iface_zwp_idle_inhibitor_v1.

const struct wl_interface zwp_idle_inhibitor_v1_interface

The zwp_idle_inhibitor_v1 interface

An idle inhibitor prevents the output that the associated surface is visible on from being set to a state where it is not visually usable due to lack of user interaction (e.g. blanked, dimmed, locked, set to power save, etc.) Any screensaver processes are also blocked from displaying.

If the surface is destroyed, unmapped, becomes occluded, loses visibility, or otherwise becomes not visually relevant for the user, the idle inhibitor will not be honored by the compositor; if the surface subsequently regains visibility the inhibitor takes effect once again. Likewise, the inhibitor isn’t honored if the system was already idled at the time the inhibitor was established, although if the system later de-idles and re-idles the inhibitor will take effect.

ZWP_IDLE_INHIBIT_MANAGER_V1_DESTROY_SINCE_VERSION
ZWP_IDLE_INHIBIT_MANAGER_V1_CREATE_INHIBITOR_SINCE_VERSION
void zwp_idle_inhibit_manager_v1_set_user_data(struct zwp_idle_inhibit_manager_v1 * zwp_idle_inhibit_manager_v1, void * user_data)
void * zwp_idle_inhibit_manager_v1_get_user_data(struct zwp_idle_inhibit_manager_v1 * zwp_idle_inhibit_manager_v1)
void zwp_idle_inhibit_manager_v1_destroy(struct zwp_idle_inhibit_manager_v1 * zwp_idle_inhibit_manager_v1)

Destroy the inhibit manager.

struct zwp_idle_inhibitor_v1 * zwp_idle_inhibit_manager_v1_create_inhibitor(struct zwp_idle_inhibit_manager_v1 * zwp_idle_inhibit_manager_v1, struct wl_surface * surface)

Create a new inhibitor object associated with the given surface.

ZWP_IDLE_INHIBITOR_V1_DESTROY_SINCE_VERSION
void zwp_idle_inhibitor_v1_set_user_data(struct zwp_idle_inhibitor_v1 * zwp_idle_inhibitor_v1, void * user_data)
void * zwp_idle_inhibitor_v1_get_user_data(struct zwp_idle_inhibitor_v1 * zwp_idle_inhibitor_v1)
void zwp_idle_inhibitor_v1_destroy(struct zwp_idle_inhibitor_v1 * zwp_idle_inhibitor_v1)

Remove the inhibitor effect from the associated wl_surface.

Server Headers

struct wl_surface
Page

page_idle_inhibit_unstable_v1 The idle_inhibit_unstable_v1 protocol

Section

page_ifaces_idle_inhibit_unstable_v1 Interfaces

  • @subpage page_iface_zwp_idle_inhibit_manager_v1 - control behavior when display idles

  • @subpage page_iface_zwp_idle_inhibitor_v1 - context object for inhibiting idle behavior

Section

page_copyright_idle_inhibit_unstable_v1 Copyright

<pre>

Copyright © 2015 Samsung Electronics Co., Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_idle_inhibit_manager_v1 zwp_idle_inhibit_manager_v1

section

page_iface_zwp_idle_inhibit_manager_v1_desc Description

This interface permits inhibiting the idle behavior such as screen blanking, locking, and screensaving. The client binds the idle manager globally, then creates idle-inhibitor objects for each surface.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_idle_inhibit_manager_v1_api API

See @ref iface_zwp_idle_inhibit_manager_v1.

const struct wl_interface zwp_idle_inhibit_manager_v1_interface

The zwp_idle_inhibit_manager_v1 interface

This interface permits inhibiting the idle behavior such as screen blanking, locking, and screensaving. The client binds the idle manager globally, then creates idle-inhibitor objects for each surface.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_idle_inhibitor_v1 zwp_idle_inhibitor_v1

section

page_iface_zwp_idle_inhibitor_v1_desc Description

An idle inhibitor prevents the output that the associated surface is visible on from being set to a state where it is not visually usable due to lack of user interaction (e.g. blanked, dimmed, locked, set to power save, etc.) Any screensaver processes are also blocked from displaying.

If the surface is destroyed, unmapped, becomes occluded, loses visibility, or otherwise becomes not visually relevant for the user, the idle inhibitor will not be honored by the compositor; if the surface subsequently regains visibility the inhibitor takes effect once again. Likewise, the inhibitor isn’t honored if the system was already idled at the time the inhibitor was established, although if the system later de-idles and re-idles the inhibitor will take effect.

section

page_iface_zwp_idle_inhibitor_v1_api API

See @ref iface_zwp_idle_inhibitor_v1.

const struct wl_interface zwp_idle_inhibitor_v1_interface

The zwp_idle_inhibitor_v1 interface

An idle inhibitor prevents the output that the associated surface is visible on from being set to a state where it is not visually usable due to lack of user interaction (e.g. blanked, dimmed, locked, set to power save, etc.) Any screensaver processes are also blocked from displaying.

If the surface is destroyed, unmapped, becomes occluded, loses visibility, or otherwise becomes not visually relevant for the user, the idle inhibitor will not be honored by the compositor; if the surface subsequently regains visibility the inhibitor takes effect once again. Likewise, the inhibitor isn’t honored if the system was already idled at the time the inhibitor was established, although if the system later de-idles and re-idles the inhibitor will take effect.

struct zwp_idle_inhibit_manager_v1_interface
Struct

zwp_idle_inhibit_manager_v1_interface

void (*)(struct wl_client *, struct wl_resource *) destroy

destroy the idle inhibitor object

Destroy the inhibit manager.

void (*)(struct wl_client *, struct wl_resource *, uint32_t, struct wl_resource *) create_inhibitor

create a new inhibitor object

Create a new inhibitor object associated with the given surface.

Parameters
  • surface – the surface that inhibits the idle behavior

ZWP_IDLE_INHIBIT_MANAGER_V1_DESTROY_SINCE_VERSION
ZWP_IDLE_INHIBIT_MANAGER_V1_CREATE_INHIBITOR_SINCE_VERSION
struct zwp_idle_inhibitor_v1_interface
Struct

zwp_idle_inhibitor_v1_interface

void (*)(struct wl_client *, struct wl_resource *) destroy

destroy the idle inhibitor object

Remove the inhibitor effect from the associated wl_surface.

ZWP_IDLE_INHIBITOR_V1_DESTROY_SINCE_VERSION

input-method

Client Headers

struct wl_keyboard
Page

page_input_method_unstable_v1 The input_method_unstable_v1 protocol

Section

page_ifaces_input_method_unstable_v1 Interfaces

  • @subpage page_iface_zwp_input_method_context_v1 - input method context

  • @subpage page_iface_zwp_input_method_v1 - input method

  • @subpage page_iface_zwp_input_panel_v1 - interface for implementing keyboards

  • @subpage page_iface_zwp_input_panel_surface_v1 -

Section

page_copyright_input_method_unstable_v1 Copyright

<pre>

Copyright © 2012, 2013 Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_input_method_context_v1 zwp_input_method_context_v1

section

page_iface_zwp_input_method_context_v1_desc Description

Corresponds to a text input on the input method side. An input method context is created on text input activation on the input method side. It allows receiving information about the text input from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled.

Text is generally UTF-8 encoded, indices and lengths are in bytes.

Serials are used to synchronize the state between the text input and an input method. New serials are sent by the text input in the commit_state request and are used by the input method to indicate the known text input state in events like preedit_string, commit_string, and keysym. The text input can then ignore events from the input method which are based on an outdated state (for example after a reset).

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_input_method_context_v1_api API

See @ref iface_zwp_input_method_context_v1.

const struct wl_interface zwp_input_method_context_v1_interface

The zwp_input_method_context_v1 interface

Corresponds to a text input on the input method side. An input method context is created on text input activation on the input method side. It allows receiving information about the text input from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled.

Text is generally UTF-8 encoded, indices and lengths are in bytes.

Serials are used to synchronize the state between the text input and an input method. New serials are sent by the text input in the commit_state request and are used by the input method to indicate the known text input state in events like preedit_string, commit_string, and keysym. The text input can then ignore events from the input method which are based on an outdated state (for example after a reset).

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_input_method_v1 zwp_input_method_v1

section

page_iface_zwp_input_method_v1_desc Description

An input method object is responsible for composing text in response to input from hardware or virtual keyboards. There is one input method object per seat. On activate there is a new input method context object created which allows the input method to communicate with the text input.

section

page_iface_zwp_input_method_v1_api API

See @ref iface_zwp_input_method_v1.

const struct wl_interface zwp_input_method_v1_interface

The zwp_input_method_v1 interface

An input method object is responsible for composing text in response to input from hardware or virtual keyboards. There is one input method object per seat. On activate there is a new input method context object created which allows the input method to communicate with the text input.

page

page_iface_zwp_input_panel_v1 zwp_input_panel_v1

section

page_iface_zwp_input_panel_v1_desc Description

Only one client can bind this interface at a time.

section

page_iface_zwp_input_panel_v1_api API

See @ref iface_zwp_input_panel_v1.

const struct wl_interface zwp_input_panel_v1_interface

The zwp_input_panel_v1 interface

Only one client can bind this interface at a time.

page

page_iface_zwp_input_panel_surface_v1 zwp_input_panel_surface_v1

section

page_iface_zwp_input_panel_surface_v1_api API

See @ref iface_zwp_input_panel_surface_v1.

const struct wl_interface zwp_input_panel_surface_v1_interface

The zwp_input_panel_surface_v1 interface

struct zwp_input_method_context_v1_listener
Struct

zwp_input_method_context_v1_listener

void (*)(void *, struct zwp_input_method_context_v1 *, const char *, uint32_t, uint32_t) surrounding_text

surrounding text event

The plain surrounding text around the input position. Cursor is the position in bytes within the surrounding text relative to the beginning of the text. Anchor is the position in bytes of the selection anchor within the surrounding text relative to the beginning of the text. If there is no selected text then anchor is the same as cursor.

void (*)(void *, struct zwp_input_method_context_v1 *) reset
void (*)(void *, struct zwp_input_method_context_v1 *, uint32_t, uint32_t) content_type
void (*)(void *, struct zwp_input_method_context_v1 *, uint32_t, uint32_t) invoke_action
void (*)(void *, struct zwp_input_method_context_v1 *, uint32_t) commit_state
Parameters
  • serial – serial of text input state

void (*)(void *, struct zwp_input_method_context_v1 *, const char *) preferred_language
int zwp_input_method_context_v1_add_listener(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, const struct zwp_input_method_context_v1_listener * listener, void * data)
ZWP_INPUT_METHOD_CONTEXT_V1_SURROUNDING_TEXT_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_RESET_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_CONTENT_TYPE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_INVOKE_ACTION_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_COMMIT_STATE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREFERRED_LANGUAGE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_DESTROY_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_COMMIT_STRING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_STRING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_STYLING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_CURSOR_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_DELETE_SURROUNDING_TEXT_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_CURSOR_POSITION_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_MODIFIERS_MAP_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_KEYSYM_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_GRAB_KEYBOARD_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_KEY_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_MODIFIERS_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_LANGUAGE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_TEXT_DIRECTION_SINCE_VERSION
void zwp_input_method_context_v1_set_user_data(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, void * user_data)
void * zwp_input_method_context_v1_get_user_data(struct zwp_input_method_context_v1 * zwp_input_method_context_v1)
void zwp_input_method_context_v1_destroy(struct zwp_input_method_context_v1 * zwp_input_method_context_v1)
void zwp_input_method_context_v1_commit_string(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, const char * text)

Send the commit string text for insertion to the application.

The text to commit could be either just a single character after a key press or the result of some composing (pre-edit). It could be also an empty text when some text should be removed (see delete_surrounding_text) or when the input cursor should be moved (see cursor_position).

Any previously set composing text will be removed.

void zwp_input_method_context_v1_preedit_string(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, const char * text, const char * commit)

Send the pre-edit string text to the application text input.

The commit text can be used to replace the pre-edit text on reset (for example on unfocus).

Previously sent preedit_style and preedit_cursor requests are also processed by the text_input.

void zwp_input_method_context_v1_preedit_styling(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t index, uint32_t length, uint32_t style)

Set the styling information on composing text. The style is applied for length in bytes from index relative to the beginning of the composing text (as byte offset). Multiple styles can be applied to a composing text.

This request should be sent before sending a preedit_string request.

void zwp_input_method_context_v1_preedit_cursor(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, int32_t index)

Set the cursor position inside the composing text (as byte offset) relative to the start of the composing text.

When index is negative no cursor should be displayed.

This request should be sent before sending a preedit_string request.

void zwp_input_method_context_v1_delete_surrounding_text(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, int32_t index, uint32_t length)

Remove the surrounding text.

This request will be handled on the text_input side directly following a commit_string request.

void zwp_input_method_context_v1_cursor_position(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, int32_t index, int32_t anchor)

Set the cursor and anchor to a new position. Index is the new cursor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). Anchor is the new anchor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). When there should be no selected text, anchor should be the same as index.

This request will be handled on the text_input side directly following a commit_string request.

void zwp_input_method_context_v1_modifiers_map(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, struct wl_array * map)
void zwp_input_method_context_v1_keysym(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, uint32_t time, uint32_t sym, uint32_t state, uint32_t modifiers)

Notify when a key event was sent. Key events should not be used for normal text input operations, which should be done with commit_string, delete_surrounding_text, etc. The key event follows the wl_keyboard key event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.

struct wl_keyboard * zwp_input_method_context_v1_grab_keyboard(struct zwp_input_method_context_v1 * zwp_input_method_context_v1)

Allow an input method to receive hardware keyboard input and process key events to generate text events (with pre-edit) over the wire. This allows input methods which compose multiple key events for inputting text like it is done for CJK languages.

void zwp_input_method_context_v1_key(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, uint32_t time, uint32_t key, uint32_t state)

Forward a wl_keyboard::key event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::key event.

For generating custom key events use the keysym request instead.

void zwp_input_method_context_v1_modifiers(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group)

Forward a wl_keyboard::modifiers event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::modifiers event.

void zwp_input_method_context_v1_language(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, const char * language)
void zwp_input_method_context_v1_text_direction(struct zwp_input_method_context_v1 * zwp_input_method_context_v1, uint32_t serial, uint32_t direction)
struct zwp_input_method_v1_listener
Struct

zwp_input_method_v1_listener

void (*)(void *, struct zwp_input_method_v1 *, struct zwp_input_method_context_v1 *) activate

activate event

A text input was activated. Creates an input method context object which allows communication with the text input.

void (*)(void *, struct zwp_input_method_v1 *, struct zwp_input_method_context_v1 *) deactivate

deactivate event

The text input corresponding to the context argument was deactivated. The input method context should be destroyed after deactivation is handled.

int zwp_input_method_v1_add_listener(struct zwp_input_method_v1 * zwp_input_method_v1, const struct zwp_input_method_v1_listener * listener, void * data)
ZWP_INPUT_METHOD_V1_ACTIVATE_SINCE_VERSION
ZWP_INPUT_METHOD_V1_DEACTIVATE_SINCE_VERSION
void zwp_input_method_v1_set_user_data(struct zwp_input_method_v1 * zwp_input_method_v1, void * user_data)
void * zwp_input_method_v1_get_user_data(struct zwp_input_method_v1 * zwp_input_method_v1)
void zwp_input_method_v1_destroy(struct zwp_input_method_v1 * zwp_input_method_v1)
ZWP_INPUT_PANEL_V1_GET_INPUT_PANEL_SURFACE_SINCE_VERSION
void zwp_input_panel_v1_set_user_data(struct zwp_input_panel_v1 * zwp_input_panel_v1, void * user_data)
void * zwp_input_panel_v1_get_user_data(struct zwp_input_panel_v1 * zwp_input_panel_v1)
void zwp_input_panel_v1_destroy(struct zwp_input_panel_v1 * zwp_input_panel_v1)
struct zwp_input_panel_surface_v1 * zwp_input_panel_v1_get_input_panel_surface(struct zwp_input_panel_v1 * zwp_input_panel_v1, struct wl_surface * surface)
ZWP_INPUT_PANEL_SURFACE_V1_SET_TOPLEVEL_SINCE_VERSION
ZWP_INPUT_PANEL_SURFACE_V1_SET_OVERLAY_PANEL_SINCE_VERSION
void zwp_input_panel_surface_v1_set_user_data(struct zwp_input_panel_surface_v1 * zwp_input_panel_surface_v1, void * user_data)
void * zwp_input_panel_surface_v1_get_user_data(struct zwp_input_panel_surface_v1 * zwp_input_panel_surface_v1)
void zwp_input_panel_surface_v1_destroy(struct zwp_input_panel_surface_v1 * zwp_input_panel_surface_v1)
void zwp_input_panel_surface_v1_set_toplevel(struct zwp_input_panel_surface_v1 * zwp_input_panel_surface_v1, struct wl_output * output, uint32_t position)

Set the input_panel_surface type to keyboard.

A keyboard surface is only shown when a text input is active.

void zwp_input_panel_surface_v1_set_overlay_panel(struct zwp_input_panel_surface_v1 * zwp_input_panel_surface_v1)

Set the input_panel_surface to be an overlay panel.

This is shown near the input cursor above the application window when a text input is active.

Server Headers

struct wl_keyboard
Page

page_input_method_unstable_v1 The input_method_unstable_v1 protocol

Section

page_ifaces_input_method_unstable_v1 Interfaces

  • @subpage page_iface_zwp_input_method_context_v1 - input method context

  • @subpage page_iface_zwp_input_method_v1 - input method

  • @subpage page_iface_zwp_input_panel_v1 - interface for implementing keyboards

  • @subpage page_iface_zwp_input_panel_surface_v1 -

Section

page_copyright_input_method_unstable_v1 Copyright

<pre>

Copyright © 2012, 2013 Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </pre>

page

page_iface_zwp_input_method_context_v1 zwp_input_method_context_v1

section

page_iface_zwp_input_method_context_v1_desc Description

Corresponds to a text input on the input method side. An input method context is created on text input activation on the input method side. It allows receiving information about the text input from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled.

Text is generally UTF-8 encoded, indices and lengths are in bytes.

Serials are used to synchronize the state between the text input and an input method. New serials are sent by the text input in the commit_state request and are used by the input method to indicate the known text input state in events like preedit_string, commit_string, and keysym. The text input can then ignore events from the input method which are based on an outdated state (for example after a reset).

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

section

page_iface_zwp_input_method_context_v1_api API

See @ref iface_zwp_input_method_context_v1.

const struct wl_interface zwp_input_method_context_v1_interface

The zwp_input_method_context_v1 interface

Corresponds to a text input on the input method side. An input method context is created on text input activation on the input method side. It allows receiving information about the text input from the application via events. Input method contexts do not keep state after deactivation and should be destroyed after deactivation is handled.

Text is generally UTF-8 encoded, indices and lengths are in bytes.

Serials are used to synchronize the state between the text input and an input method. New serials are sent by the text input in the commit_state request and are used by the input method to indicate the known text input state in events like preedit_string, commit_string, and keysym. The text input can then ignore events from the input method which are based on an outdated state (for example after a reset).

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

page

page_iface_zwp_input_method_v1 zwp_input_method_v1

section

page_iface_zwp_input_method_v1_desc Description

An input method object is responsible for composing text in response to input from hardware or virtual keyboards. There is one input method object per seat. On activate there is a new input method context object created which allows the input method to communicate with the text input.

section

page_iface_zwp_input_method_v1_api API

See @ref iface_zwp_input_method_v1.

const struct wl_interface zwp_input_method_v1_interface

The zwp_input_method_v1 interface

An input method object is responsible for composing text in response to input from hardware or virtual keyboards. There is one input method object per seat. On activate there is a new input method context object created which allows the input method to communicate with the text input.

page

page_iface_zwp_input_panel_v1 zwp_input_panel_v1

section

page_iface_zwp_input_panel_v1_desc Description

Only one client can bind this interface at a time.

section

page_iface_zwp_input_panel_v1_api API

See @ref iface_zwp_input_panel_v1.

const struct wl_interface zwp_input_panel_v1_interface

The zwp_input_panel_v1 interface

Only one client can bind this interface at a time.

page

page_iface_zwp_input_panel_surface_v1 zwp_input_panel_surface_v1

section

page_iface_zwp_input_panel_surface_v1_api API

See @ref iface_zwp_input_panel_surface_v1.

const struct wl_interface zwp_input_panel_surface_v1_interface

The zwp_input_panel_surface_v1 interface

struct zwp_input_method_context_v1_interface
Struct

zwp_input_method_context_v1_interface

void (*)(struct wl_client *, struct wl_resource *) destroy
void (*)(struct wl_client *, struct wl_resource *, uint32_t, const char *) commit_string

commit string

Send the commit string text for insertion to the application.

The text to commit could be either just a single character after a key press or the result of some composing (pre-edit). It could be also an empty text when some text should be removed (see delete_surrounding_text) or when the input cursor should be moved (see cursor_position).

Any previously set composing text will be removed.

Parameters
  • serial – serial of the latest known text input state

void (*)(struct wl_client *, struct wl_resource *, uint32_t, const char *, const char *) preedit_string

pre-edit string

Send the pre-edit string text to the application text input.

The commit text can be used to replace the pre-edit text on reset (for example on unfocus).

Previously sent preedit_style and preedit_cursor requests are also processed by the text_input.

Parameters
  • serial – serial of the latest known text input state

void (*)(struct wl_client *, struct wl_resource *, uint32_t, uint32_t, uint32_t) preedit_styling

pre-edit styling

Set the styling information on composing text. The style is applied for length in bytes from index relative to the beginning of the composing text (as byte offset). Multiple styles can be applied to a composing text.

This request should be sent before sending a preedit_string request.

void (*)(struct wl_client *, struct wl_resource *, int32_t) preedit_cursor

pre-edit cursor

Set the cursor position inside the composing text (as byte offset) relative to the start of the composing text.

When index is negative no cursor should be displayed.

This request should be sent before sending a preedit_string request.

void (*)(struct wl_client *, struct wl_resource *, int32_t, uint32_t) delete_surrounding_text

delete text

Remove the surrounding text.

This request will be handled on the text_input side directly following a commit_string request.

void (*)(struct wl_client *, struct wl_resource *, int32_t, int32_t) cursor_position

set cursor to a new position

Set the cursor and anchor to a new position. Index is the new cursor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). Anchor is the new anchor position in bytes (when >= 0 this is relative to the end of the inserted text, otherwise it is relative to the beginning of the inserted text). When there should be no selected text, anchor should be the same as index.

This request will be handled on the text_input side directly following a commit_string request.

void (*)(struct wl_client *, struct wl_resource *, struct wl_array *) modifiers_map
void (*)(struct wl_client *, struct wl_resource *, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) keysym

keysym

Notify when a key event was sent. Key events should not be used for normal text input operations, which should be done with commit_string, delete_surrounding_text, etc. The key event follows the wl_keyboard key event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.

Parameters
  • serial – serial of the latest known text input state

void (*)(struct wl_client *, struct wl_resource *, uint32_t) grab_keyboard

grab hardware keyboard

Allow an input method to receive hardware keyboard input and process key events to generate text events (with pre-edit) over the wire. This allows input methods which compose multiple key events for inputting text like it is done for CJK languages.

void (*)(struct wl_client *, struct wl_resource *, uint32_t, uint32_t, uint32_t, uint32_t) key

forward key event

Forward a wl_keyboard::key event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::key event.

For generating custom key events use the keysym request instead.

Parameters
  • serial – serial from wl_keyboard::key

  • time – time from wl_keyboard::key

  • key – key from wl_keyboard::key

  • state – state from wl_keyboard::key

void (*)(struct wl_client *, struct wl_resource *, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) modifiers

forward modifiers event

Forward a wl_keyboard::modifiers event to the client that was not processed by the input method itself. Should be used when filtering key events with grab_keyboard. The arguments should be the ones from the wl_keyboard::modifiers event.

Parameters
  • serial – serial from wl_keyboard::modifiers

  • mods_depressed – mods_depressed from wl_keyboard::modifiers

  • mods_latched – mods_latched from wl_keyboard::modifiers

  • mods_locked – mods_locked from wl_keyboard::modifiers

  • group – group from wl_keyboard::modifiers

void (*)(struct wl_client *, struct wl_resource *, uint32_t, const char *) language
Parameters
  • serial – serial of the latest known text input state

void (*)(struct wl_client *, struct wl_resource *, uint32_t, uint32_t) text_direction
Parameters
  • serial – serial of the latest known text input state

ZWP_INPUT_METHOD_CONTEXT_V1_SURROUNDING_TEXT_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_RESET_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_CONTENT_TYPE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_INVOKE_ACTION_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_COMMIT_STATE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREFERRED_LANGUAGE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_DESTROY_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_COMMIT_STRING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_STRING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_STYLING_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_PREEDIT_CURSOR_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_DELETE_SURROUNDING_TEXT_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_CURSOR_POSITION_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_MODIFIERS_MAP_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_KEYSYM_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_GRAB_KEYBOARD_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_KEY_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_MODIFIERS_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_LANGUAGE_SINCE_VERSION
ZWP_INPUT_METHOD_CONTEXT_V1_TEXT_DIRECTION_SINCE_VERSION
void zwp_input_method_context_v1_send_surrounding_text(struct wl_resource * resource_, const char * text, uint32_t cursor, uint32_t anchor)

Sends an surrounding_text event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_input_method_context_v1_send_reset(struct wl_resource * resource_)

Sends an reset event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_input_method_context_v1_send_content_type(struct wl_resource * resource_, uint32_t hint, uint32_t purpose)

Sends an content_type event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_input_method_context_v1_send_invoke_action(struct wl_resource * resource_, uint32_t button, uint32_t index)

Sends an invoke_action event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_input_method_context_v1_send_commit_state(struct wl_resource * resource_, uint32_t serial)

Sends an commit_state event to the client owning the resource.

Parameters
  • resource – The client’s resource

  • serial – serial of text input state

void zwp_input_method_context_v1_send_preferred_language(struct wl_resource * resource_, const char * language)

Sends an preferred_language event to the client owning the resource.

Parameters
  • resource – The client’s resource

ZWP_INPUT_METHOD_V1_ACTIVATE_SINCE_VERSION
ZWP_INPUT_METHOD_V1_DEACTIVATE_SINCE_VERSION
void zwp_input_method_v1_send_activate(struct wl_resource * resource_, struct wl_resource * id)

Sends an activate event to the client owning the resource.

Parameters
  • resource – The client’s resource

void zwp_input_method_v1_send_deactivate(struct wl_resource * resource_, struct wl_resource * context)

Sends an deactivate event to the client owning the resource.

Parameters
  • resource – The client’s resource

struct zwp_input_panel_v1_interface
Struct

zwp_input_panel_v1_interface

void (*)(struct wl_client *, struct wl_resource *, uint32_t, struct wl_resource *) get_input_panel_surface
ZWP_INPUT_PANEL_V1_GET_INPUT_PANEL_SURFACE_SINCE_VERSION
struct zwp_input_panel_surface_v1_interface
Struct

zwp_input_panel_surface_v1_interface

void (*)(struct wl_client *, struct wl_resource *, struct wl_resource *, uint32_t) set_toplevel

set the surface type as a keyboard

Set the input_panel_surface type to keyboard.

A keyboard surface is only shown when a text input is active.

void (*)(struct wl_client *, struct wl_resource *) set_overlay_panel

set the surface type as an overlay panel

Set the input_panel_surface to be an overlay panel.

This is shown near the input cursor above the application window when a text input is active.

ZWP_INPUT_PANEL_SURFACE_V1_SET_TOPLEVEL_SINCE_VERSION
ZWP_INPUT_PANEL_SURFACE_V1_SET_OVERLAY_PANEL_SINCE_VERSION

input-timestamps

keyboard-shortcuts-inhibit

linux-dmabuf

linux-explicit-synchronization

pointer-constraints

pointer-gestures

primary-selection

tablet

text-input

xdg-decoration

xdg-foreign

xdg-output

xdg-shell

xwayland-keyboard-grab