Merge Wayland client from qtwayland repository into qtbase
The qtwayland repository has been filtered for commits relating to the Wayland client, via the following git-filter-repo command: git filter-repo --paths-from-file wayland-move.txt --force --refs HEAD And then merged into the qtbase repository via git merge --allow-unrelated-histories The following git-filter-repo instructions have been used: src/CMakeLists.txt src/CMakeLists.txt==>src/platformsupport/wayland/CMakeLists.txt src/configure.cmake src/configure.cmake==>src/platformsupport/wayland/configure.cmake src/client/Qt6WaylandClientMacros.cmake src/client/Qt6WaylandClientMacros.cmake==>src/tools/qtwaylandscanner/Qt6WaylandClientMacros.cmake src/compositor/Qt6WaylandCompositorMacros.cmake src/compositor/Qt6WaylandCompositorMacros.cmake==>src/tools/qtwaylandscanner/Qt6WaylandCompositorMacros.cmake src/3rdparty/ src/3rdparty/patches/==>src/3rdparty/wayland/patches/ src/3rdparty/protocol/ivi/REUSE.toml==> src/3rdparty/protocol/ivi/ivi-application.xml==> src/3rdparty/protocol/ivi/ivi-controller.xml==> src/3rdparty/protocol/ivi/qt_attribution.json==> src/3rdparty/protocol/ src/3rdparty/protocol/==>src/3rdparty/wayland/protocols/ src/extensions/qt-shell-unstable-v1.xml==> src/extensions/ src/extensions/==>src/3rdparty/wayland/extensions/ src/client/ src/client/==>src/plugins/platforms/wayland/ src/global/ src/global/==>src/plugins/platforms/wayland/globalprivate/ src/shared/ src/shared/==>src/plugins/platforms/wayland/shared/ src/plugins/decorations/adwaita/==> src/plugins/decorations/ src/plugins/decorations/==>src/plugins/platforms/wayland/plugins/decorations/ src/plugins/hardwareintegration/client/ src/plugins/hardwareintegration/client/==>src/plugins/platforms/wayland/plugins/hardwareintegration/ src/plugins/platform/ src/plugins/platform/==>src/plugins/platforms/wayland/plugins/platform/ src/plugins/shellintegration/qt-shell/==> src/plugins/shellintegration/ivi-shell/==> src/plugins/shellintegration/ src/plugins/shellintegration/==>src/plugins/platforms/wayland/plugins/shellintegration/ src/plugins/CMakeLists.txt src/plugins/CMakeLists.txt==>src/plugins/platforms/wayland/plugins/CMakeLists.txt src/qtwaylandscanner/ src/qtwaylandscanner/==>src/tools/qtwaylandscanner/ tests/auto/client/iviapplication/CMakeLists.txt==> tests/auto/client/iviapplication/tst_iviapplication.cpp==> tests/auto/client/shared/iviapplication.h==> tests/auto/client/shared/iviapplication.cpp==> tests/auto/client/ tests/auto/client/==>tests/auto/wayland/ tests/auto/cmake/test_waylandclient/ tests/auto/cmake/test_waylandclient/==>tests/auto/cmake/test_waylandclient/ Done-with: Alexandru Croitor <alexandru.croitor@qt.io> Done-with: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Task-number: QTBUG-133223 Change-Id: I46c325724141fdbfcc117d12fb5f92852613e72a
This commit is contained in:
commit
2d79012542
468
LICENSES/LGPL-2.1-or-later.txt
Normal file
468
LICENSES/LGPL-2.1-or-later.txt
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts as the
|
||||||
|
successor of the GNU Library Public License, version 2, hence the version
|
||||||
|
number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your freedom to share
|
||||||
|
and change it. By contrast, the GNU General Public Licenses are intended to
|
||||||
|
guarantee your freedom to share and change free software--to make sure the
|
||||||
|
software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some specially
|
||||||
|
designated software packages--typically libraries--of the Free Software Foundation
|
||||||
|
and other authors who decide to use it. You can use it too, but we suggest
|
||||||
|
you first think carefully about whether this license or the ordinary General
|
||||||
|
Public License is the better strategy to use in any particular case, based
|
||||||
|
on the explanations below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use, not price.
|
||||||
|
Our General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for this service if you
|
||||||
|
wish); that you receive source code or can get it if you want it; that you
|
||||||
|
can change the software and use pieces of it in new free programs; and that
|
||||||
|
you are informed that you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid distributors
|
||||||
|
to deny you these rights or to ask you to surrender these rights. These restrictions
|
||||||
|
translate to certain responsibilities for you if you distribute copies of
|
||||||
|
the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis or for
|
||||||
|
a fee, you must give the recipients all the rights that we gave you. You must
|
||||||
|
make sure that they, too, receive or can get the source code. If you link
|
||||||
|
other code with the library, you must provide complete object files to the
|
||||||
|
recipients, so that they can relink them with the library after making changes
|
||||||
|
to the library and recompiling it. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the library,
|
||||||
|
and (2) we offer you this license, which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that there is no
|
||||||
|
warranty for the free library. Also, if the library is modified by someone
|
||||||
|
else and passed on, the recipients should know that what they have is not
|
||||||
|
the original version, so that the original author's reputation will not be
|
||||||
|
affected by problems that might be introduced by others.
|
||||||
|
|
||||||
|
Finally, software patents pose a constant threat to the existence of any free
|
||||||
|
program. We wish to make sure that a company cannot effectively restrict the
|
||||||
|
users of a free program by obtaining a restrictive license from a patent holder.
|
||||||
|
Therefore, we insist that any patent license obtained for a version of the
|
||||||
|
library must be consistent with the full freedom of use specified in this
|
||||||
|
license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the ordinary GNU
|
||||||
|
General Public License. This license, the GNU Lesser General Public License,
|
||||||
|
applies to certain designated libraries, and is quite different from the ordinary
|
||||||
|
General Public License. We use this license for certain libraries in order
|
||||||
|
to permit linking those libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using a shared
|
||||||
|
library, the combination of the two is legally speaking a combined work, a
|
||||||
|
derivative of the original library. The ordinary General Public License therefore
|
||||||
|
permits such linking only if the entire combination fits its criteria of freedom.
|
||||||
|
The Lesser General Public License permits more lax criteria for linking other
|
||||||
|
code with the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it does Less
|
||||||
|
to protect the user's freedom than the ordinary General Public License. It
|
||||||
|
also provides other free software developers Less of an advantage over competing
|
||||||
|
non-free programs. These disadvantages are the reason we use the ordinary
|
||||||
|
General Public License for many libraries. However, the Lesser license provides
|
||||||
|
advantages in certain special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to encourage the
|
||||||
|
widest possible use of a certain library, so that it becomes a de-facto standard.
|
||||||
|
To achieve this, non-free programs must be allowed to use the library. A more
|
||||||
|
frequent case is that a free library does the same job as widely used non-free
|
||||||
|
libraries. In this case, there is little to gain by limiting the free library
|
||||||
|
to free software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free programs
|
||||||
|
enables a greater number of people to use a large body of free software. For
|
||||||
|
example, permission to use the GNU C Library in non-free programs enables
|
||||||
|
many more people to use the whole GNU operating system, as well as its variant,
|
||||||
|
the GNU/Linux operating system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the users'
|
||||||
|
freedom, it does ensure that the user of a program that is linked with the
|
||||||
|
Library has the freedom and the wherewithal to run that program using a modified
|
||||||
|
version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow. Pay close attention to the difference between a "work based on the
|
||||||
|
library" and a "work that uses the library". The former contains code derived
|
||||||
|
from the library, whereas the latter must be combined with the library in
|
||||||
|
order to run.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other program
|
||||||
|
which contains a notice placed by the copyright holder or other authorized
|
||||||
|
party saying it may be distributed under the terms of this Lesser General
|
||||||
|
Public License (also called "this License"). Each licensee is addressed as
|
||||||
|
"you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data prepared
|
||||||
|
so as to be conveniently linked with application programs (which use some
|
||||||
|
of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work which has
|
||||||
|
been distributed under these terms. A "work based on the Library" means either
|
||||||
|
the Library or any derivative work under copyright law: that is to say, a
|
||||||
|
work containing the Library or a portion of it, either verbatim or with modifications
|
||||||
|
and/or translated straightforwardly into another language. (Hereinafter, translation
|
||||||
|
is included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for making modifications
|
||||||
|
to it. For a library, complete source code means all the source code for all
|
||||||
|
modules it contains, plus any associated interface definition files, plus
|
||||||
|
the scripts used to control compilation and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not covered
|
||||||
|
by this License; they are outside its scope. The act of running a program
|
||||||
|
using the Library is not restricted, and output from such a program is covered
|
||||||
|
only if its contents constitute a work based on the Library (independent of
|
||||||
|
the use of the Library in a tool for writing it). Whether that is true depends
|
||||||
|
on what the Library does and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's complete source
|
||||||
|
code as you receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice and disclaimer
|
||||||
|
of warranty; keep intact all the notices that refer to this License and to
|
||||||
|
the absence of any warranty; and distribute a copy of this License along with
|
||||||
|
the Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and you
|
||||||
|
may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion of it,
|
||||||
|
thus forming a work based on the Library, and copy and distribute such modifications
|
||||||
|
or work under the terms of Section 1 above, provided that you also meet all
|
||||||
|
of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices stating that
|
||||||
|
you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no charge to all
|
||||||
|
third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a table of
|
||||||
|
data to be supplied by an application program that uses the facility, other
|
||||||
|
than as an argument passed when the facility is invoked, then you must make
|
||||||
|
a good faith effort to ensure that, in the event an application does not supply
|
||||||
|
such function or table, the facility still operates, and performs whatever
|
||||||
|
part of its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has a purpose
|
||||||
|
that is entirely well-defined independent of the application. Therefore, Subsection
|
||||||
|
2d requires that any application-supplied function or table used by this function
|
||||||
|
must be optional: if the application does not supply it, the square root function
|
||||||
|
must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If identifiable
|
||||||
|
sections of that work are not derived from the Library, and can be reasonably
|
||||||
|
considered independent and separate works in themselves, then this License,
|
||||||
|
and its terms, do not apply to those sections when you distribute them as
|
||||||
|
separate works. But when you distribute the same sections as part of a whole
|
||||||
|
which is a work based on the Library, the distribution of the whole must be
|
||||||
|
on the terms of this License, whose permissions for other licensees extend
|
||||||
|
to the entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest your
|
||||||
|
rights to work written entirely by you; rather, the intent is to exercise
|
||||||
|
the right to control the distribution of derivative or collective works based
|
||||||
|
on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library with
|
||||||
|
the Library (or with a work based on the Library) on a volume of a storage
|
||||||
|
or distribution medium does not bring the other work under the scope of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public License
|
||||||
|
instead of this License to a given copy of the Library. To do this, you must
|
||||||
|
alter all the notices that refer to this License, so that they refer to the
|
||||||
|
ordinary GNU General Public License, version 2, instead of to this License.
|
||||||
|
(If a newer version than version 2 of the ordinary GNU General Public License
|
||||||
|
has appeared, then you can specify that version instead if you wish.) Do not
|
||||||
|
make any other change in these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for that copy,
|
||||||
|
so the ordinary GNU General Public License applies to all subsequent copies
|
||||||
|
and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of the Library
|
||||||
|
into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or derivative of
|
||||||
|
it, under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you accompany it with the complete corresponding
|
||||||
|
machine-readable source code, which must be distributed under the terms of
|
||||||
|
Sections 1 and 2 above on a medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy from a designated
|
||||||
|
place, then offering equivalent access to copy the source code from the same
|
||||||
|
place satisfies the requirement to distribute the source code, even though
|
||||||
|
third parties are not compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the Library, but
|
||||||
|
is designed to work with the Library by being compiled or linked with it,
|
||||||
|
is called a "work that uses the Library". Such a work, in isolation, is not
|
||||||
|
a derivative work of the Library, and therefore falls outside the scope of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library creates an
|
||||||
|
executable that is a derivative of the Library (because it contains portions
|
||||||
|
of the Library), rather than a "work that uses the library". The executable
|
||||||
|
is therefore covered by this License. Section 6 states terms for distribution
|
||||||
|
of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file that
|
||||||
|
is part of the Library, the object code for the work may be a derivative work
|
||||||
|
of the Library even though the source code is not. Whether this is true is
|
||||||
|
especially significant if the work can be linked without the Library, or if
|
||||||
|
the work is itself a library. The threshold for this to be true is not precisely
|
||||||
|
defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data structure layouts
|
||||||
|
and accessors, and small macros and small inline functions (ten lines or less
|
||||||
|
in length), then the use of the object file is unrestricted, regardless of
|
||||||
|
whether it is legally a derivative work. (Executables containing this object
|
||||||
|
code plus portions of the Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may distribute
|
||||||
|
the object code for the work under the terms of Section 6. Any executables
|
||||||
|
containing that work also fall under Section 6, whether or not they are linked
|
||||||
|
directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also combine or link a "work
|
||||||
|
that uses the Library" with the Library to produce a work containing portions
|
||||||
|
of the Library, and distribute that work under terms of your choice, provided
|
||||||
|
that the terms permit modification of the work for the customer's own use
|
||||||
|
and reverse engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the Library
|
||||||
|
is used in it and that the Library and its use are covered by this License.
|
||||||
|
You must supply a copy of this License. If the work during execution displays
|
||||||
|
copyright notices, you must include the copyright notice for the Library among
|
||||||
|
them, as well as a reference directing the user to the copy of this License.
|
||||||
|
Also, you must do one of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding machine-readable source
|
||||||
|
code for the Library including whatever changes were used in the work (which
|
||||||
|
must be distributed under Sections 1 and 2 above); and, if the work is an
|
||||||
|
executable linked with the Library, with the complete machine-readable "work
|
||||||
|
that uses the Library", as object code and/or source code, so that the user
|
||||||
|
can modify the Library and then relink to produce a modified executable containing
|
||||||
|
the modified Library. (It is understood that the user who changes the contents
|
||||||
|
of definitions files in the Library will not necessarily be able to recompile
|
||||||
|
the application to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the Library. A
|
||||||
|
suitable mechanism is one that (1) uses at run time a copy of the library
|
||||||
|
already present on the user's computer system, rather than copying library
|
||||||
|
functions into the executable, and (2) will operate properly with a modified
|
||||||
|
version of the library, if the user installs one, as long as the modified
|
||||||
|
version is interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at least three years,
|
||||||
|
to give the same user the materials specified in Subsection 6a, above, for
|
||||||
|
a charge no more than the cost of performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy from a designated
|
||||||
|
place, offer equivalent access to copy the above specified materials from
|
||||||
|
the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these materials or
|
||||||
|
that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the Library" must
|
||||||
|
include any data and utility programs needed for reproducing the executable
|
||||||
|
from it. However, as a special exception, the materials to be distributed
|
||||||
|
need not include anything that is normally distributed (in either source or
|
||||||
|
binary form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component itself
|
||||||
|
accompanies the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license restrictions of
|
||||||
|
other proprietary libraries that do not normally accompany the operating system.
|
||||||
|
Such a contradiction means you cannot use both them and the Library together
|
||||||
|
in an executable that you distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the Library side-by-side
|
||||||
|
in a single library together with other library facilities not covered by
|
||||||
|
this License, and distribute such a combined library, provided that the separate
|
||||||
|
distribution of the work based on the Library and of the other library facilities
|
||||||
|
is otherwise permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based on the
|
||||||
|
Library, uncombined with any other library facilities. This must be distributed
|
||||||
|
under the terms of the Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact that part of
|
||||||
|
it is a work based on the Library, and explaining where to find the accompanying
|
||||||
|
uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute the Library
|
||||||
|
except as expressly provided under this License. Any attempt otherwise to
|
||||||
|
copy, modify, sublicense, link with, or distribute the Library is void, and
|
||||||
|
will automatically terminate your rights under this License. However, parties
|
||||||
|
who have received copies, or rights, from you under this License will not
|
||||||
|
have their licenses terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not signed
|
||||||
|
it. However, nothing else grants you permission to modify or distribute the
|
||||||
|
Library or its derivative works. These actions are prohibited by law if you
|
||||||
|
do not accept this License. Therefore, by modifying or distributing the Library
|
||||||
|
(or any work based on the Library), you indicate your acceptance of this License
|
||||||
|
to do so, and all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the Library),
|
||||||
|
the recipient automatically receives a license from the original licensor
|
||||||
|
to copy, distribute, link with or modify the Library subject to these terms
|
||||||
|
and conditions. You may not impose any further restrictions on the recipients'
|
||||||
|
exercise of the rights granted herein. You are not responsible for enforcing
|
||||||
|
compliance by third parties with this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent infringement
|
||||||
|
or for any other reason (not limited to patent issues), conditions are imposed
|
||||||
|
on you (whether by court order, agreement or otherwise) that contradict the
|
||||||
|
conditions of this License, they do not excuse you from the conditions of
|
||||||
|
this License. If you cannot distribute so as to satisfy simultaneously your
|
||||||
|
obligations under this License and any other pertinent obligations, then as
|
||||||
|
a consequence you may not distribute the Library at all. For example, if a
|
||||||
|
patent license would not permit royalty-free redistribution of the Library
|
||||||
|
by all those who receive copies directly or indirectly through you, then the
|
||||||
|
only way you could satisfy both it and this License would be to refrain entirely
|
||||||
|
from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any patents
|
||||||
|
or other property right claims or to contest validity of any such claims;
|
||||||
|
this section has the sole purpose of protecting the integrity of the free
|
||||||
|
software distribution system which is implemented by public license practices.
|
||||||
|
Many people have made generous contributions to the wide range of software
|
||||||
|
distributed through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing to
|
||||||
|
distribute software through any other system and a licensee cannot impose
|
||||||
|
that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to be a
|
||||||
|
consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in certain
|
||||||
|
countries either by patents or by copyrighted interfaces, the original copyright
|
||||||
|
holder who places the Library under this License may add an explicit geographical
|
||||||
|
distribution limitation excluding those countries, so that distribution is
|
||||||
|
permitted only in or among countries not thus excluded. In such case, this
|
||||||
|
License incorporates the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the Lesser General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to address
|
||||||
|
new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library specifies
|
||||||
|
a version number of this License which applies to it and "any later version",
|
||||||
|
you have the option of following the terms and conditions either of that version
|
||||||
|
or of any later version published by the Free Software Foundation. If the
|
||||||
|
Library does not specify a license version number, you may choose any version
|
||||||
|
ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free programs
|
||||||
|
whose distribution conditions are incompatible with these, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free Software
|
||||||
|
Foundation, write to the Free Software Foundation; we sometimes make exceptions
|
||||||
|
for this. Our decision will be guided by the two goals of preserving the free
|
||||||
|
status of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||||
|
THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||||
|
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY
|
||||||
|
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
||||||
|
OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||||
|
THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||||
|
OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||||
|
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||||
|
OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH
|
||||||
|
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest possible
|
||||||
|
use to the public, we recommend making it free software that everyone can
|
||||||
|
redistribute and change. You can do so by permitting redistribution under
|
||||||
|
these terms (or, alternatively, under the terms of the ordinary General Public
|
||||||
|
License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively convey
|
||||||
|
the exclusion of warranty; and each file should have at least the "copyright"
|
||||||
|
line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and an idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Lesser General Public License as published by the Free
|
||||||
|
Software Foundation; either version 2.1 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||||
|
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the library, if necessary. Here
|
||||||
|
is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in
|
||||||
|
|
||||||
|
the library `Frob' (a library for tweaking knobs) written
|
||||||
|
|
||||||
|
by James Random Hacker.
|
||||||
|
|
||||||
|
< signature of Ty Coon > , 1 April 1990
|
||||||
|
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
@ -146,6 +146,62 @@ macro(qt_internal_qtbase_install_mkspecs)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
function(qt_internal_qtbase_install_wayland_files)
|
||||||
|
qt_path_join(wlprotocols_build_dir
|
||||||
|
${QT_BUILD_DIR}
|
||||||
|
${INSTALL_SHAREDIR}/qt6/wayland/protocols)
|
||||||
|
qt_path_join(wlprotocols_install_dir
|
||||||
|
${QT_INSTALL_DIR}
|
||||||
|
${INSTALL_SHAREDIR}/qt6/wayland/protocols)
|
||||||
|
|
||||||
|
file(GLOB wlprotocols_subdirs
|
||||||
|
LIST_DIRECTORIES TRUE
|
||||||
|
"${PROJECT_SOURCE_DIR}/src/3rdparty/wayland/protocols/*")
|
||||||
|
foreach(entry IN LISTS wlprotocols_subdirs)
|
||||||
|
if (IS_DIRECTORY "${entry}")
|
||||||
|
qt_copy_or_install(DIRECTORY "${entry}"
|
||||||
|
DESTINATION "${wlprotocols_install_dir}"
|
||||||
|
USE_SOURCE_PERMISSIONS)
|
||||||
|
if(QT_WILL_INSTALL)
|
||||||
|
file(COPY "${entry}" DESTINATION "${wlprotocols_build_dir}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
qt_copy_or_install(FILES "${entry}"
|
||||||
|
DESTINATION "${wlprotocols_install_dir}")
|
||||||
|
if(QT_WILL_INSTALL)
|
||||||
|
file(COPY "${entry}" DESTINATION "${wlprotocols_build_dir}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
qt_path_join(wlextensions_build_dir
|
||||||
|
${QT_BUILD_DIR}
|
||||||
|
${INSTALL_SHAREDIR}/qt6/wayland/extensions)
|
||||||
|
qt_path_join(wlextensions_install_dir
|
||||||
|
${QT_INSTALL_DIR}
|
||||||
|
${INSTALL_SHAREDIR}/qt6/wayland/extensions)
|
||||||
|
|
||||||
|
file(GLOB wlextensions_subdirs
|
||||||
|
LIST_DIRECTORIES TRUE
|
||||||
|
"${PROJECT_SOURCE_DIR}/src/3rdparty/wayland/extensions/*")
|
||||||
|
foreach(entry IN LISTS wlextensions_subdirs)
|
||||||
|
if (IS_DIRECTORY "${entry}")
|
||||||
|
qt_copy_or_install(DIRECTORY "${entry}"
|
||||||
|
DESTINATION "${wlextensions_install_dir}"
|
||||||
|
USE_SOURCE_PERMISSIONS)
|
||||||
|
if(QT_WILL_INSTALL)
|
||||||
|
file(COPY "${entry}" DESTINATION "${wlextensions_build_dir}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
qt_copy_or_install(FILES "${entry}"
|
||||||
|
DESTINATION "${wlextensions_install_dir}")
|
||||||
|
if(QT_WILL_INSTALL)
|
||||||
|
file(COPY "${entry}" DESTINATION "${wlextensions_build_dir}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
macro(qt_internal_qtbase_build_repo)
|
macro(qt_internal_qtbase_build_repo)
|
||||||
qt_internal_qtbase_pre_project_setup()
|
qt_internal_qtbase_pre_project_setup()
|
||||||
|
|
||||||
@ -219,6 +275,8 @@ macro(qt_internal_qtbase_build_repo)
|
|||||||
qt_internal_qtbase_install_mkspecs()
|
qt_internal_qtbase_install_mkspecs()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
qt_internal_qtbase_install_wayland_files()
|
||||||
|
|
||||||
qt_build_repo_post_process()
|
qt_build_repo_post_process()
|
||||||
|
|
||||||
qt_build_repo_impl_tests()
|
qt_build_repo_impl_tests()
|
||||||
|
24
src/3rdparty/wayland/extensions/README.md
vendored
Normal file
24
src/3rdparty/wayland/extensions/README.md
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Internal Qt protocol extensions
|
||||||
|
|
||||||
|
The protocol extensions in this folder are considered implementation details of
|
||||||
|
Qt. I.e. they may removed, renamed or changed without warning.
|
||||||
|
|
||||||
|
However, starting with Qt 5.4, we promise not to break backwards compatibility
|
||||||
|
without renaming (or removing) the protocol. I.e., if your client sees a global
|
||||||
|
from one of these extensions, it can safely bind to it: the existing events
|
||||||
|
and requests will always take the same number of arguments, regardless of
|
||||||
|
compositor version.
|
||||||
|
|
||||||
|
This is important also within a Qt-only scope if there are multiple versions of
|
||||||
|
Qt on the system. Consider for instance an application statically linked to Qt
|
||||||
|
(such as Qt Creator) running against a Qt compositor installed by the distro).
|
||||||
|
In such cases we don't want the compositor and client to disagree on the
|
||||||
|
protocol definition.
|
||||||
|
|
||||||
|
## Protocol versioning.
|
||||||
|
|
||||||
|
Protocol extensions in this folder should be versioned (e.g. `zqt_key_v1`).
|
||||||
|
If it is necessary to break protocol compatibility, they will be renamed by
|
||||||
|
incrementing the version number. For legacy reasons, there are also unversioned
|
||||||
|
protocols in this folder. Those protocols should be renamed to be versioned
|
||||||
|
if compatibility is broken.
|
8
src/3rdparty/wayland/extensions/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/extensions/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "qt-text-input-method-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
comment = "License is in full text in file. Should it be changed?"
|
||||||
|
SPDX-FileCopyrightText = "Copyright © 2020 The Qt Company Ltd."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
21
src/3rdparty/wayland/extensions/brcm.xml
vendored
Normal file
21
src/3rdparty/wayland/extensions/brcm.xml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="brcm">
|
||||||
|
<!-- eglCreateGlobalImageBRCM support. This object is created by
|
||||||
|
the server and published using the display's global event. -->
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2015 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
<interface name="qt_brcm" version="1">
|
||||||
|
|
||||||
|
<!-- Create a wayland buffer wrapping a global image. -->
|
||||||
|
<request name="create_buffer">
|
||||||
|
<arg name="id" type="new_id" interface="wl_buffer"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
<arg name="data" type="array"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
||||||
|
|
23
src/3rdparty/wayland/extensions/drm-egl-server-buffer.xml
vendored
Normal file
23
src/3rdparty/wayland/extensions/drm-egl-server-buffer.xml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="drm_egl_server_buffer">
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2015 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
<interface name="qt_drm_egl_server_buffer" version="1">
|
||||||
|
<!-- We depend on wayland-egl to authenticate for us -->
|
||||||
|
<enum name="format">
|
||||||
|
<entry name="RGBA32" value="0"/>
|
||||||
|
<entry name="A8" value="1"/>
|
||||||
|
</enum>
|
||||||
|
<event name="server_buffer_created">
|
||||||
|
<arg name="id" type="new_id" interface="qt_server_buffer"/>
|
||||||
|
<arg name="name" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
<arg name="stride" type="int"/>
|
||||||
|
<arg name="format" type="int"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
21
src/3rdparty/wayland/extensions/hardware-integration.xml
vendored
Normal file
21
src/3rdparty/wayland/extensions/hardware-integration.xml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<protocol name="hardware_integration">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2015 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="qt_hardware_integration" version="1">
|
||||||
|
<description summary="compostors communicates supported buffer sharing extensions">
|
||||||
|
Using this protocol the compositor can signal to clients which buffer sharing extensions
|
||||||
|
the client should use
|
||||||
|
</description>
|
||||||
|
<event name="client_backend">
|
||||||
|
<arg name="name" type="string"/>
|
||||||
|
</event>
|
||||||
|
<event name="server_backend">
|
||||||
|
<arg name="name" type="string"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
32
src/3rdparty/wayland/extensions/libhybris-egl-server-buffer.xml
vendored
Normal file
32
src/3rdparty/wayland/extensions/libhybris-egl-server-buffer.xml
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="libhybris_egl_server_buffer">
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2014 Jolla Ltd
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="qt_libhybris_buffer" version="1">
|
||||||
|
<event name="add_fd">
|
||||||
|
<arg name="fd" type="fd"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="qt_libhybris_egl_server_buffer" version="1">
|
||||||
|
<!-- We depend on wayland-egl to authenticate for us -->
|
||||||
|
<enum name="format">
|
||||||
|
<entry name="RGBA32" value="0"/>
|
||||||
|
</enum>
|
||||||
|
<event name="server_buffer_created">
|
||||||
|
<arg name="id" type="new_id" interface="qt_libhybris_buffer"/>
|
||||||
|
<arg name="qid" type="new_id" interface="qt_server_buffer"/>
|
||||||
|
<arg name="num_fds" type="int" />
|
||||||
|
<arg name="ints" type="array" summary="an array of int32_t" />
|
||||||
|
<arg name="name" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
<arg name="stride" type="int"/>
|
||||||
|
<arg name="format" type="int"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
27
src/3rdparty/wayland/extensions/qt-dmabuf-server-buffer.xml
vendored
Normal file
27
src/3rdparty/wayland/extensions/qt-dmabuf-server-buffer.xml
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="qt_dmabuf_server_buffer">
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2018 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
<interface name="qt_dmabuf_server_buffer" version="1">
|
||||||
|
<description summary="internal protocol for buffer sharing">
|
||||||
|
This protocol is used internally by Qt for implementing the
|
||||||
|
qt_server_buffer extension on hardware that supports Linux dma-buf.
|
||||||
|
|
||||||
|
This protocol is not part of the Qt API. It exists purely as an
|
||||||
|
implementation detail and may change from version to
|
||||||
|
version without notice, or even be removed.
|
||||||
|
</description>
|
||||||
|
<event name="server_buffer_created">
|
||||||
|
<arg name="id" type="new_id" interface="qt_server_buffer"/>
|
||||||
|
<arg name="fd" type="fd"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
<arg name="stride" type="int"/>
|
||||||
|
<arg name="offset" type="int"/>
|
||||||
|
<arg name="fourcc_format" type="int"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
301
src/3rdparty/wayland/extensions/qt-text-input-method-unstable-v1.xml
vendored
Normal file
301
src/3rdparty/wayland/extensions/qt-text-input-method-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<protocol name="qt_text_input_method_unstable_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2020 The Qt Company Ltd.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
|
software and its documentation for any purpose is hereby granted
|
||||||
|
without fee, provided that the above copyright notice appear in
|
||||||
|
all copies and that both that copyright notice and this permission
|
||||||
|
notice appear in supporting documentation, and that the name of
|
||||||
|
the copyright holders not be used in advertising or publicity
|
||||||
|
pertaining to distribution of the software without specific,
|
||||||
|
written prior permission. The copyright holders make no
|
||||||
|
representations about the suitability of this software for any
|
||||||
|
purpose. It is provided "as is" without express or implied
|
||||||
|
warranty.
|
||||||
|
|
||||||
|
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="qt_text_input_method_v1" version="1">
|
||||||
|
<description summary="text input">
|
||||||
|
The qt_text_input_method interface represents input method events
|
||||||
|
associated with a seat, and is intended to exactly match the
|
||||||
|
internal events of the Qt framework.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the qt_text_input_method">
|
||||||
|
Destroy the qt_text_input_method object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="enable">
|
||||||
|
<description summary="enable input methods for surface">
|
||||||
|
Enable text input in a surface (usually when a text entry inside of it
|
||||||
|
has focus).
|
||||||
|
|
||||||
|
This can be called before or after a surface gets text (or keyboard)
|
||||||
|
focus via the enter event. Text input to a surface is only active
|
||||||
|
when it has the current text (or keyboard) focus and is enabled.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="disable">
|
||||||
|
<description summary="disable input methods for surface">
|
||||||
|
Disable text input in a surface (typically when there is no focus on any
|
||||||
|
text entry inside the surface).
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="enter">
|
||||||
|
<description summary="enter event">
|
||||||
|
Notification that this seat's text-input focus is on a certain surface.
|
||||||
|
|
||||||
|
When the seat has the keyboard capability the text-input focus follows
|
||||||
|
the keyboard focus.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="leave">
|
||||||
|
<description summary="leave event">
|
||||||
|
Notification that this seat's text-input focus is no longer on
|
||||||
|
a certain surface.
|
||||||
|
|
||||||
|
The leave notification is sent before the enter notification
|
||||||
|
for the new focus.
|
||||||
|
|
||||||
|
When the seat has the keyboard capability the text-input focus follows
|
||||||
|
the keyboard focus.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="key">
|
||||||
|
<description summary="key event">
|
||||||
|
A QKeyEvent has been sent from the input method.
|
||||||
|
</description>
|
||||||
|
<arg name="type" type="int" />
|
||||||
|
<arg name="key" type="int" />
|
||||||
|
<arg name="modifiers" type="int" />
|
||||||
|
<arg name="auto_repeat" type="int" />
|
||||||
|
<arg name="count" type="int" />
|
||||||
|
<arg name="native_scan_code" type="int" />
|
||||||
|
<arg name="native_virtual_key" type="int" />
|
||||||
|
<arg name="native_modifiers" type="int" />
|
||||||
|
<arg name="text" type="string" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="start_input_method_event">
|
||||||
|
<description summary="input method event">
|
||||||
|
Starts an input method event. This can be followed by
|
||||||
|
any number of input_method_event_attribute events
|
||||||
|
and will always be finished by an end_input_method_event.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" />
|
||||||
|
<arg name="surrounding_text_offset" type="int" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="input_method_event_attribute">
|
||||||
|
<description summary="input method event attribute">
|
||||||
|
Appends an attribute to the input method event with
|
||||||
|
the given serial. Must be preceded by a start_input_method_event
|
||||||
|
and concluded by a an end_input_method_event. See documentation
|
||||||
|
of QInputMethodEvent for details on the attributes.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" />
|
||||||
|
<arg name="type" type="int" />
|
||||||
|
<arg name="start" type="int" />
|
||||||
|
<arg name="length" type="int" />
|
||||||
|
<arg name="value" type="string" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="end_input_method_event">
|
||||||
|
<description summary="input method event end">
|
||||||
|
Concludes a previously started input method event. Together with
|
||||||
|
the preceding input_method_event_attribute events with the same
|
||||||
|
serial, this should be converted into a QInputMethodEvent.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" />
|
||||||
|
<arg name="commit_string" type="string" />
|
||||||
|
<arg name="preedit_string" type="string" />
|
||||||
|
<arg name="replacement_start" type="int" />
|
||||||
|
<arg name="replacement_length" type="int" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="visible_changed">
|
||||||
|
<description summary="visible changed">
|
||||||
|
Event to notify client that the visibility of the input method has
|
||||||
|
been changed.
|
||||||
|
</description>
|
||||||
|
<arg name="visible" type="int" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="keyboard_rectangle_changed">
|
||||||
|
<description summary="keyboard rectangle changed">
|
||||||
|
Event to notify client that the keyboard rectangle of the input method
|
||||||
|
has been changed.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="fixed" />
|
||||||
|
<arg name="y" type="fixed" />
|
||||||
|
<arg name="width" type="fixed" />
|
||||||
|
<arg name="height" type="fixed" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="locale_changed">
|
||||||
|
<description summary="keyboard rectangle changed">
|
||||||
|
Event to notify client that the locale of the input method
|
||||||
|
has been changed.
|
||||||
|
</description>
|
||||||
|
<arg name="locale_name" type="string" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="input_direction_changed">
|
||||||
|
<description summary="input direction changed">
|
||||||
|
Event to notify client that the input direction of the input method
|
||||||
|
has been changed.
|
||||||
|
</description>
|
||||||
|
<arg name="input_direction" type="int" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<request name="reset">
|
||||||
|
<description summary="reset">
|
||||||
|
Request for the input method to reset. Corresponds to QInputMethod::reset().
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="commit">
|
||||||
|
<description summary="commit">
|
||||||
|
Request for the input method to commit its current content. Corresponds to QInputMethod::commit().
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="invoke_action">
|
||||||
|
<description summary="invoke action">
|
||||||
|
Passes a mouse click or context menu request from the client to the server. Corresponds to QInputMethod::invokeAction().
|
||||||
|
</description>
|
||||||
|
<arg name="type" type="int" />
|
||||||
|
<arg name="cursor_position" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_hints">
|
||||||
|
<description summary="update hints">
|
||||||
|
Notifies the server of the client's current input method hints.
|
||||||
|
</description>
|
||||||
|
<arg name="hints" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_cursor_rectangle">
|
||||||
|
<description summary="update cursor rectangle">
|
||||||
|
Notifies the server of the client's current cursor rectangle.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="int" />
|
||||||
|
<arg name="y" type="int" />
|
||||||
|
<arg name="width" type="int" />
|
||||||
|
<arg name="height" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_cursor_position">
|
||||||
|
<description summary="update cursor position">
|
||||||
|
Notifies the server of the client's current cursor position.
|
||||||
|
</description>
|
||||||
|
<arg name="cursor_position" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_surrounding_text">
|
||||||
|
<description summary="update surrounding text">
|
||||||
|
Notifies the server of the client's current surrounding text and its offset in the
|
||||||
|
complete text.
|
||||||
|
</description>
|
||||||
|
<arg name="surrounding_text" type="string" />
|
||||||
|
<arg name="text_offset" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_anchor_position">
|
||||||
|
<description summary="update anchor position">
|
||||||
|
Notifies the server of the client's current anchor position.
|
||||||
|
</description>
|
||||||
|
<arg name="anchor_position" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_absolute_position">
|
||||||
|
<description summary="update absolute position">
|
||||||
|
Notifies the server of the client's current absolute cursor position.
|
||||||
|
</description>
|
||||||
|
<arg name="absolute_position" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="update_preferred_language">
|
||||||
|
<description summary="update preferred language">
|
||||||
|
Notifies the server of the client's current preferred language.
|
||||||
|
</description>
|
||||||
|
<arg name="preferred_language" type="string" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="start_update">
|
||||||
|
<description summary="start update">
|
||||||
|
Starts an update sequence to notify the server that the client's state has
|
||||||
|
changed. This is followed by any number of update requests for specific
|
||||||
|
parts of the state and concluded by an end_update request.
|
||||||
|
</description>
|
||||||
|
<arg name="queries" type="int" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="end_update">
|
||||||
|
<description summary="end update">
|
||||||
|
Concludes the previously started update request.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="show_input_panel">
|
||||||
|
<description summary="show input panel">
|
||||||
|
Requests that the input panel of the input method is visible.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="hide_input_panel">
|
||||||
|
<description summary="hide input panel">
|
||||||
|
Requests that the input panel of the input method is not visible.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="acknowledge_input_method">
|
||||||
|
<description summary="acknowledge input method">
|
||||||
|
Sent on receipt of an end_input_method_event to acknowledge that
|
||||||
|
the client has received and handled the event.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="qt_text_input_method_manager_v1" version="1">
|
||||||
|
<description summary="qt text input method manager">
|
||||||
|
Manages qt_text_input_method objects.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the qt_text_input_method_manager">
|
||||||
|
Destroy the qt_text_input_method_manager object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_text_input_method">
|
||||||
|
<description summary="create a new text input method object">
|
||||||
|
Creates a new text-input-method object for a given seat.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="qt_text_input_method_v1" />
|
||||||
|
<arg name="seat" type="object" interface="wl_seat" />
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
24
src/3rdparty/wayland/extensions/qt-texture-sharing-unstable-v1.xml
vendored
Normal file
24
src/3rdparty/wayland/extensions/qt-texture-sharing-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<protocol name="qt_texture_sharing_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2019 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zqt_texture_sharing_v1" version="1">
|
||||||
|
<request name="request_image">
|
||||||
|
<arg name="key" type="string"/>
|
||||||
|
</request>
|
||||||
|
<request name="abandon_image">
|
||||||
|
<arg name="key" type="string"/>
|
||||||
|
</request>
|
||||||
|
<event name="image_failed">
|
||||||
|
<arg name="key" type="string"/>
|
||||||
|
<arg name="error_message" type="string"/>
|
||||||
|
</event>
|
||||||
|
<event name="provide_buffer">
|
||||||
|
<arg name="buffer" type="object" interface="qt_server_buffer"/>
|
||||||
|
<arg name="key" type="string"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
31
src/3rdparty/wayland/extensions/qt-vulkan-server-buffer-unstable-v1.xml
vendored
Normal file
31
src/3rdparty/wayland/extensions/qt-vulkan-server-buffer-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="qt_vulkan_server_buffer_unstable_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2019 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
<interface name="zqt_vulkan_server_buffer_v1" version="1">
|
||||||
|
<description summary="Internal protocol for buffer sharing using Vulkan external memory">
|
||||||
|
This protocol is used internally by Qt for implementing the
|
||||||
|
qt_server_buffer extension on hardware that supports Vulkan external memory .
|
||||||
|
|
||||||
|
This protocol is not part of the Qt API. It exists purely as an
|
||||||
|
implementation detail and may change from version to
|
||||||
|
version without notice, or even be removed.
|
||||||
|
</description>
|
||||||
|
<event name="server_buffer_created">
|
||||||
|
<description summary="vulkan buffer information">
|
||||||
|
Informs the client about a newly created server buffer.
|
||||||
|
The "fd" argument is a POSIX file descriptor representing the
|
||||||
|
underlying resources of a Vulkan device memory object as defined
|
||||||
|
in the GL_EXT_memory_object_fd extension.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="qt_server_buffer"/>
|
||||||
|
<arg name="fd" type="fd" summary="GL_EXT_memory_object_fd"/>
|
||||||
|
<arg name="width" type="uint"/>
|
||||||
|
<arg name="height" type="uint"/>
|
||||||
|
<arg name="memory_size" type="uint" summary="size in bytes"/>
|
||||||
|
<arg name="format" type="uint" summary="GL internal format"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
25
src/3rdparty/wayland/extensions/qt-windowmanager.xml
vendored
Normal file
25
src/3rdparty/wayland/extensions/qt-windowmanager.xml
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<protocol name="qt_windowmanager">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2015 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="qt_windowmanager" version="1">
|
||||||
|
<request name="open_url">
|
||||||
|
<description summary="client requests a url to be opened">
|
||||||
|
If remaining is not 0 this is a multipart request, and
|
||||||
|
the server must concatenate subsequent requst urls to and
|
||||||
|
including a request where remaining is set to 0, before
|
||||||
|
it can handle the url.
|
||||||
|
</description>
|
||||||
|
<arg name="remaining" type="uint" />
|
||||||
|
<arg name="url" type="string" />
|
||||||
|
</request>
|
||||||
|
<event name="hints">
|
||||||
|
<arg name="show_is_fullscreen" type="int"/>
|
||||||
|
</event>
|
||||||
|
<event name="quit">
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
20
src/3rdparty/wayland/extensions/server-buffer-extension.xml
vendored
Normal file
20
src/3rdparty/wayland/extensions/server-buffer-extension.xml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<protocol name="server_buffer_extension">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2015 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="qt_server_buffer" version="1">
|
||||||
|
<description summary="buffers managed by the compositor">
|
||||||
|
Server buffer is an extension which makes it possible to share a
|
||||||
|
buffer created by the compositor to share it with arbitrary
|
||||||
|
clients. These types of buffers are intended to be read only
|
||||||
|
buffers for clients, but this is an implementation detail.
|
||||||
|
|
||||||
|
Server buffers main purpose is to help implement caches
|
||||||
|
</description>
|
||||||
|
<request name="release">
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
30
src/3rdparty/wayland/extensions/shm-emulation-server-buffer.xml
vendored
Normal file
30
src/3rdparty/wayland/extensions/shm-emulation-server-buffer.xml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="shm_emulation_server_buffer">
|
||||||
|
<copyright>
|
||||||
|
Copyright (C) 2017 The Qt Company Ltd.
|
||||||
|
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
</copyright>
|
||||||
|
<interface name="qt_shm_emulation_server_buffer" version="1">
|
||||||
|
<description summary="shm-based server buffer for testing on desktop">
|
||||||
|
This is software-based implementation of the qt_server_buffer extension.
|
||||||
|
It is intended for testing and debugging purposes only.
|
||||||
|
</description>
|
||||||
|
<enum name="format">
|
||||||
|
<entry name="RGBA32" value="0"/>
|
||||||
|
<entry name="A8" value="1"/>
|
||||||
|
</enum>
|
||||||
|
<event name="server_buffer_created">
|
||||||
|
<description summary="shm buffer information">
|
||||||
|
Informs the client about a newly created server buffer.
|
||||||
|
The "key" argument contains a QSharedMemory key.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="qt_server_buffer"/>
|
||||||
|
<arg name="key" type="string"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
<arg name="bytes_per_line" type="int"/>
|
||||||
|
<arg name="format" type="int"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
18
src/3rdparty/wayland/protocols/MIT_LICENSE.txt
vendored
Normal file
18
src/3rdparty/wayland/protocols/MIT_LICENSE.txt
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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.
|
468
src/3rdparty/wayland/protocols/appmenu/LGPL-2.1-or-later.txt
vendored
Normal file
468
src/3rdparty/wayland/protocols/appmenu/LGPL-2.1-or-later.txt
vendored
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts as the
|
||||||
|
successor of the GNU Library Public License, version 2, hence the version
|
||||||
|
number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your freedom to share
|
||||||
|
and change it. By contrast, the GNU General Public Licenses are intended to
|
||||||
|
guarantee your freedom to share and change free software--to make sure the
|
||||||
|
software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some specially
|
||||||
|
designated software packages--typically libraries--of the Free Software Foundation
|
||||||
|
and other authors who decide to use it. You can use it too, but we suggest
|
||||||
|
you first think carefully about whether this license or the ordinary General
|
||||||
|
Public License is the better strategy to use in any particular case, based
|
||||||
|
on the explanations below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use, not price.
|
||||||
|
Our General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for this service if you
|
||||||
|
wish); that you receive source code or can get it if you want it; that you
|
||||||
|
can change the software and use pieces of it in new free programs; and that
|
||||||
|
you are informed that you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid distributors
|
||||||
|
to deny you these rights or to ask you to surrender these rights. These restrictions
|
||||||
|
translate to certain responsibilities for you if you distribute copies of
|
||||||
|
the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis or for
|
||||||
|
a fee, you must give the recipients all the rights that we gave you. You must
|
||||||
|
make sure that they, too, receive or can get the source code. If you link
|
||||||
|
other code with the library, you must provide complete object files to the
|
||||||
|
recipients, so that they can relink them with the library after making changes
|
||||||
|
to the library and recompiling it. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the library,
|
||||||
|
and (2) we offer you this license, which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that there is no
|
||||||
|
warranty for the free library. Also, if the library is modified by someone
|
||||||
|
else and passed on, the recipients should know that what they have is not
|
||||||
|
the original version, so that the original author's reputation will not be
|
||||||
|
affected by problems that might be introduced by others.
|
||||||
|
|
||||||
|
Finally, software patents pose a constant threat to the existence of any free
|
||||||
|
program. We wish to make sure that a company cannot effectively restrict the
|
||||||
|
users of a free program by obtaining a restrictive license from a patent holder.
|
||||||
|
Therefore, we insist that any patent license obtained for a version of the
|
||||||
|
library must be consistent with the full freedom of use specified in this
|
||||||
|
license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the ordinary GNU
|
||||||
|
General Public License. This license, the GNU Lesser General Public License,
|
||||||
|
applies to certain designated libraries, and is quite different from the ordinary
|
||||||
|
General Public License. We use this license for certain libraries in order
|
||||||
|
to permit linking those libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using a shared
|
||||||
|
library, the combination of the two is legally speaking a combined work, a
|
||||||
|
derivative of the original library. The ordinary General Public License therefore
|
||||||
|
permits such linking only if the entire combination fits its criteria of freedom.
|
||||||
|
The Lesser General Public License permits more lax criteria for linking other
|
||||||
|
code with the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it does Less
|
||||||
|
to protect the user's freedom than the ordinary General Public License. It
|
||||||
|
also provides other free software developers Less of an advantage over competing
|
||||||
|
non-free programs. These disadvantages are the reason we use the ordinary
|
||||||
|
General Public License for many libraries. However, the Lesser license provides
|
||||||
|
advantages in certain special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to encourage the
|
||||||
|
widest possible use of a certain library, so that it becomes a de-facto standard.
|
||||||
|
To achieve this, non-free programs must be allowed to use the library. A more
|
||||||
|
frequent case is that a free library does the same job as widely used non-free
|
||||||
|
libraries. In this case, there is little to gain by limiting the free library
|
||||||
|
to free software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free programs
|
||||||
|
enables a greater number of people to use a large body of free software. For
|
||||||
|
example, permission to use the GNU C Library in non-free programs enables
|
||||||
|
many more people to use the whole GNU operating system, as well as its variant,
|
||||||
|
the GNU/Linux operating system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the users'
|
||||||
|
freedom, it does ensure that the user of a program that is linked with the
|
||||||
|
Library has the freedom and the wherewithal to run that program using a modified
|
||||||
|
version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow. Pay close attention to the difference between a "work based on the
|
||||||
|
library" and a "work that uses the library". The former contains code derived
|
||||||
|
from the library, whereas the latter must be combined with the library in
|
||||||
|
order to run.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other program
|
||||||
|
which contains a notice placed by the copyright holder or other authorized
|
||||||
|
party saying it may be distributed under the terms of this Lesser General
|
||||||
|
Public License (also called "this License"). Each licensee is addressed as
|
||||||
|
"you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data prepared
|
||||||
|
so as to be conveniently linked with application programs (which use some
|
||||||
|
of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work which has
|
||||||
|
been distributed under these terms. A "work based on the Library" means either
|
||||||
|
the Library or any derivative work under copyright law: that is to say, a
|
||||||
|
work containing the Library or a portion of it, either verbatim or with modifications
|
||||||
|
and/or translated straightforwardly into another language. (Hereinafter, translation
|
||||||
|
is included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for making modifications
|
||||||
|
to it. For a library, complete source code means all the source code for all
|
||||||
|
modules it contains, plus any associated interface definition files, plus
|
||||||
|
the scripts used to control compilation and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not covered
|
||||||
|
by this License; they are outside its scope. The act of running a program
|
||||||
|
using the Library is not restricted, and output from such a program is covered
|
||||||
|
only if its contents constitute a work based on the Library (independent of
|
||||||
|
the use of the Library in a tool for writing it). Whether that is true depends
|
||||||
|
on what the Library does and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's complete source
|
||||||
|
code as you receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice and disclaimer
|
||||||
|
of warranty; keep intact all the notices that refer to this License and to
|
||||||
|
the absence of any warranty; and distribute a copy of this License along with
|
||||||
|
the Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and you
|
||||||
|
may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion of it,
|
||||||
|
thus forming a work based on the Library, and copy and distribute such modifications
|
||||||
|
or work under the terms of Section 1 above, provided that you also meet all
|
||||||
|
of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices stating that
|
||||||
|
you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no charge to all
|
||||||
|
third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a table of
|
||||||
|
data to be supplied by an application program that uses the facility, other
|
||||||
|
than as an argument passed when the facility is invoked, then you must make
|
||||||
|
a good faith effort to ensure that, in the event an application does not supply
|
||||||
|
such function or table, the facility still operates, and performs whatever
|
||||||
|
part of its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has a purpose
|
||||||
|
that is entirely well-defined independent of the application. Therefore, Subsection
|
||||||
|
2d requires that any application-supplied function or table used by this function
|
||||||
|
must be optional: if the application does not supply it, the square root function
|
||||||
|
must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If identifiable
|
||||||
|
sections of that work are not derived from the Library, and can be reasonably
|
||||||
|
considered independent and separate works in themselves, then this License,
|
||||||
|
and its terms, do not apply to those sections when you distribute them as
|
||||||
|
separate works. But when you distribute the same sections as part of a whole
|
||||||
|
which is a work based on the Library, the distribution of the whole must be
|
||||||
|
on the terms of this License, whose permissions for other licensees extend
|
||||||
|
to the entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest your
|
||||||
|
rights to work written entirely by you; rather, the intent is to exercise
|
||||||
|
the right to control the distribution of derivative or collective works based
|
||||||
|
on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library with
|
||||||
|
the Library (or with a work based on the Library) on a volume of a storage
|
||||||
|
or distribution medium does not bring the other work under the scope of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public License
|
||||||
|
instead of this License to a given copy of the Library. To do this, you must
|
||||||
|
alter all the notices that refer to this License, so that they refer to the
|
||||||
|
ordinary GNU General Public License, version 2, instead of to this License.
|
||||||
|
(If a newer version than version 2 of the ordinary GNU General Public License
|
||||||
|
has appeared, then you can specify that version instead if you wish.) Do not
|
||||||
|
make any other change in these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for that copy,
|
||||||
|
so the ordinary GNU General Public License applies to all subsequent copies
|
||||||
|
and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of the Library
|
||||||
|
into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or derivative of
|
||||||
|
it, under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you accompany it with the complete corresponding
|
||||||
|
machine-readable source code, which must be distributed under the terms of
|
||||||
|
Sections 1 and 2 above on a medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy from a designated
|
||||||
|
place, then offering equivalent access to copy the source code from the same
|
||||||
|
place satisfies the requirement to distribute the source code, even though
|
||||||
|
third parties are not compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the Library, but
|
||||||
|
is designed to work with the Library by being compiled or linked with it,
|
||||||
|
is called a "work that uses the Library". Such a work, in isolation, is not
|
||||||
|
a derivative work of the Library, and therefore falls outside the scope of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library creates an
|
||||||
|
executable that is a derivative of the Library (because it contains portions
|
||||||
|
of the Library), rather than a "work that uses the library". The executable
|
||||||
|
is therefore covered by this License. Section 6 states terms for distribution
|
||||||
|
of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file that
|
||||||
|
is part of the Library, the object code for the work may be a derivative work
|
||||||
|
of the Library even though the source code is not. Whether this is true is
|
||||||
|
especially significant if the work can be linked without the Library, or if
|
||||||
|
the work is itself a library. The threshold for this to be true is not precisely
|
||||||
|
defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data structure layouts
|
||||||
|
and accessors, and small macros and small inline functions (ten lines or less
|
||||||
|
in length), then the use of the object file is unrestricted, regardless of
|
||||||
|
whether it is legally a derivative work. (Executables containing this object
|
||||||
|
code plus portions of the Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may distribute
|
||||||
|
the object code for the work under the terms of Section 6. Any executables
|
||||||
|
containing that work also fall under Section 6, whether or not they are linked
|
||||||
|
directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also combine or link a "work
|
||||||
|
that uses the Library" with the Library to produce a work containing portions
|
||||||
|
of the Library, and distribute that work under terms of your choice, provided
|
||||||
|
that the terms permit modification of the work for the customer's own use
|
||||||
|
and reverse engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the Library
|
||||||
|
is used in it and that the Library and its use are covered by this License.
|
||||||
|
You must supply a copy of this License. If the work during execution displays
|
||||||
|
copyright notices, you must include the copyright notice for the Library among
|
||||||
|
them, as well as a reference directing the user to the copy of this License.
|
||||||
|
Also, you must do one of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding machine-readable source
|
||||||
|
code for the Library including whatever changes were used in the work (which
|
||||||
|
must be distributed under Sections 1 and 2 above); and, if the work is an
|
||||||
|
executable linked with the Library, with the complete machine-readable "work
|
||||||
|
that uses the Library", as object code and/or source code, so that the user
|
||||||
|
can modify the Library and then relink to produce a modified executable containing
|
||||||
|
the modified Library. (It is understood that the user who changes the contents
|
||||||
|
of definitions files in the Library will not necessarily be able to recompile
|
||||||
|
the application to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the Library. A
|
||||||
|
suitable mechanism is one that (1) uses at run time a copy of the library
|
||||||
|
already present on the user's computer system, rather than copying library
|
||||||
|
functions into the executable, and (2) will operate properly with a modified
|
||||||
|
version of the library, if the user installs one, as long as the modified
|
||||||
|
version is interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at least three years,
|
||||||
|
to give the same user the materials specified in Subsection 6a, above, for
|
||||||
|
a charge no more than the cost of performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy from a designated
|
||||||
|
place, offer equivalent access to copy the above specified materials from
|
||||||
|
the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these materials or
|
||||||
|
that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the Library" must
|
||||||
|
include any data and utility programs needed for reproducing the executable
|
||||||
|
from it. However, as a special exception, the materials to be distributed
|
||||||
|
need not include anything that is normally distributed (in either source or
|
||||||
|
binary form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component itself
|
||||||
|
accompanies the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license restrictions of
|
||||||
|
other proprietary libraries that do not normally accompany the operating system.
|
||||||
|
Such a contradiction means you cannot use both them and the Library together
|
||||||
|
in an executable that you distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the Library side-by-side
|
||||||
|
in a single library together with other library facilities not covered by
|
||||||
|
this License, and distribute such a combined library, provided that the separate
|
||||||
|
distribution of the work based on the Library and of the other library facilities
|
||||||
|
is otherwise permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based on the
|
||||||
|
Library, uncombined with any other library facilities. This must be distributed
|
||||||
|
under the terms of the Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact that part of
|
||||||
|
it is a work based on the Library, and explaining where to find the accompanying
|
||||||
|
uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute the Library
|
||||||
|
except as expressly provided under this License. Any attempt otherwise to
|
||||||
|
copy, modify, sublicense, link with, or distribute the Library is void, and
|
||||||
|
will automatically terminate your rights under this License. However, parties
|
||||||
|
who have received copies, or rights, from you under this License will not
|
||||||
|
have their licenses terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not signed
|
||||||
|
it. However, nothing else grants you permission to modify or distribute the
|
||||||
|
Library or its derivative works. These actions are prohibited by law if you
|
||||||
|
do not accept this License. Therefore, by modifying or distributing the Library
|
||||||
|
(or any work based on the Library), you indicate your acceptance of this License
|
||||||
|
to do so, and all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the Library),
|
||||||
|
the recipient automatically receives a license from the original licensor
|
||||||
|
to copy, distribute, link with or modify the Library subject to these terms
|
||||||
|
and conditions. You may not impose any further restrictions on the recipients'
|
||||||
|
exercise of the rights granted herein. You are not responsible for enforcing
|
||||||
|
compliance by third parties with this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent infringement
|
||||||
|
or for any other reason (not limited to patent issues), conditions are imposed
|
||||||
|
on you (whether by court order, agreement or otherwise) that contradict the
|
||||||
|
conditions of this License, they do not excuse you from the conditions of
|
||||||
|
this License. If you cannot distribute so as to satisfy simultaneously your
|
||||||
|
obligations under this License and any other pertinent obligations, then as
|
||||||
|
a consequence you may not distribute the Library at all. For example, if a
|
||||||
|
patent license would not permit royalty-free redistribution of the Library
|
||||||
|
by all those who receive copies directly or indirectly through you, then the
|
||||||
|
only way you could satisfy both it and this License would be to refrain entirely
|
||||||
|
from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any patents
|
||||||
|
or other property right claims or to contest validity of any such claims;
|
||||||
|
this section has the sole purpose of protecting the integrity of the free
|
||||||
|
software distribution system which is implemented by public license practices.
|
||||||
|
Many people have made generous contributions to the wide range of software
|
||||||
|
distributed through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing to
|
||||||
|
distribute software through any other system and a licensee cannot impose
|
||||||
|
that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to be a
|
||||||
|
consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in certain
|
||||||
|
countries either by patents or by copyrighted interfaces, the original copyright
|
||||||
|
holder who places the Library under this License may add an explicit geographical
|
||||||
|
distribution limitation excluding those countries, so that distribution is
|
||||||
|
permitted only in or among countries not thus excluded. In such case, this
|
||||||
|
License incorporates the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the Lesser General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to address
|
||||||
|
new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library specifies
|
||||||
|
a version number of this License which applies to it and "any later version",
|
||||||
|
you have the option of following the terms and conditions either of that version
|
||||||
|
or of any later version published by the Free Software Foundation. If the
|
||||||
|
Library does not specify a license version number, you may choose any version
|
||||||
|
ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free programs
|
||||||
|
whose distribution conditions are incompatible with these, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free Software
|
||||||
|
Foundation, write to the Free Software Foundation; we sometimes make exceptions
|
||||||
|
for this. Our decision will be guided by the two goals of preserving the free
|
||||||
|
status of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||||
|
THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||||
|
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY
|
||||||
|
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
||||||
|
OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||||
|
THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||||
|
OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||||
|
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||||
|
OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH
|
||||||
|
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest possible
|
||||||
|
use to the public, we recommend making it free software that everyone can
|
||||||
|
redistribute and change. You can do so by permitting redistribution under
|
||||||
|
these terms (or, alternatively, under the terms of the ordinary General Public
|
||||||
|
License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively convey
|
||||||
|
the exclusion of warranty; and each file should have at least the "copyright"
|
||||||
|
line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and an idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Lesser General Public License as published by the Free
|
||||||
|
Software Foundation; either version 2.1 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||||
|
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the library, if necessary. Here
|
||||||
|
is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in
|
||||||
|
|
||||||
|
the library `Frob' (a library for tweaking knobs) written
|
||||||
|
|
||||||
|
by James Random Hacker.
|
||||||
|
|
||||||
|
< signature of Ty Coon > , 1 April 1990
|
||||||
|
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
7
src/3rdparty/wayland/protocols/appmenu/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/appmenu/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = ["LGPL-2.1-or-later.txt", "appmenu.xml"]
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2017 David Edmundson"]
|
||||||
|
SPDX-License-Identifier = "LGPL-2.1-or-later"
|
36
src/3rdparty/wayland/protocols/appmenu/appmenu.xml
vendored
Normal file
36
src/3rdparty/wayland/protocols/appmenu/appmenu.xml
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="appmenu">
|
||||||
|
<copyright><![CDATA[
|
||||||
|
SPDX-FileCopyrightText: 2017 David Edmundson
|
||||||
|
|
||||||
|
SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
]]></copyright>
|
||||||
|
<interface name="org_kde_kwin_appmenu_manager" version="1">
|
||||||
|
<description summary="appmenu dbus address interface">
|
||||||
|
This interface allows a client to link a window (or wl_surface) to an com.canonical.dbusmenu
|
||||||
|
interface registered on DBus.
|
||||||
|
</description>
|
||||||
|
<request name="create">
|
||||||
|
<arg name="id" type="new_id" interface="org_kde_kwin_appmenu"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
<interface name="org_kde_kwin_appmenu" version="1">
|
||||||
|
<description summary="appmenu dbus address interface">
|
||||||
|
The DBus service name and object path where the appmenu interface is present
|
||||||
|
The object should be registered on the session bus before sending this request.
|
||||||
|
If not applicable, clients should remove this object.
|
||||||
|
</description>
|
||||||
|
<request name="set_address">
|
||||||
|
<description summary="initialise or update the location of the AppMenu interface">
|
||||||
|
Set or update the service name and object path.
|
||||||
|
Strings should be formatted in Latin-1 matching the relevant DBus specifications.
|
||||||
|
</description>
|
||||||
|
<arg name="service_name" type="string" />
|
||||||
|
<arg name="object_path" type="string" />
|
||||||
|
</request>
|
||||||
|
<request name="release" type="destructor">
|
||||||
|
<description summary="release the appmenu object"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
16
src/3rdparty/wayland/protocols/appmenu/qt_attribution.json
vendored
Normal file
16
src/3rdparty/wayland/protocols/appmenu/qt_attribution.json
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"Id": "appmenu",
|
||||||
|
"Name": "Wayland KDE DBus Menu Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "appmenu.xml",
|
||||||
|
|
||||||
|
"Description": "Attach a dbus menu to a window",
|
||||||
|
"Homepage": "https://kde.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://invent.kde.org/libraries/plasma-wayland-protocols/-/blob/v1.14.0/src/protocols/appmenu.xml",
|
||||||
|
"LicenseId": "LGPL-2.1-or-later",
|
||||||
|
"License": "GNU Lesser General Public License 2.1 or later",
|
||||||
|
"LicenseFile": "LGPL-2.1-or-later.txt",
|
||||||
|
"Copyright": "Copyright 2017 David Edmundson"
|
||||||
|
}
|
11
src/3rdparty/wayland/protocols/color-management/REUSE.toml
vendored
Normal file
11
src/3rdparty/wayland/protocols/color-management/REUSE.toml
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xx-color-management-v4.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2019 Sebastian Wick",
|
||||||
|
"Copyright 2019 Erwin Burema",
|
||||||
|
"Copyright 2020 AMD",
|
||||||
|
"Copyright 2020-2024 Collabora, Ltd.",
|
||||||
|
"Copyright 2024 Xaver Hugl"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/color-management/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/color-management/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-color-management-protocol",
|
||||||
|
"Name": "Wayland Color Management Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xx-color-management-v4.xml",
|
||||||
|
|
||||||
|
"Description": "An extension to use different colorspaces from sRGB",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "experimental v4",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/swick/wayland-protocols/-/blob/708a8b4119d4072820158a115166598733d378f4/staging/color-management/xx-color-management-v4.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright 2019 Sebastian Wick\nCopyright 2019 Erwin Burema\nCopyright 2020 AMD\nCopyright 2020-2024 Collabora, Ltd.\nCopyright 2024 Xaver Hugl"
|
||||||
|
}
|
||||||
|
]
|
1453
src/3rdparty/wayland/protocols/color-management/xx-color-management-v4.xml
vendored
Normal file
1453
src/3rdparty/wayland/protocols/color-management/xx-color-management-v4.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
8
src/3rdparty/wayland/protocols/cursor-shape/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/protocols/cursor-shape/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "cursor-shape-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2018 The Chromium Authors",
|
||||||
|
"Copyright 2023 Simon Ser"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
146
src/3rdparty/wayland/protocols/cursor-shape/cursor-shape-v1.xml
vendored
Normal file
146
src/3rdparty/wayland/protocols/cursor-shape/cursor-shape-v1.xml
vendored
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="cursor_shape_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright 2018 The Chromium Authors
|
||||||
|
Copyright 2023 Simon Ser
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="wp_cursor_shape_manager_v1" version="1">
|
||||||
|
<description summary="cursor shape manager">
|
||||||
|
This global allows clients to set cursor images by name instead of
|
||||||
|
creating and attaching buffers.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is currently in the testing
|
||||||
|
phase. Backward compatible changes may be added together with the
|
||||||
|
corresponding interface version bump. Backward incompatible changes can
|
||||||
|
only be done by creating a new major version of the extension.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the manager">
|
||||||
|
Destroy the cursor shape manager.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_pointer">
|
||||||
|
<description summary="manage the cursor shape of a pointer device">
|
||||||
|
Obtain a wp_cursor_shape_device_v1 for a wl_pointer object.
|
||||||
|
</description>
|
||||||
|
<arg name="cursor_shape_device" type="new_id" interface="wp_cursor_shape_device_v1"/>
|
||||||
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_tablet_tool_v2">
|
||||||
|
<description summary="manage the cursor shape of a tablet tool device">
|
||||||
|
Obtain a wp_cursor_shape_device_v1 for a zwp_tablet_tool_v2 object.
|
||||||
|
</description>
|
||||||
|
<arg name="cursor_shape_device" type="new_id" interface="wp_cursor_shape_device_v1"/>
|
||||||
|
<arg name="tablet_tool" type="object" interface="zwp_tablet_tool_v2"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="wp_cursor_shape_device_v1" version="1">
|
||||||
|
<description summary="cursor shape for a device">
|
||||||
|
This interface advertises the list of supported cursor shapes for a
|
||||||
|
device, and allows clients to set the cursor shape.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="shape">
|
||||||
|
<description summary="cursor shapes">
|
||||||
|
This enum describes cursor shapes.
|
||||||
|
|
||||||
|
The names are taken from the CSS W3C specification:
|
||||||
|
https://w3c.github.io/csswg-drafts/css-ui/#cursor
|
||||||
|
</description>
|
||||||
|
<entry name="default" value="1" summary="default cursor"/>
|
||||||
|
<entry name="context_menu" value="2" summary="a context menu is available for the object under the cursor"/>
|
||||||
|
<entry name="help" value="3" summary="help is available for the object under the cursor"/>
|
||||||
|
<entry name="pointer" value="4" summary="pointer that indicates a link or another interactive element"/>
|
||||||
|
<entry name="progress" value="5" summary="progress indicator"/>
|
||||||
|
<entry name="wait" value="6" summary="program is busy, user should wait"/>
|
||||||
|
<entry name="cell" value="7" summary="a cell or set of cells may be selected"/>
|
||||||
|
<entry name="crosshair" value="8" summary="simple crosshair"/>
|
||||||
|
<entry name="text" value="9" summary="text may be selected"/>
|
||||||
|
<entry name="vertical_text" value="10" summary="vertical text may be selected"/>
|
||||||
|
<entry name="alias" value="11" summary="drag-and-drop: alias of/shortcut to something is to be created"/>
|
||||||
|
<entry name="copy" value="12" summary="drag-and-drop: something is to be copied"/>
|
||||||
|
<entry name="move" value="13" summary="drag-and-drop: something is to be moved"/>
|
||||||
|
<entry name="no_drop" value="14" summary="drag-and-drop: the dragged item cannot be dropped at the current cursor location"/>
|
||||||
|
<entry name="not_allowed" value="15" summary="drag-and-drop: the requested action will not be carried out"/>
|
||||||
|
<entry name="grab" value="16" summary="drag-and-drop: something can be grabbed"/>
|
||||||
|
<entry name="grabbing" value="17" summary="drag-and-drop: something is being grabbed"/>
|
||||||
|
<entry name="e_resize" value="18" summary="resizing: the east border is to be moved"/>
|
||||||
|
<entry name="n_resize" value="19" summary="resizing: the north border is to be moved"/>
|
||||||
|
<entry name="ne_resize" value="20" summary="resizing: the north-east corner is to be moved"/>
|
||||||
|
<entry name="nw_resize" value="21" summary="resizing: the north-west corner is to be moved"/>
|
||||||
|
<entry name="s_resize" value="22" summary="resizing: the south border is to be moved"/>
|
||||||
|
<entry name="se_resize" value="23" summary="resizing: the south-east corner is to be moved"/>
|
||||||
|
<entry name="sw_resize" value="24" summary="resizing: the south-west corner is to be moved"/>
|
||||||
|
<entry name="w_resize" value="25" summary="resizing: the west border is to be moved"/>
|
||||||
|
<entry name="ew_resize" value="26" summary="resizing: the east and west borders are to be moved"/>
|
||||||
|
<entry name="ns_resize" value="27" summary="resizing: the north and south borders are to be moved"/>
|
||||||
|
<entry name="nesw_resize" value="28" summary="resizing: the north-east and south-west corners are to be moved"/>
|
||||||
|
<entry name="nwse_resize" value="29" summary="resizing: the north-west and south-east corners are to be moved"/>
|
||||||
|
<entry name="col_resize" value="30" summary="resizing: that the item/column can be resized horizontally"/>
|
||||||
|
<entry name="row_resize" value="31" summary="resizing: that the item/row can be resized vertically"/>
|
||||||
|
<entry name="all_scroll" value="32" summary="something can be scrolled in any direction"/>
|
||||||
|
<entry name="zoom_in" value="33" summary="something can be zoomed in"/>
|
||||||
|
<entry name="zoom_out" value="34" summary="something can be zoomed out"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="invalid_shape" value="1"
|
||||||
|
summary="the specified shape value is invalid"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the cursor shape device">
|
||||||
|
Destroy the cursor shape device.
|
||||||
|
|
||||||
|
The device cursor shape remains unchanged.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_shape">
|
||||||
|
<description summary="set device cursor to the shape">
|
||||||
|
Sets the device cursor to the specified shape. The compositor will
|
||||||
|
change the cursor image based on the specified shape.
|
||||||
|
|
||||||
|
The cursor actually changes only if the input device focus is one of
|
||||||
|
the requesting client's surfaces. If any, the previous cursor image
|
||||||
|
(surface or shape) is replaced.
|
||||||
|
|
||||||
|
The "shape" argument must be a valid enum entry, otherwise the
|
||||||
|
invalid_shape protocol error is raised.
|
||||||
|
|
||||||
|
This is similar to the wl_pointer.set_cursor and
|
||||||
|
zwp_tablet_tool_v2.set_cursor requests, but this request accepts a
|
||||||
|
shape instead of contents in the form of a surface. Clients can mix
|
||||||
|
set_cursor and set_shape requests.
|
||||||
|
|
||||||
|
The serial parameter must match the latest wl_pointer.enter or
|
||||||
|
zwp_tablet_tool_v2.proximity_in serial number sent to the client.
|
||||||
|
Otherwise the request will be ignored.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial number of the enter event"/>
|
||||||
|
<arg name="shape" type="uint" enum="shape"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/fractional-scale/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/fractional-scale/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "fractional-scale-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2022 Kenny Levinsen"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
102
src/3rdparty/wayland/protocols/fractional-scale/fractional-scale-v1.xml
vendored
Normal file
102
src/3rdparty/wayland/protocols/fractional-scale/fractional-scale-v1.xml
vendored
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="fractional_scale_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2022 Kenny Levinsen
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Protocol for requesting fractional surface scales">
|
||||||
|
This protocol allows a compositor to suggest for surfaces to render at
|
||||||
|
fractional scales.
|
||||||
|
|
||||||
|
A client can submit scaled content by utilizing wp_viewport. This is done by
|
||||||
|
creating a wp_viewport object for the surface and setting the destination
|
||||||
|
rectangle to the surface size before the scale factor is applied.
|
||||||
|
|
||||||
|
The buffer size is calculated by multiplying the surface size by the
|
||||||
|
intended scale.
|
||||||
|
|
||||||
|
The wl_surface buffer scale should remain set to 1.
|
||||||
|
|
||||||
|
If a surface has a surface-local size of 100 px by 50 px and wishes to
|
||||||
|
submit buffers with a scale of 1.5, then a buffer of 150px by 75 px should
|
||||||
|
be used and the wp_viewport destination rectangle should be 100 px by 50 px.
|
||||||
|
|
||||||
|
For toplevel surfaces, the size is rounded halfway away from zero. The
|
||||||
|
rounding algorithm for subsurface position and size is not defined.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="wp_fractional_scale_manager_v1" version="1">
|
||||||
|
<description summary="fractional surface scale information">
|
||||||
|
A global interface for requesting surfaces to use fractional scales.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unbind the fractional surface scale interface">
|
||||||
|
Informs the server that the client will not be using this protocol
|
||||||
|
object anymore. This does not affect any other objects,
|
||||||
|
wp_fractional_scale_v1 objects included.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="fractional_scale_exists" value="0"
|
||||||
|
summary="the surface already has a fractional_scale object associated"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="get_fractional_scale">
|
||||||
|
<description summary="extend surface interface for scale information">
|
||||||
|
Create an add-on object for the the wl_surface to let the compositor
|
||||||
|
request fractional scales. If the given wl_surface already has a
|
||||||
|
wp_fractional_scale_v1 object associated, the fractional_scale_exists
|
||||||
|
protocol error is raised.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="wp_fractional_scale_v1"
|
||||||
|
summary="the new surface scale info interface id"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the surface"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="wp_fractional_scale_v1" version="1">
|
||||||
|
<description summary="fractional scale interface to a wl_surface">
|
||||||
|
An additional interface to a wl_surface object which allows the compositor
|
||||||
|
to inform the client of the preferred scale.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="remove surface scale information for surface">
|
||||||
|
Destroy the fractional scale object. When this object is destroyed,
|
||||||
|
preferred_scale events will no longer be sent.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="preferred_scale">
|
||||||
|
<description summary="notify of new preferred scale">
|
||||||
|
Notification of a new preferred scale for this surface that the
|
||||||
|
compositor suggests that the client should use.
|
||||||
|
|
||||||
|
The sent scale is the numerator of a fraction with a denominator of 120.
|
||||||
|
</description>
|
||||||
|
<arg name="scale" type="uint" summary="the new preferred scale"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
18
src/3rdparty/wayland/protocols/fractional-scale/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/fractional-scale/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "fractional-scale-v1",
|
||||||
|
"Name": "Wayland Fractional Scale Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "fractional-scale-v1.xml",
|
||||||
|
|
||||||
|
"Description": "Send a preferred scale to different clients",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/raw/1.31/unstable/fractional-scale/fractional-scale-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2022 Kenny Levinsen"
|
||||||
|
}
|
||||||
|
]
|
9
src/3rdparty/wayland/protocols/fullscreen-shell/REUSE.toml
vendored
Normal file
9
src/3rdparty/wayland/protocols/fullscreen-shell/REUSE.toml
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "fullscreen-shell-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2016 Yong Bakos",
|
||||||
|
"Copyright 2015 Jason Ekstrand",
|
||||||
|
"Copyright 2015 Jonas Ådahl"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
245
src/3rdparty/wayland/protocols/fullscreen-shell/fullscreen-shell-unstable-v1.xml
vendored
Normal file
245
src/3rdparty/wayland/protocols/fullscreen-shell/fullscreen-shell-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="fullscreen_shell_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zwp_fullscreen_shell_v1" version="1">
|
||||||
|
<description summary="displays a single surface per output">
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="release" type="destructor">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="capability">
|
||||||
|
<description summary="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).
|
||||||
|
</description>
|
||||||
|
<entry name="arbitrary_modes" value="1" summary="compositor is capable of almost any output mode"/>
|
||||||
|
<entry name="cursor_plane" value="2" summary="compositor has a separate cursor plane"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="capability">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
<arg name="capability" type="uint"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="present_method">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
<entry name="default" value="0" summary="no preference, apply default policy"/>
|
||||||
|
<entry name="center" value="1" summary="center the surface on the output"/>
|
||||||
|
<entry name="zoom" value="2" summary="scale the surface, preserving aspect ratio, to the largest size that will fit on the output" />
|
||||||
|
<entry name="zoom_crop" value="3" summary="scale the surface, preserving aspect ratio, to fully fill the output cropping if needed" />
|
||||||
|
<entry name="stretch" value="4" summary="scale the surface to the size of the output ignoring aspect ratio" />
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="present_surface">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
|
||||||
|
<arg name="method" type="uint"/>
|
||||||
|
<arg name="output" type="object" interface="wl_output" allow-null="true"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="present_surface_for_mode">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
<arg name="output" type="object" interface="wl_output"/>
|
||||||
|
<arg name="framerate" type="int"/>
|
||||||
|
<arg name="feedback" type="new_id" interface="zwp_fullscreen_shell_mode_feedback_v1"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<description summary="wl_fullscreen_shell error values">
|
||||||
|
These errors can be emitted in response to wl_fullscreen_shell requests.
|
||||||
|
</description>
|
||||||
|
<entry name="invalid_method" value="0" summary="present_method is not known"/>
|
||||||
|
</enum>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_fullscreen_shell_mode_feedback_v1" version="1">
|
||||||
|
<event name="mode_successful">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="mode_failed">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="present_cancelled">
|
||||||
|
<description summary="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.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
18
src/3rdparty/wayland/protocols/fullscreen-shell/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/fullscreen-shell/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-fullscreen-protocol",
|
||||||
|
"Name": "Wayland Fullscreen Shell Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin.",
|
||||||
|
"Files": "fullscreen-shell-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "A Wayland shell for displaying a single surface per output",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2016 Yong Bakos\nCopyright © 2015 Jason Ekstrand\nCopyright © 2015 Jonas Ådahl"
|
||||||
|
}
|
||||||
|
]
|
7
src/3rdparty/wayland/protocols/idle-inhibit/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/idle-inhibit/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "idle-inhibit-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2015 Samsung Electronics Co., Ltd"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
83
src/3rdparty/wayland/protocols/idle-inhibit/idle-inhibit-unstable-v1.xml
vendored
Normal file
83
src/3rdparty/wayland/protocols/idle-inhibit/idle-inhibit-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="idle_inhibit_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zwp_idle_inhibit_manager_v1" version="1">
|
||||||
|
<description summary="control behavior when display idles">
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the idle inhibitor object">
|
||||||
|
Destroy the inhibit manager.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="create_inhibitor">
|
||||||
|
<description summary="create a new inhibitor object">
|
||||||
|
Create a new inhibitor object associated with the given surface.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_idle_inhibitor_v1"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the surface that inhibits the idle behavior"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_idle_inhibitor_v1" version="1">
|
||||||
|
<description summary="context object for inhibiting idle behavior">
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the idle inhibitor object">
|
||||||
|
Remove the inhibitor effect from the associated wl_surface.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/linux-dmabuf/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/linux-dmabuf/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "linux-dmabuf-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2014, 2015 Collabora, Ltd."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
362
src/3rdparty/wayland/protocols/linux-dmabuf/linux-dmabuf-unstable-v1.xml
vendored
Normal file
362
src/3rdparty/wayland/protocols/linux-dmabuf/linux-dmabuf-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,362 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="linux_dmabuf_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2014, 2015 Collabora, 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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zwp_linux_dmabuf_v1" version="3">
|
||||||
|
<description summary="factory for creating dmabuf-based wl_buffers">
|
||||||
|
Following the interfaces from:
|
||||||
|
https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
|
||||||
|
https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
|
||||||
|
and the Linux DRM sub-system's AddFb2 ioctl.
|
||||||
|
|
||||||
|
This interface offers ways to create generic dmabuf-based
|
||||||
|
wl_buffers. Immediately after a client binds to this interface,
|
||||||
|
the set of supported formats and format modifiers is sent with
|
||||||
|
'format' and 'modifier' events.
|
||||||
|
|
||||||
|
The following are required from clients:
|
||||||
|
|
||||||
|
- Clients must ensure that either all data in the dma-buf is
|
||||||
|
coherent for all subsequent read access or that coherency is
|
||||||
|
correctly handled by the underlying kernel-side dma-buf
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
- Don't make any more attachments after sending the buffer to the
|
||||||
|
compositor. Making more attachments later increases the risk of
|
||||||
|
the compositor not being able to use (re-import) an existing
|
||||||
|
dmabuf-based wl_buffer.
|
||||||
|
|
||||||
|
The underlying graphics stack must ensure the following:
|
||||||
|
|
||||||
|
- The dmabuf file descriptors relayed to the server will stay valid
|
||||||
|
for the whole lifetime of the wl_buffer. This means the server may
|
||||||
|
at any time use those fds to import the dmabuf into any kernel
|
||||||
|
sub-system that might accept it.
|
||||||
|
|
||||||
|
To create a wl_buffer from one or more dmabufs, a client creates a
|
||||||
|
zwp_linux_dmabuf_params_v1 object with a zwp_linux_dmabuf_v1.create_params
|
||||||
|
request. All planes required by the intended format are added with
|
||||||
|
the 'add' request. Finally, a 'create' or 'create_immed' request is
|
||||||
|
issued, which has the following outcome depending on the import success.
|
||||||
|
|
||||||
|
The 'create' request,
|
||||||
|
- on success, triggers a 'created' event which provides the final
|
||||||
|
wl_buffer to the client.
|
||||||
|
- on failure, triggers a 'failed' event to convey that the server
|
||||||
|
cannot use the dmabufs received from the client.
|
||||||
|
|
||||||
|
For the 'create_immed' request,
|
||||||
|
- on success, the server immediately imports the added dmabufs to
|
||||||
|
create a wl_buffer. No event is sent from the server in this case.
|
||||||
|
- on failure, the server can choose to either:
|
||||||
|
- terminate the client by raising a fatal error.
|
||||||
|
- mark the wl_buffer as failed, and send a 'failed' event to the
|
||||||
|
client. If the client uses a failed wl_buffer as an argument to any
|
||||||
|
request, the behaviour is compositor implementation-defined.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unbind the factory">
|
||||||
|
Objects created through this interface, especially wl_buffers, will
|
||||||
|
remain valid.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="create_params">
|
||||||
|
<description summary="create a temporary object for buffer parameters">
|
||||||
|
This temporary object is used to collect multiple dmabuf handles into
|
||||||
|
a single batch to create a wl_buffer. It can only be used once and
|
||||||
|
should be destroyed after a 'created' or 'failed' event has been
|
||||||
|
received.
|
||||||
|
</description>
|
||||||
|
<arg name="params_id" type="new_id" interface="zwp_linux_buffer_params_v1"
|
||||||
|
summary="the new temporary"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="format">
|
||||||
|
<description summary="supported buffer format">
|
||||||
|
This event advertises one buffer format that the server supports.
|
||||||
|
All the supported formats are advertised once when the client
|
||||||
|
binds to this interface. A roundtrip after binding guarantees
|
||||||
|
that the client has received all supported formats.
|
||||||
|
|
||||||
|
For the definition of the format codes, see the
|
||||||
|
zwp_linux_buffer_params_v1::create request.
|
||||||
|
|
||||||
|
Warning: the 'format' event is likely to be deprecated and replaced
|
||||||
|
with the 'modifier' event introduced in zwp_linux_dmabuf_v1
|
||||||
|
version 3, described below. Please refrain from using the information
|
||||||
|
received from this event.
|
||||||
|
</description>
|
||||||
|
<arg name="format" type="uint" summary="DRM_FORMAT code"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="modifier" since="3">
|
||||||
|
<description summary="supported buffer format modifier">
|
||||||
|
This event advertises the formats that the server supports, along with
|
||||||
|
the modifiers supported for each format. All the supported modifiers
|
||||||
|
for all the supported formats are advertised once when the client
|
||||||
|
binds to this interface. A roundtrip after binding guarantees that
|
||||||
|
the client has received all supported format-modifier pairs.
|
||||||
|
|
||||||
|
For legacy support, DRM_FORMAT_MOD_INVALID (that is, modifier_hi ==
|
||||||
|
0x00ffffff and modifier_lo == 0xffffffff) is allowed in this event.
|
||||||
|
It indicates that the server can support the format with an implicit
|
||||||
|
modifier. When a plane has DRM_FORMAT_MOD_INVALID as its modifier, it
|
||||||
|
is as if no explicit modifier is specified. The effective modifier
|
||||||
|
will be derived from the dmabuf.
|
||||||
|
|
||||||
|
For the definition of the format and modifier codes, see the
|
||||||
|
zwp_linux_buffer_params_v1::create and zwp_linux_buffer_params_v1::add
|
||||||
|
requests.
|
||||||
|
</description>
|
||||||
|
<arg name="format" type="uint" summary="DRM_FORMAT code"/>
|
||||||
|
<arg name="modifier_hi" type="uint"
|
||||||
|
summary="high 32 bits of layout modifier"/>
|
||||||
|
<arg name="modifier_lo" type="uint"
|
||||||
|
summary="low 32 bits of layout modifier"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_linux_buffer_params_v1" version="3">
|
||||||
|
<description summary="parameters for creating a dmabuf-based wl_buffer">
|
||||||
|
This temporary object is a collection of dmabufs and other
|
||||||
|
parameters that together form a single logical buffer. The temporary
|
||||||
|
object may eventually create one wl_buffer unless cancelled by
|
||||||
|
destroying it before requesting 'create'.
|
||||||
|
|
||||||
|
Single-planar formats only require one dmabuf, however
|
||||||
|
multi-planar formats may require more than one dmabuf. For all
|
||||||
|
formats, an 'add' request must be called once per plane (even if the
|
||||||
|
underlying dmabuf fd is identical).
|
||||||
|
|
||||||
|
You must use consecutive plane indices ('plane_idx' argument for 'add')
|
||||||
|
from zero to the number of planes used by the drm_fourcc format code.
|
||||||
|
All planes required by the format must be given exactly once, but can
|
||||||
|
be given in any order. Each plane index can be set only once.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="already_used" value="0"
|
||||||
|
summary="the dmabuf_batch object has already been used to create a wl_buffer"/>
|
||||||
|
<entry name="plane_idx" value="1"
|
||||||
|
summary="plane index out of bounds"/>
|
||||||
|
<entry name="plane_set" value="2"
|
||||||
|
summary="the plane index was already set"/>
|
||||||
|
<entry name="incomplete" value="3"
|
||||||
|
summary="missing or too many planes to create a buffer"/>
|
||||||
|
<entry name="invalid_format" value="4"
|
||||||
|
summary="format not supported"/>
|
||||||
|
<entry name="invalid_dimensions" value="5"
|
||||||
|
summary="invalid width or height"/>
|
||||||
|
<entry name="out_of_bounds" value="6"
|
||||||
|
summary="offset + stride * height goes out of dmabuf bounds"/>
|
||||||
|
<entry name="invalid_wl_buffer" value="7"
|
||||||
|
summary="invalid wl_buffer resulted from importing dmabufs via
|
||||||
|
the create_immed request on given buffer_params"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="delete this object, used or not">
|
||||||
|
Cleans up the temporary data sent to the server for dmabuf-based
|
||||||
|
wl_buffer creation.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="add">
|
||||||
|
<description summary="add a dmabuf to the temporary set">
|
||||||
|
This request adds one dmabuf to the set in this
|
||||||
|
zwp_linux_buffer_params_v1.
|
||||||
|
|
||||||
|
The 64-bit unsigned value combined from modifier_hi and modifier_lo
|
||||||
|
is the dmabuf layout modifier. DRM AddFB2 ioctl calls this the
|
||||||
|
fb modifier, which is defined in drm_mode.h of Linux UAPI.
|
||||||
|
This is an opaque token. Drivers use this token to express tiling,
|
||||||
|
compression, etc. driver-specific modifications to the base format
|
||||||
|
defined by the DRM fourcc code.
|
||||||
|
|
||||||
|
Warning: It should be an error if the format/modifier pair was not
|
||||||
|
advertised with the modifier event. This is not enforced yet because
|
||||||
|
some implementations always accept DRM_FORMAT_MOD_INVALID. Also
|
||||||
|
version 2 of this protocol does not have the modifier event.
|
||||||
|
|
||||||
|
This request raises the PLANE_IDX error if plane_idx is too large.
|
||||||
|
The error PLANE_SET is raised if attempting to set a plane that
|
||||||
|
was already set.
|
||||||
|
</description>
|
||||||
|
<arg name="fd" type="fd" summary="dmabuf fd"/>
|
||||||
|
<arg name="plane_idx" type="uint" summary="plane index"/>
|
||||||
|
<arg name="offset" type="uint" summary="offset in bytes"/>
|
||||||
|
<arg name="stride" type="uint" summary="stride in bytes"/>
|
||||||
|
<arg name="modifier_hi" type="uint"
|
||||||
|
summary="high 32 bits of layout modifier"/>
|
||||||
|
<arg name="modifier_lo" type="uint"
|
||||||
|
summary="low 32 bits of layout modifier"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="flags">
|
||||||
|
<entry name="y_invert" value="1" summary="contents are y-inverted"/>
|
||||||
|
<entry name="interlaced" value="2" summary="content is interlaced"/>
|
||||||
|
<entry name="bottom_first" value="4" summary="bottom field first"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="create">
|
||||||
|
<description summary="create a wl_buffer from the given dmabufs">
|
||||||
|
This asks for creation of a wl_buffer from the added dmabuf
|
||||||
|
buffers. The wl_buffer is not created immediately but returned via
|
||||||
|
the 'created' event if the dmabuf sharing succeeds. The sharing
|
||||||
|
may fail at runtime for reasons a client cannot predict, in
|
||||||
|
which case the 'failed' event is triggered.
|
||||||
|
|
||||||
|
The 'format' argument is a DRM_FORMAT code, as defined by the
|
||||||
|
libdrm's drm_fourcc.h. The Linux kernel's DRM sub-system is the
|
||||||
|
authoritative source on how the format codes should work.
|
||||||
|
|
||||||
|
The 'flags' is a bitfield of the flags defined in enum "flags".
|
||||||
|
'y_invert' means the that the image needs to be y-flipped.
|
||||||
|
|
||||||
|
Flag 'interlaced' means that the frame in the buffer is not
|
||||||
|
progressive as usual, but interlaced. An interlaced buffer as
|
||||||
|
supported here must always contain both top and bottom fields.
|
||||||
|
The top field always begins on the first pixel row. The temporal
|
||||||
|
ordering between the two fields is top field first, unless
|
||||||
|
'bottom_first' is specified. It is undefined whether 'bottom_first'
|
||||||
|
is ignored if 'interlaced' is not set.
|
||||||
|
|
||||||
|
This protocol does not convey any information about field rate,
|
||||||
|
duration, or timing, other than the relative ordering between the
|
||||||
|
two fields in one buffer. A compositor may have to estimate the
|
||||||
|
intended field rate from the incoming buffer rate. It is undefined
|
||||||
|
whether the time of receiving wl_surface.commit with a new buffer
|
||||||
|
attached, applying the wl_surface state, wl_surface.frame callback
|
||||||
|
trigger, presentation, or any other point in the compositor cycle
|
||||||
|
is used to measure the frame or field times. There is no support
|
||||||
|
for detecting missed or late frames/fields/buffers either, and
|
||||||
|
there is no support whatsoever for cooperating with interlaced
|
||||||
|
compositor output.
|
||||||
|
|
||||||
|
The composited image quality resulting from the use of interlaced
|
||||||
|
buffers is explicitly undefined. A compositor may use elaborate
|
||||||
|
hardware features or software to deinterlace and create progressive
|
||||||
|
output frames from a sequence of interlaced input buffers, or it
|
||||||
|
may produce substandard image quality. However, compositors that
|
||||||
|
cannot guarantee reasonable image quality in all cases are recommended
|
||||||
|
to just reject all interlaced buffers.
|
||||||
|
|
||||||
|
Any argument errors, including non-positive width or height,
|
||||||
|
mismatch between the number of planes and the format, bad
|
||||||
|
format, bad offset or stride, may be indicated by fatal protocol
|
||||||
|
errors: INCOMPLETE, INVALID_FORMAT, INVALID_DIMENSIONS,
|
||||||
|
OUT_OF_BOUNDS.
|
||||||
|
|
||||||
|
Dmabuf import errors in the server that are not obvious client
|
||||||
|
bugs are returned via the 'failed' event as non-fatal. This
|
||||||
|
allows attempting dmabuf sharing and falling back in the client
|
||||||
|
if it fails.
|
||||||
|
|
||||||
|
This request can be sent only once in the object's lifetime, after
|
||||||
|
which the only legal request is destroy. This object should be
|
||||||
|
destroyed after issuing a 'create' request. Attempting to use this
|
||||||
|
object after issuing 'create' raises ALREADY_USED protocol error.
|
||||||
|
|
||||||
|
It is not mandatory to issue 'create'. If a client wants to
|
||||||
|
cancel the buffer creation, it can just destroy this object.
|
||||||
|
</description>
|
||||||
|
<arg name="width" type="int" summary="base plane width in pixels"/>
|
||||||
|
<arg name="height" type="int" summary="base plane height in pixels"/>
|
||||||
|
<arg name="format" type="uint" summary="DRM_FORMAT code"/>
|
||||||
|
<arg name="flags" type="uint" summary="see enum flags"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="created">
|
||||||
|
<description summary="buffer creation succeeded">
|
||||||
|
This event indicates that the attempted buffer creation was
|
||||||
|
successful. It provides the new wl_buffer referencing the dmabuf(s).
|
||||||
|
|
||||||
|
Upon receiving this event, the client should destroy the
|
||||||
|
zlinux_dmabuf_params object.
|
||||||
|
</description>
|
||||||
|
<arg name="buffer" type="new_id" interface="wl_buffer"
|
||||||
|
summary="the newly created wl_buffer"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="failed">
|
||||||
|
<description summary="buffer creation failed">
|
||||||
|
This event indicates that the attempted buffer creation has
|
||||||
|
failed. It usually means that one of the dmabuf constraints
|
||||||
|
has not been fulfilled.
|
||||||
|
|
||||||
|
Upon receiving this event, the client should destroy the
|
||||||
|
zlinux_buffer_params object.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<request name="create_immed" since="2">
|
||||||
|
<description summary="immediately create a wl_buffer from the given
|
||||||
|
dmabufs">
|
||||||
|
This asks for immediate creation of a wl_buffer by importing the
|
||||||
|
added dmabufs.
|
||||||
|
|
||||||
|
In case of import success, no event is sent from the server, and the
|
||||||
|
wl_buffer is ready to be used by the client.
|
||||||
|
|
||||||
|
Upon import failure, either of the following may happen, as seen fit
|
||||||
|
by the implementation:
|
||||||
|
- the client is terminated with one of the following fatal protocol
|
||||||
|
errors:
|
||||||
|
- INCOMPLETE, INVALID_FORMAT, INVALID_DIMENSIONS, OUT_OF_BOUNDS,
|
||||||
|
in case of argument errors such as mismatch between the number
|
||||||
|
of planes and the format, bad format, non-positive width or
|
||||||
|
height, or bad offset or stride.
|
||||||
|
- INVALID_WL_BUFFER, in case the cause for failure is unknown or
|
||||||
|
plaform specific.
|
||||||
|
- the server creates an invalid wl_buffer, marks it as failed and
|
||||||
|
sends a 'failed' event to the client. The result of using this
|
||||||
|
invalid wl_buffer as an argument in any request by the client is
|
||||||
|
defined by the compositor implementation.
|
||||||
|
|
||||||
|
This takes the same arguments as a 'create' request, and obeys the
|
||||||
|
same restrictions.
|
||||||
|
</description>
|
||||||
|
<arg name="buffer_id" type="new_id" interface="wl_buffer"
|
||||||
|
summary="id for the newly created wl_buffer"/>
|
||||||
|
<arg name="width" type="int" summary="base plane width in pixels"/>
|
||||||
|
<arg name="height" type="int" summary="base plane height in pixels"/>
|
||||||
|
<arg name="format" type="uint" summary="DRM_FORMAT code"/>
|
||||||
|
<arg name="flags" type="uint" summary="see enum flags"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
18
src/3rdparty/wayland/protocols/linux-dmabuf/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/linux-dmabuf/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-linux-dmabuf-unstable-v1",
|
||||||
|
"Name": "Wayland Linux Dmabuf Unstable V1 Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor",
|
||||||
|
"Files": "linux-dmabuf-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The linux dmabuf protocol is a way to create dmabuf-based wl_buffers",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1, version 3",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2014, 2015 Collabora, Ltd."
|
||||||
|
}
|
||||||
|
]
|
7
src/3rdparty/wayland/protocols/pointer-gestures/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/pointer-gestures/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "pointer-gestures-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2015, 2016 Red Hat"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
186
src/3rdparty/wayland/protocols/pointer-gestures/pointer-gestures-unstable-v1.xml
vendored
Normal file
186
src/3rdparty/wayland/protocols/pointer-gestures/pointer-gestures-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="pointer_gestures_unstable_v1">
|
||||||
|
|
||||||
|
<interface name="zwp_pointer_gestures_v1" version="2">
|
||||||
|
<description summary="touchpad gestures">
|
||||||
|
A global interface to provide semantic touchpad gestures for a given
|
||||||
|
pointer.
|
||||||
|
|
||||||
|
Two gestures are currently supported: swipe and zoom/rotate.
|
||||||
|
All gestures follow a three-stage cycle: begin, update, end and
|
||||||
|
are identified by a unique id.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="get_swipe_gesture">
|
||||||
|
<description summary="get swipe gesture">
|
||||||
|
Create a swipe gesture object. See the
|
||||||
|
wl_pointer_gesture_swipe interface for details.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_pointer_gesture_swipe_v1"/>
|
||||||
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_pinch_gesture">
|
||||||
|
<description summary="get pinch gesture">
|
||||||
|
Create a pinch gesture object. See the
|
||||||
|
wl_pointer_gesture_pinch interface for details.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_pointer_gesture_pinch_v1"/>
|
||||||
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<!-- Version 2 additions -->
|
||||||
|
|
||||||
|
<request name="release" type="destructor" since="2">
|
||||||
|
<description summary="destroy the pointer gesture object">
|
||||||
|
Destroy the pointer gesture object. Swipe and pinch objects created via this
|
||||||
|
gesture object remain valid.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_pointer_gesture_swipe_v1" version="2">
|
||||||
|
<description summary="a swipe gesture object">
|
||||||
|
A swipe gesture object notifies a client about a multi-finger swipe
|
||||||
|
gesture detected on an indirect input device such as a touchpad.
|
||||||
|
The gesture is usually initiated by multiple fingers moving in the
|
||||||
|
same direction but once initiated the direction may change.
|
||||||
|
The precise conditions of when such a gesture is detected are
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture consists of three stages: begin, update (optional) and end.
|
||||||
|
There cannot be multiple simultaneous pinch or swipe gestures on a
|
||||||
|
same pointer/seat, how compositors prevent these situations is
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture may be cancelled by the compositor or the hardware.
|
||||||
|
Clients should not consider performing permanent or irreversible
|
||||||
|
actions until the end of a gesture has been received.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the pointer swipe gesture object"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="begin">
|
||||||
|
<description summary="multi-finger swipe begin">
|
||||||
|
This event is sent when a multi-finger swipe gesture is detected
|
||||||
|
on the device.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
<arg name="fingers" type="uint" summary="number of fingers"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="update">
|
||||||
|
<description summary="multi-finger swipe motion">
|
||||||
|
This event is sent when a multi-finger swipe gesture changes the
|
||||||
|
position of the logical center.
|
||||||
|
|
||||||
|
The dx and dy coordinates are relative coordinates of the logical
|
||||||
|
center of the gesture compared to the previous event.
|
||||||
|
</description>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/>
|
||||||
|
<arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="end">
|
||||||
|
<description summary="multi-finger swipe end">
|
||||||
|
This event is sent when a multi-finger swipe gesture ceases to
|
||||||
|
be valid. This may happen when one or more fingers are lifted or
|
||||||
|
the gesture is cancelled.
|
||||||
|
|
||||||
|
When a gesture is cancelled, the client should undo state changes
|
||||||
|
caused by this gesture. What causes a gesture to be cancelled is
|
||||||
|
implementation-dependent.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_pointer_gesture_pinch_v1" version="2">
|
||||||
|
<description summary="a pinch gesture object">
|
||||||
|
A pinch gesture object notifies a client about a multi-finger pinch
|
||||||
|
gesture detected on an indirect input device such as a touchpad.
|
||||||
|
The gesture is usually initiated by multiple fingers moving towards
|
||||||
|
each other or away from each other, or by two or more fingers rotating
|
||||||
|
around a logical center of gravity. The precise conditions of when
|
||||||
|
such a gesture is detected are implementation-dependent.
|
||||||
|
|
||||||
|
A gesture consists of three stages: begin, update (optional) and end.
|
||||||
|
There cannot be multiple simultaneous pinch or swipe gestures on a
|
||||||
|
same pointer/seat, how compositors prevent these situations is
|
||||||
|
implementation-dependent.
|
||||||
|
|
||||||
|
A gesture may be cancelled by the compositor or the hardware.
|
||||||
|
Clients should not consider performing permanent or irreversible
|
||||||
|
actions until the end of a gesture has been received.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the pinch gesture object"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="begin">
|
||||||
|
<description summary="multi-finger pinch begin">
|
||||||
|
This event is sent when a multi-finger pinch gesture is detected
|
||||||
|
on the device.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
<arg name="fingers" type="uint" summary="number of fingers"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="update">
|
||||||
|
<description summary="multi-finger pinch motion">
|
||||||
|
This event is sent when a multi-finger pinch gesture changes the
|
||||||
|
position of the logical center, the rotation or the relative scale.
|
||||||
|
|
||||||
|
The dx and dy coordinates are relative coordinates in the
|
||||||
|
surface coordinate space of the logical center of the gesture.
|
||||||
|
|
||||||
|
The scale factor is an absolute scale compared to the
|
||||||
|
pointer_gesture_pinch.begin event, e.g. a scale of 2 means the fingers
|
||||||
|
are now twice as far apart as on pointer_gesture_pinch.begin.
|
||||||
|
|
||||||
|
The rotation is the relative angle in degrees clockwise compared to the previous
|
||||||
|
pointer_gesture_pinch.begin or pointer_gesture_pinch.update event.
|
||||||
|
</description>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="dx" type="fixed" summary="delta x coordinate in surface coordinate space"/>
|
||||||
|
<arg name="dy" type="fixed" summary="delta y coordinate in surface coordinate space"/>
|
||||||
|
<arg name="scale" type="fixed" summary="scale relative to the initial finger position"/>
|
||||||
|
<arg name="rotation" type="fixed" summary="angle in degrees cw relative to the previous event"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="end">
|
||||||
|
<description summary="multi-finger pinch end">
|
||||||
|
This event is sent when a multi-finger pinch gesture ceases to
|
||||||
|
be valid. This may happen when one or more fingers are lifted or
|
||||||
|
the gesture is cancelled.
|
||||||
|
|
||||||
|
When a gesture is cancelled, the client should undo state changes
|
||||||
|
caused by this gesture. What causes a gesture to be cancelled is
|
||||||
|
implementation-dependent.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||||
|
<arg name="cancelled" type="int" summary="1 if the gesture was cancelled, 0 otherwise"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
18
src/3rdparty/wayland/protocols/pointer-gestures/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/pointer-gestures/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-pointer-gestures-protocol",
|
||||||
|
"Name": "Wayland Pointer Gestures Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "pointer-gestures-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1, version 2",
|
||||||
|
"DownloadLocation": "https://cgit.freedesktop.org/wayland/wayland-protocols/plain/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2015, 2016 Red Hat"
|
||||||
|
}
|
||||||
|
]
|
7
src/3rdparty/wayland/protocols/presentation-time/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/presentation-time/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "presentation-time.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2013, 2014 Collabora, Ltd."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
266
src/3rdparty/wayland/protocols/presentation-time/presentation-time.xml
vendored
Normal file
266
src/3rdparty/wayland/protocols/presentation-time/presentation-time.xml
vendored
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="presentation_time">
|
||||||
|
<!-- wrap:70 -->
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2013-2014 Collabora, 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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="wp_presentation" version="1">
|
||||||
|
<description summary="timed presentation related wl_surface requests">
|
||||||
|
|
||||||
|
<!-- Introduction -->
|
||||||
|
|
||||||
|
The main feature of this interface is accurate presentation
|
||||||
|
timing feedback to ensure smooth video playback while maintaining
|
||||||
|
audio/video synchronization. Some features use the concept of a
|
||||||
|
presentation clock, which is defined in the
|
||||||
|
presentation.clock_id event.
|
||||||
|
|
||||||
|
A content update for a wl_surface is submitted by a
|
||||||
|
wl_surface.commit request. Request 'feedback' associates with
|
||||||
|
the wl_surface.commit and provides feedback on the content
|
||||||
|
update, particularly the final realized presentation time.
|
||||||
|
|
||||||
|
<!-- Completing presentation -->
|
||||||
|
|
||||||
|
When the final realized presentation time is available, e.g.
|
||||||
|
after a framebuffer flip completes, the requested
|
||||||
|
presentation_feedback.presented events are sent. The final
|
||||||
|
presentation time can differ from the compositor's predicted
|
||||||
|
display update time and the update's target time, especially
|
||||||
|
when the compositor misses its target vertical blanking period.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<description summary="fatal presentation errors">
|
||||||
|
These fatal protocol errors may be emitted in response to
|
||||||
|
illegal presentation requests.
|
||||||
|
</description>
|
||||||
|
<entry name="invalid_timestamp" value="0"
|
||||||
|
summary="invalid value in tv_nsec"/>
|
||||||
|
<entry name="invalid_flag" value="1"
|
||||||
|
summary="invalid flag"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unbind from the presentation interface">
|
||||||
|
Informs the server that the client will no longer be using
|
||||||
|
this protocol object. Existing objects created by this object
|
||||||
|
are not affected.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="feedback">
|
||||||
|
<description summary="request presentation feedback information">
|
||||||
|
Request presentation feedback for the current content submission
|
||||||
|
on the given surface. This creates a new presentation_feedback
|
||||||
|
object, which will deliver the feedback information once. If
|
||||||
|
multiple presentation_feedback objects are created for the same
|
||||||
|
submission, they will all deliver the same information.
|
||||||
|
|
||||||
|
For details on what information is returned, see the
|
||||||
|
presentation_feedback interface.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="target surface"/>
|
||||||
|
<arg name="callback" type="new_id" interface="wp_presentation_feedback"
|
||||||
|
summary="new feedback object"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="clock_id">
|
||||||
|
<description summary="clock ID for timestamps">
|
||||||
|
This event tells the client in which clock domain the
|
||||||
|
compositor interprets the timestamps used by the presentation
|
||||||
|
extension. This clock is called the presentation clock.
|
||||||
|
|
||||||
|
The compositor sends this event when the client binds to the
|
||||||
|
presentation interface. The presentation clock does not change
|
||||||
|
during the lifetime of the client connection.
|
||||||
|
|
||||||
|
The clock identifier is platform dependent. On Linux/glibc,
|
||||||
|
the identifier value is one of the clockid_t values accepted
|
||||||
|
by clock_gettime(). clock_gettime() is defined by
|
||||||
|
POSIX.1-2001.
|
||||||
|
|
||||||
|
Timestamps in this clock domain are expressed as tv_sec_hi,
|
||||||
|
tv_sec_lo, tv_nsec triples, each component being an unsigned
|
||||||
|
32-bit value. Whole seconds are in tv_sec which is a 64-bit
|
||||||
|
value combined from tv_sec_hi and tv_sec_lo, and the
|
||||||
|
additional fractional part in tv_nsec as nanoseconds. Hence,
|
||||||
|
for valid timestamps tv_nsec must be in [0, 999999999].
|
||||||
|
|
||||||
|
Note that clock_id applies only to the presentation clock,
|
||||||
|
and implies nothing about e.g. the timestamps used in the
|
||||||
|
Wayland core protocol input events.
|
||||||
|
|
||||||
|
Compositors should prefer a clock which does not jump and is
|
||||||
|
not slewed e.g. by NTP. The absolute value of the clock is
|
||||||
|
irrelevant. Precision of one millisecond or better is
|
||||||
|
recommended. Clients must be able to query the current clock
|
||||||
|
value directly, not by asking the compositor.
|
||||||
|
</description>
|
||||||
|
<arg name="clk_id" type="uint" summary="platform clock identifier"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="wp_presentation_feedback" version="1">
|
||||||
|
<description summary="presentation time feedback event">
|
||||||
|
A presentation_feedback object returns an indication that a
|
||||||
|
wl_surface content update has become visible to the user.
|
||||||
|
One object corresponds to one content update submission
|
||||||
|
(wl_surface.commit). There are two possible outcomes: the
|
||||||
|
content update is presented to the user, and a presentation
|
||||||
|
timestamp delivered; or, the user did not see the content
|
||||||
|
update because it was superseded or its surface destroyed,
|
||||||
|
and the content update is discarded.
|
||||||
|
|
||||||
|
Once a presentation_feedback object has delivered a 'presented'
|
||||||
|
or 'discarded' event it is automatically destroyed.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<event name="sync_output">
|
||||||
|
<description summary="presentation synchronized to this output">
|
||||||
|
As presentation can be synchronized to only one output at a
|
||||||
|
time, this event tells which output it was. This event is only
|
||||||
|
sent prior to the presented event.
|
||||||
|
|
||||||
|
As clients may bind to the same global wl_output multiple
|
||||||
|
times, this event is sent for each bound instance that matches
|
||||||
|
the synchronized output. If a client has not bound to the
|
||||||
|
right wl_output global at all, this event is not sent.
|
||||||
|
</description>
|
||||||
|
<arg name="output" type="object" interface="wl_output"
|
||||||
|
summary="presentation output"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="kind" bitfield="true">
|
||||||
|
<description summary="bitmask of flags in presented event">
|
||||||
|
These flags provide information about how the presentation of
|
||||||
|
the related content update was done. The intent is to help
|
||||||
|
clients assess the reliability of the feedback and the visual
|
||||||
|
quality with respect to possible tearing and timings. The
|
||||||
|
flags are:
|
||||||
|
|
||||||
|
VSYNC:
|
||||||
|
The presentation was synchronized to the "vertical retrace" by
|
||||||
|
the display hardware such that tearing does not happen.
|
||||||
|
Relying on user space scheduling is not acceptable for this
|
||||||
|
flag. If presentation is done by a copy to the active
|
||||||
|
frontbuffer, then it must guarantee that tearing cannot
|
||||||
|
happen.
|
||||||
|
|
||||||
|
HW_CLOCK:
|
||||||
|
The display hardware provided measurements that the hardware
|
||||||
|
driver converted into a presentation timestamp. Sampling a
|
||||||
|
clock in user space is not acceptable for this flag.
|
||||||
|
|
||||||
|
HW_COMPLETION:
|
||||||
|
The display hardware signalled that it started using the new
|
||||||
|
image content. The opposite of this is e.g. a timer being used
|
||||||
|
to guess when the display hardware has switched to the new
|
||||||
|
image content.
|
||||||
|
|
||||||
|
ZERO_COPY:
|
||||||
|
The presentation of this update was done zero-copy. This means
|
||||||
|
the buffer from the client was given to display hardware as
|
||||||
|
is, without copying it. Compositing with OpenGL counts as
|
||||||
|
copying, even if textured directly from the client buffer.
|
||||||
|
Possible zero-copy cases include direct scanout of a
|
||||||
|
fullscreen surface and a surface on a hardware overlay.
|
||||||
|
</description>
|
||||||
|
<entry name="vsync" value="0x1" summary="presentation was vsync'd"/>
|
||||||
|
<entry name="hw_clock" value="0x2"
|
||||||
|
summary="hardware provided the presentation timestamp"/>
|
||||||
|
<entry name="hw_completion" value="0x4"
|
||||||
|
summary="hardware signalled the start of the presentation"/>
|
||||||
|
<entry name="zero_copy" value="0x8"
|
||||||
|
summary="presentation was done zero-copy"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="presented">
|
||||||
|
<description summary="the content update was displayed">
|
||||||
|
The associated content update was displayed to the user at the
|
||||||
|
indicated time (tv_sec_hi/lo, tv_nsec). For the interpretation of
|
||||||
|
the timestamp, see presentation.clock_id event.
|
||||||
|
|
||||||
|
The timestamp corresponds to the time when the content update
|
||||||
|
turned into light the first time on the surface's main output.
|
||||||
|
Compositors may approximate this from the framebuffer flip
|
||||||
|
completion events from the system, and the latency of the
|
||||||
|
physical display path if known.
|
||||||
|
|
||||||
|
This event is preceded by all related sync_output events
|
||||||
|
telling which output's refresh cycle the feedback corresponds
|
||||||
|
to, i.e. the main output for the surface. Compositors are
|
||||||
|
recommended to choose the output containing the largest part
|
||||||
|
of the wl_surface, or keeping the output they previously
|
||||||
|
chose. Having a stable presentation output association helps
|
||||||
|
clients predict future output refreshes (vblank).
|
||||||
|
|
||||||
|
The 'refresh' argument gives the compositor's prediction of how
|
||||||
|
many nanoseconds after tv_sec, tv_nsec the very next output
|
||||||
|
refresh may occur. This is to further aid clients in
|
||||||
|
predicting future refreshes, i.e., estimating the timestamps
|
||||||
|
targeting the next few vblanks. If such prediction cannot
|
||||||
|
usefully be done, the argument is zero.
|
||||||
|
|
||||||
|
If the output does not have a constant refresh rate, explicit
|
||||||
|
video mode switches excluded, then the refresh argument must
|
||||||
|
be zero.
|
||||||
|
|
||||||
|
The 64-bit value combined from seq_hi and seq_lo is the value
|
||||||
|
of the output's vertical retrace counter when the content
|
||||||
|
update was first scanned out to the display. This value must
|
||||||
|
be compatible with the definition of MSC in
|
||||||
|
GLX_OML_sync_control specification. Note, that if the display
|
||||||
|
path has a non-zero latency, the time instant specified by
|
||||||
|
this counter may differ from the timestamp's.
|
||||||
|
|
||||||
|
If the output does not have a concept of vertical retrace or a
|
||||||
|
refresh cycle, or the output device is self-refreshing without
|
||||||
|
a way to query the refresh count, then the arguments seq_hi
|
||||||
|
and seq_lo must be zero.
|
||||||
|
</description>
|
||||||
|
<arg name="tv_sec_hi" type="uint"
|
||||||
|
summary="high 32 bits of the seconds part of the presentation timestamp"/>
|
||||||
|
<arg name="tv_sec_lo" type="uint"
|
||||||
|
summary="low 32 bits of the seconds part of the presentation timestamp"/>
|
||||||
|
<arg name="tv_nsec" type="uint"
|
||||||
|
summary="nanoseconds part of the presentation timestamp"/>
|
||||||
|
<arg name="refresh" type="uint" summary="nanoseconds till next refresh"/>
|
||||||
|
<arg name="seq_hi" type="uint"
|
||||||
|
summary="high 32 bits of refresh counter"/>
|
||||||
|
<arg name="seq_lo" type="uint"
|
||||||
|
summary="low 32 bits of refresh counter"/>
|
||||||
|
<arg name="flags" type="uint" enum="kind" summary="combination of 'kind' values"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="discarded">
|
||||||
|
<description summary="the content update was not displayed">
|
||||||
|
The content update was never displayed to the user.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
18
src/3rdparty/wayland/protocols/presentation-time/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/presentation-time/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "presentation-time.xml",
|
||||||
|
"Name": "Presentation Time Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor",
|
||||||
|
"Files": "presentation-time.xml",
|
||||||
|
|
||||||
|
"Description": "The presentaton time protocol is a way to get presentation timing feedback.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/stable/presentation-time/presentation-time.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2013, 2014 Collabora, Ltd."
|
||||||
|
}
|
||||||
|
]
|
7
src/3rdparty/wayland/protocols/scaler/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/scaler/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "scaler.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2013-2014 Collabora, Ltd."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/scaler/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/scaler/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-scaler-protocol",
|
||||||
|
"Name": "Wayland Scaler Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor API",
|
||||||
|
"Files": "scaler.xml",
|
||||||
|
|
||||||
|
"Description": "The Wayland scaler extension allows a client to scale or crop a surface without modifying the buffer",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "2",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/weston/raw/1.11/protocol/scaler.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2013-2014 Collabora, Ltd."
|
||||||
|
}
|
||||||
|
]
|
208
src/3rdparty/wayland/protocols/scaler/scaler.xml
vendored
Normal file
208
src/3rdparty/wayland/protocols/scaler/scaler.xml
vendored
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="scaler">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2013-2014 Collabora, 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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="wl_scaler" version="2">
|
||||||
|
<description summary="surface cropping and scaling">
|
||||||
|
The global interface exposing surface cropping and scaling
|
||||||
|
capabilities is used to instantiate an interface extension for a
|
||||||
|
wl_surface object. This extended interface will then allow
|
||||||
|
cropping and scaling the surface contents, effectively
|
||||||
|
disconnecting the direct relationship between the buffer and the
|
||||||
|
surface size.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unbind from the cropping and scaling interface">
|
||||||
|
Informs the server that the client will not be using this
|
||||||
|
protocol object anymore. This does not affect any other objects,
|
||||||
|
wl_viewport objects included.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="viewport_exists" value="0"
|
||||||
|
summary="the surface already has a viewport object associated"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="get_viewport">
|
||||||
|
<description summary="extend surface interface for crop and scale">
|
||||||
|
Instantiate an interface extension for the given wl_surface to
|
||||||
|
crop and scale its content. If the given wl_surface already has
|
||||||
|
a wl_viewport object associated, the viewport_exists
|
||||||
|
protocol error is raised.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="id" type="new_id" interface="wl_viewport"
|
||||||
|
summary="the new viewport interface id"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the surface"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="wl_viewport" version="2">
|
||||||
|
<description summary="crop and scale interface to a wl_surface">
|
||||||
|
An additional interface to a wl_surface object, which allows the
|
||||||
|
client to specify the cropping and scaling of the surface
|
||||||
|
contents.
|
||||||
|
|
||||||
|
This interface allows to define the source rectangle (src_x,
|
||||||
|
src_y, src_width, src_height) from where to take the wl_buffer
|
||||||
|
contents, and scale that to destination size (dst_width,
|
||||||
|
dst_height). This state is double-buffered, and is applied on the
|
||||||
|
next wl_surface.commit.
|
||||||
|
|
||||||
|
The two parts of crop and scale state are independent: the source
|
||||||
|
rectangle, and the destination size. Initially both are unset, that
|
||||||
|
is, no scaling is applied. The whole of the current wl_buffer is
|
||||||
|
used as the source, and the surface size is as defined in
|
||||||
|
wl_surface.attach.
|
||||||
|
|
||||||
|
If the destination size is set, it causes the surface size to become
|
||||||
|
dst_width, dst_height. The source (rectangle) is scaled to exactly
|
||||||
|
this size. This overrides whatever the attached wl_buffer size is,
|
||||||
|
unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface
|
||||||
|
has no content and therefore no size. Otherwise, the size is always
|
||||||
|
at least 1x1 in surface coordinates.
|
||||||
|
|
||||||
|
If the source rectangle is set, it defines what area of the
|
||||||
|
wl_buffer is taken as the source. If the source rectangle is set and
|
||||||
|
the destination size is not set, the surface size becomes the source
|
||||||
|
rectangle size rounded up to the nearest integer. If the source size
|
||||||
|
is already exactly integers, this results in cropping without scaling.
|
||||||
|
|
||||||
|
The coordinate transformations from buffer pixel coordinates up to
|
||||||
|
the surface-local coordinates happen in the following order:
|
||||||
|
1. buffer_transform (wl_surface.set_buffer_transform)
|
||||||
|
2. buffer_scale (wl_surface.set_buffer_scale)
|
||||||
|
3. crop and scale (wl_viewport.set*)
|
||||||
|
This means, that the source rectangle coordinates of crop and scale
|
||||||
|
are given in the coordinates after the buffer transform and scale,
|
||||||
|
i.e. in the coordinates that would be the surface-local coordinates
|
||||||
|
if the crop and scale was not applied.
|
||||||
|
|
||||||
|
If the source rectangle is partially or completely outside of the
|
||||||
|
wl_buffer, then the surface contents are undefined (not void), and
|
||||||
|
the surface size is still dst_width, dst_height.
|
||||||
|
|
||||||
|
The x, y arguments of wl_surface.attach are applied as normal to
|
||||||
|
the surface. They indicate how many pixels to remove from the
|
||||||
|
surface size from the left and the top. In other words, they are
|
||||||
|
still in the surface-local coordinate system, just like dst_width
|
||||||
|
and dst_height are.
|
||||||
|
|
||||||
|
If the wl_surface associated with the wl_viewport is destroyed,
|
||||||
|
the wl_viewport object becomes inert.
|
||||||
|
|
||||||
|
If the wl_viewport object is destroyed, the crop and scale
|
||||||
|
state is removed from the wl_surface. The change will be applied
|
||||||
|
on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="remove scaling and cropping from the surface">
|
||||||
|
The associated wl_surface's crop and scale state is removed.
|
||||||
|
The change is applied on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="bad_value" value="0"
|
||||||
|
summary="negative or zero values in width or height"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set">
|
||||||
|
<description summary="set the crop and scale state">
|
||||||
|
Set both source rectangle and destination size of the associated
|
||||||
|
wl_surface. See wl_viewport for the description, and relation to
|
||||||
|
the wl_buffer size.
|
||||||
|
|
||||||
|
The bad_value protocol error is raised if src_width or
|
||||||
|
src_height is negative, or if dst_width or dst_height is not
|
||||||
|
positive.
|
||||||
|
|
||||||
|
The crop and scale state is double-buffered state, and will be
|
||||||
|
applied on the next wl_surface.commit.
|
||||||
|
|
||||||
|
Arguments dst_x and dst_y do not exist here, use the x and y
|
||||||
|
arguments to wl_surface.attach. The x, y, dst_width, and dst_height
|
||||||
|
define the surface-local coordinate system irrespective of the
|
||||||
|
attached wl_buffer size.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="src_x" type="fixed" summary="source rectangle x"/>
|
||||||
|
<arg name="src_y" type="fixed" summary="source rectangle y"/>
|
||||||
|
<arg name="src_width" type="fixed" summary="source rectangle width"/>
|
||||||
|
<arg name="src_height" type="fixed" summary="source rectangle height"/>
|
||||||
|
<arg name="dst_width" type="int" summary="surface width"/>
|
||||||
|
<arg name="dst_height" type="int" summary="surface height"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_source" since="2">
|
||||||
|
<description summary="set the source rectangle for cropping">
|
||||||
|
Set the source rectangle of the associated wl_surface. See
|
||||||
|
wl_viewport for the description, and relation to the wl_buffer
|
||||||
|
size.
|
||||||
|
|
||||||
|
If width is -1.0 and height is -1.0, the source rectangle is unset
|
||||||
|
instead. Any other pair of values for width and height that
|
||||||
|
contains zero or negative values raises the bad_value protocol
|
||||||
|
error.
|
||||||
|
|
||||||
|
The crop and scale state is double-buffered state, and will be
|
||||||
|
applied on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="x" type="fixed" summary="source rectangle x"/>
|
||||||
|
<arg name="y" type="fixed" summary="source rectangle y"/>
|
||||||
|
<arg name="width" type="fixed" summary="source rectangle width"/>
|
||||||
|
<arg name="height" type="fixed" summary="source rectangle height"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_destination" since="2">
|
||||||
|
<description summary="set the surface size for scaling">
|
||||||
|
Set the destination size of the associated wl_surface. See
|
||||||
|
wl_viewport for the description, and relation to the wl_buffer
|
||||||
|
size.
|
||||||
|
|
||||||
|
If width is -1 and height is -1, the destination size is unset
|
||||||
|
instead. Any other pair of values for width and height that
|
||||||
|
contains zero or negative values raises the bad_value protocol
|
||||||
|
error.
|
||||||
|
|
||||||
|
The crop and scale state is double-buffered state, and will be
|
||||||
|
applied on the next wl_surface.commit.
|
||||||
|
|
||||||
|
Arguments x and y do not exist here, use the x and y arguments to
|
||||||
|
wl_surface.attach. The x, y, width, and height define the
|
||||||
|
surface-local coordinate system irrespective of the attached
|
||||||
|
wl_buffer size.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="width" type="int" summary="surface width"/>
|
||||||
|
<arg name="height" type="int" summary="surface height"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
8
src/3rdparty/wayland/protocols/tablet/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/protocols/tablet/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "tablet-unstable-v2.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2014 Stephen \"Lyude\" Chandler Paul",
|
||||||
|
"Copyright 2015-2016 Red Hat, Inc."]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/tablet/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/tablet/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-tablet-protocol",
|
||||||
|
"Name": "Wayland Tablet Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "tablet-unstable-v2.xml",
|
||||||
|
|
||||||
|
"Description": "",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v2, version 1",
|
||||||
|
"DownloadLocation": "https://cgit.freedesktop.org/wayland/wayland-protocols/plain/unstable/tablet/tablet-unstable-v2.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright 2014 © Stephen \"Lyude\" Chandler Paul\nCopyright 2015-2016 © Red Hat, Inc."
|
||||||
|
}
|
||||||
|
]
|
1178
src/3rdparty/wayland/protocols/tablet/tablet-unstable-v2.xml
vendored
Normal file
1178
src/3rdparty/wayland/protocols/tablet/tablet-unstable-v2.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
src/3rdparty/wayland/protocols/text-input/v1/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/text-input/v1/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "text-input-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2012, 2013 Intel Corporation"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/text-input/v1/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/text-input/v1/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-text-input-unstable-v1",
|
||||||
|
"Name": "Wayland Text Input Protocol v1",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "text-input-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "Adds support for text input and input methods to applications running on Wayland servers that only support text-input-unstable-v1.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/unstable/text-input/text-input-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2012, 2013 Intel Corporation"
|
||||||
|
}
|
||||||
|
]
|
385
src/3rdparty/wayland/protocols/text-input/v1/text-input-unstable-v1.xml
vendored
Normal file
385
src/3rdparty/wayland/protocols/text-input/v1/text-input-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,385 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="text_input_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_v1" version="1">
|
||||||
|
<description summary="text input">
|
||||||
|
An object used for text input. Adds support for text input and input
|
||||||
|
methods to applications. A text_input object is created from a
|
||||||
|
wl_text_input_manager and corresponds typically to a text entry in an
|
||||||
|
application.
|
||||||
|
|
||||||
|
Requests are used to activate/deactivate the text_input object and set
|
||||||
|
state information like surrounding and selected text or the content type.
|
||||||
|
The information about entered text is sent to the text_input object via
|
||||||
|
the pre-edit and commit events. Using this interface removes the need
|
||||||
|
for applications to directly process hardware key events and compose text
|
||||||
|
out of them.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="activate">
|
||||||
|
<description summary="request activation">
|
||||||
|
Requests the text_input object to be activated (typically when the
|
||||||
|
text entry gets focus).
|
||||||
|
|
||||||
|
The seat argument is a wl_seat which maintains the focus for this
|
||||||
|
activation. The surface argument is a wl_surface assigned to the
|
||||||
|
text_input object and tracked for focus lost. The enter event
|
||||||
|
is emitted on successful activation.
|
||||||
|
</description>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="deactivate">
|
||||||
|
<description summary="request deactivation">
|
||||||
|
Requests the text_input object to be deactivated (typically when the
|
||||||
|
text entry lost focus). The seat argument is a wl_seat which was used
|
||||||
|
for activation.
|
||||||
|
</description>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="show_input_panel">
|
||||||
|
<description summary="show input panels">
|
||||||
|
Requests input panels (virtual keyboard) to show.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="hide_input_panel">
|
||||||
|
<description summary="hide input panels">
|
||||||
|
Requests input panels (virtual keyboard) to hide.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="reset">
|
||||||
|
<description summary="reset">
|
||||||
|
Should be called by an editor widget when the input state should be
|
||||||
|
reset, for example after the text was changed outside of the normal
|
||||||
|
input method flow.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_surrounding_text">
|
||||||
|
<description summary="sets the surrounding text">
|
||||||
|
Sets the plain surrounding text around the input position. Text is
|
||||||
|
UTF-8 encoded. Cursor is the byte offset within the
|
||||||
|
surrounding text. Anchor is the byte offset of the
|
||||||
|
selection anchor within the surrounding text. If there is no selected
|
||||||
|
text anchor, then it is the same as cursor.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
<arg name="cursor" type="uint"/>
|
||||||
|
<arg name="anchor" type="uint"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="content_hint" bitfield="true">
|
||||||
|
<description summary="content hint">
|
||||||
|
Content hint is a bitmask to allow to modify the behavior of the text
|
||||||
|
input.
|
||||||
|
</description>
|
||||||
|
<entry name="none" value="0x0" summary="no special behaviour"/>
|
||||||
|
<entry name="default" value="0x7" summary="auto completion, correction and capitalization"/>
|
||||||
|
<entry name="password" value="0xc0" summary="hidden and sensitive text"/>
|
||||||
|
<entry name="auto_completion" value="0x1" summary="suggest word completions"/>
|
||||||
|
<entry name="auto_correction" value="0x2" summary="suggest word corrections"/>
|
||||||
|
<entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
|
||||||
|
<entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
|
||||||
|
<entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
|
||||||
|
<entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependent)"/>
|
||||||
|
<entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
|
||||||
|
<entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
|
||||||
|
<entry name="latin" value="0x100" summary="just latin characters should be entered"/>
|
||||||
|
<entry name="multiline" value="0x200" summary="the text input is multiline"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<enum name="content_purpose">
|
||||||
|
<description summary="content purpose">
|
||||||
|
The content purpose allows to specify the primary purpose of a text
|
||||||
|
input.
|
||||||
|
|
||||||
|
This allows an input method to show special purpose input panels with
|
||||||
|
extra characters or to disallow some characters.
|
||||||
|
</description>
|
||||||
|
<entry name="normal" value="0" summary="default input, allowing all characters"/>
|
||||||
|
<entry name="alpha" value="1" summary="allow only alphabetic characters"/>
|
||||||
|
<entry name="digits" value="2" summary="allow only digits"/>
|
||||||
|
<entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
|
||||||
|
<entry name="phone" value="4" summary="input a phone number"/>
|
||||||
|
<entry name="url" value="5" summary="input an URL"/>
|
||||||
|
<entry name="email" value="6" summary="input an email address"/>
|
||||||
|
<entry name="name" value="7" summary="input a name of a person"/>
|
||||||
|
<entry name="password" value="8" summary="input a password (combine with password or sensitive_data hint)"/>
|
||||||
|
<entry name="date" value="9" summary="input a date"/>
|
||||||
|
<entry name="time" value="10" summary="input a time"/>
|
||||||
|
<entry name="datetime" value="11" summary="input a date and time"/>
|
||||||
|
<entry name="terminal" value="12" summary="input for a terminal"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_content_type">
|
||||||
|
<description summary="set content purpose and hint">
|
||||||
|
Sets the content purpose and content hint. While the purpose is the
|
||||||
|
basic purpose of an input field, the hint flags allow to modify some
|
||||||
|
of the behavior.
|
||||||
|
|
||||||
|
When no content type is explicitly set, a normal content purpose with
|
||||||
|
default hints (auto completion, auto correction, auto capitalization)
|
||||||
|
should be assumed.
|
||||||
|
</description>
|
||||||
|
<arg name="hint" type="uint" enum="content_hint" />
|
||||||
|
<arg name="purpose" type="uint" enum="content_purpose" />
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_cursor_rectangle">
|
||||||
|
<arg name="x" type="int"/>
|
||||||
|
<arg name="y" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_preferred_language">
|
||||||
|
<description summary="sets preferred language">
|
||||||
|
Sets a specific language. This allows for example a virtual keyboard to
|
||||||
|
show a language specific layout. The "language" argument is an RFC-3066
|
||||||
|
format language tag.
|
||||||
|
|
||||||
|
It could be used for example in a word processor to indicate the
|
||||||
|
language of the currently edited document or in an instant message
|
||||||
|
application which tracks languages of contacts.
|
||||||
|
</description>
|
||||||
|
<arg name="language" type="string"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="commit_state">
|
||||||
|
<arg name="serial" type="uint" summary="used to identify the known state"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="invoke_action">
|
||||||
|
<arg name="button" type="uint"/>
|
||||||
|
<arg name="index" type="uint"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="enter">
|
||||||
|
<description summary="enter event">
|
||||||
|
Notify the text_input object when it received focus. Typically in
|
||||||
|
response to an activate request.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="leave">
|
||||||
|
<description summary="leave event">
|
||||||
|
Notify the text_input object when it lost focus. Either in response
|
||||||
|
to a deactivate request or when the assigned surface lost focus or was
|
||||||
|
destroyed.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="modifiers_map">
|
||||||
|
<description summary="modifiers map">
|
||||||
|
Transfer an array of 0-terminated modifier names. The position in
|
||||||
|
the array is the index of the modifier as used in the modifiers
|
||||||
|
bitmask in the keysym event.
|
||||||
|
</description>
|
||||||
|
<arg name="map" type="array"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="input_panel_state">
|
||||||
|
<description summary="state of the input panel">
|
||||||
|
Notify when the visibility state of the input panel changed.
|
||||||
|
</description>
|
||||||
|
<arg name="state" type="uint"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="preedit_string">
|
||||||
|
<description summary="pre-edit">
|
||||||
|
Notify when a new composing text (pre-edit) should be set around the
|
||||||
|
current cursor position. Any previously set composing text should
|
||||||
|
be removed.
|
||||||
|
|
||||||
|
The commit text can be used to replace the preedit text on reset
|
||||||
|
(for example on unfocus).
|
||||||
|
|
||||||
|
The text input should also handle all preedit_style and preedit_cursor
|
||||||
|
events occurring directly before preedit_string.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
<arg name="commit" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="preedit_style">
|
||||||
|
<entry name="default" value="0" summary="default style for composing text"/>
|
||||||
|
<entry name="none" value="1" summary="style should be the same as in non-composing text"/>
|
||||||
|
<entry name="active" value="2"/>
|
||||||
|
<entry name="inactive" value="3"/>
|
||||||
|
<entry name="highlight" value="4"/>
|
||||||
|
<entry name="underline" value="5"/>
|
||||||
|
<entry name="selection" value="6"/>
|
||||||
|
<entry name="incorrect" value="7"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="preedit_styling">
|
||||||
|
<description summary="pre-edit styling">
|
||||||
|
Sets styling information on composing text. The style is applied for
|
||||||
|
length bytes from index relative to the beginning of the composing
|
||||||
|
text (as byte offset). Multiple styles can
|
||||||
|
be applied to a composing text by sending multiple preedit_styling
|
||||||
|
events.
|
||||||
|
|
||||||
|
This event is handled as part of a following preedit_string event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="uint"/>
|
||||||
|
<arg name="length" type="uint"/>
|
||||||
|
<arg name="style" type="uint" enum="preedit_style" />
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="preedit_cursor">
|
||||||
|
<description summary="pre-edit cursor">
|
||||||
|
Sets the cursor position inside the composing text (as byte
|
||||||
|
offset) relative to the start of the composing text. When index is a
|
||||||
|
negative number no cursor is shown.
|
||||||
|
|
||||||
|
This event is handled as part of a following preedit_string event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="commit_string">
|
||||||
|
<description summary="commit">
|
||||||
|
Notify when text should be inserted into the editor widget. 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 also be 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 should be removed.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="cursor_position">
|
||||||
|
<description summary="set cursor to new position">
|
||||||
|
Notify when the cursor or anchor position should be modified.
|
||||||
|
|
||||||
|
This event should be handled as part of a following commit_string
|
||||||
|
event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="int"/>
|
||||||
|
<arg name="anchor" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="delete_surrounding_text">
|
||||||
|
<description summary="delete surrounding text">
|
||||||
|
Notify when the text around the current cursor position should be
|
||||||
|
deleted.
|
||||||
|
|
||||||
|
Index is relative to the current cursor (in bytes).
|
||||||
|
Length is the length of deleted text (in bytes).
|
||||||
|
|
||||||
|
This event should be handled as part of a following commit_string
|
||||||
|
event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="int"/>
|
||||||
|
<arg name="length" type="uint"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="keysym">
|
||||||
|
<description summary="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 a
|
||||||
|
wl_keyboard key_state. Modifiers are a mask for effective modifiers
|
||||||
|
(where the modifier indices are set by the modifiers_map event)
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
||||||
|
<arg name="time" type="uint"/>
|
||||||
|
<arg name="sym" type="uint"/>
|
||||||
|
<arg name="state" type="uint"/>
|
||||||
|
<arg name="modifiers" type="uint"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="language">
|
||||||
|
<description summary="language">
|
||||||
|
Sets the language of the input text. The "language" argument is an
|
||||||
|
RFC-3066 format language tag.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
||||||
|
<arg name="language" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="text_direction">
|
||||||
|
<entry name="auto" value="0" summary="automatic text direction based on text and language"/>
|
||||||
|
<entry name="ltr" value="1" summary="left-to-right"/>
|
||||||
|
<entry name="rtl" value="2" summary="right-to-left"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="text_direction">
|
||||||
|
<description summary="text direction">
|
||||||
|
Sets the text direction of input text.
|
||||||
|
|
||||||
|
It is mainly needed for showing an input cursor on the correct side of
|
||||||
|
the editor when there is no input done yet and making sure neutral
|
||||||
|
direction text is laid out properly.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
||||||
|
<arg name="direction" type="uint" enum="text_direction" />
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_manager_v1" version="1">
|
||||||
|
<description summary="text input manager">
|
||||||
|
A factory for text_input objects. This object is a global singleton.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="create_text_input">
|
||||||
|
<description summary="create text input">
|
||||||
|
Creates a new text_input object.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_text_input_v1"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
20
src/3rdparty/wayland/protocols/text-input/v2/HPND_LICENSE.txt
vendored
Normal file
20
src/3rdparty/wayland/protocols/text-input/v2/HPND_LICENSE.txt
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
|
software and its documentation for any purpose is hereby granted
|
||||||
|
without fee, provided that the above copyright notice appear in
|
||||||
|
all copies and that both that copyright notice and this permission
|
||||||
|
notice appear in supporting documentation, and that the name of
|
||||||
|
the copyright holders not be used in advertising or publicity
|
||||||
|
pertaining to distribution of the software without specific,
|
||||||
|
written prior permission. The copyright holders make no
|
||||||
|
representations about the suitability of this software for any
|
||||||
|
purpose. It is provided "as is" without express or implied
|
||||||
|
warranty.
|
||||||
|
|
||||||
|
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
8
src/3rdparty/wayland/protocols/text-input/v2/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/protocols/text-input/v2/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "text-input-unstable-v2.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright © 2012, 2013 Intel Corporation",
|
||||||
|
"Copyright © 2015, 2016 Jan Arne Petersen"]
|
||||||
|
SPDX-License-Identifier = "HPND"
|
17
src/3rdparty/wayland/protocols/text-input/v2/qt_attribution.json
vendored
Normal file
17
src/3rdparty/wayland/protocols/text-input/v2/qt_attribution.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-text-input-unstable-v2",
|
||||||
|
"Name": "Wayland Text Input Protocol v2",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "text-input-unstable-v2.xml",
|
||||||
|
|
||||||
|
"Description": "Adds support for text input and input methods to applications.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v2",
|
||||||
|
"LicenseId": "HPND",
|
||||||
|
"License": "HPND License",
|
||||||
|
"LicenseFile": "HPND_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2012, 2013 Intel Corporation\nCopyright © 2015, 2016 Jan Arne Petersen"
|
||||||
|
}
|
||||||
|
]
|
478
src/3rdparty/wayland/protocols/text-input/v2/text-input-unstable-v2.xml
vendored
Normal file
478
src/3rdparty/wayland/protocols/text-input/v2/text-input-unstable-v2.xml
vendored
Normal file
@ -0,0 +1,478 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<protocol name="text_input_unstable_v2">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2012, 2013 Intel Corporation
|
||||||
|
Copyright © 2015, 2016 Jan Arne Petersen
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
|
software and its documentation for any purpose is hereby granted
|
||||||
|
without fee, provided that the above copyright notice appear in
|
||||||
|
all copies and that both that copyright notice and this permission
|
||||||
|
notice appear in supporting documentation, and that the name of
|
||||||
|
the copyright holders not be used in advertising or publicity
|
||||||
|
pertaining to distribution of the software without specific,
|
||||||
|
written prior permission. The copyright holders make no
|
||||||
|
representations about the suitability of this software for any
|
||||||
|
purpose. It is provided "as is" without express or implied
|
||||||
|
warranty.
|
||||||
|
|
||||||
|
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_v2" version="1">
|
||||||
|
<description summary="text input">
|
||||||
|
The zwp_text_input_v2 interface represents text input and input methods
|
||||||
|
associated with a seat. It provides enter/leave events to follow the
|
||||||
|
text input focus for a seat.
|
||||||
|
|
||||||
|
Requests are used to enable/disable the text-input object and set
|
||||||
|
state information like surrounding and selected text or the content type.
|
||||||
|
The information about the entered text is sent to the text-input object
|
||||||
|
via the pre-edit and commit events. Using this interface removes the need
|
||||||
|
for applications to directly process hardware key events and compose text
|
||||||
|
out of them.
|
||||||
|
|
||||||
|
Text is valid UTF-8 encoded, indices and lengths are in bytes. Indices
|
||||||
|
have to always point to the first byte of an UTF-8 encoded code point.
|
||||||
|
Lengths are not allowed to contain just a part of an UTF-8 encoded code
|
||||||
|
point.
|
||||||
|
|
||||||
|
State is sent by the state requests (set_surrounding_text,
|
||||||
|
set_content_type, set_cursor_rectangle and set_preferred_language) and
|
||||||
|
an update_state request. After an enter or an input_method_change event
|
||||||
|
all state information is invalidated and needs to be resent from the
|
||||||
|
client. A reset or entering a new widget on client side also
|
||||||
|
invalidates all current state information.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the wp_text_input">
|
||||||
|
Destroy the wp_text_input object. Also disables all surfaces enabled
|
||||||
|
through this wp_text_input object
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="enable">
|
||||||
|
<description summary="enable text input for surface">
|
||||||
|
Enable text input in a surface (usually when a text entry inside of it
|
||||||
|
has focus).
|
||||||
|
|
||||||
|
This can be called before or after a surface gets text (or keyboard)
|
||||||
|
focus via the enter event. Text input to a surface is only active
|
||||||
|
when it has the current text (or keyboard) focus and is enabled.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="disable">
|
||||||
|
<description summary="disable text input for surface">
|
||||||
|
Disable text input in a surface (typically when there is no focus on any
|
||||||
|
text entry inside the surface).
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="show_input_panel">
|
||||||
|
<description summary="show input panels">
|
||||||
|
Requests input panels (virtual keyboard) to show.
|
||||||
|
|
||||||
|
This should be used for example to show a virtual keyboard again
|
||||||
|
(with a tap) after it was closed by pressing on a close button on the
|
||||||
|
keyboard.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="hide_input_panel">
|
||||||
|
<description summary="hide input panels">
|
||||||
|
Requests input panels (virtual keyboard) to hide.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_surrounding_text">
|
||||||
|
<description summary="sets the surrounding text">
|
||||||
|
Sets the plain surrounding text around the input position. Text is
|
||||||
|
UTF-8 encoded. Cursor is the byte offset within the surrounding text.
|
||||||
|
Anchor is the byte offset of the selection anchor within the
|
||||||
|
surrounding text. If there is no selected text, anchor is the same as
|
||||||
|
cursor.
|
||||||
|
|
||||||
|
Make sure to always send some text before and after the cursor
|
||||||
|
except when the cursor is at the beginning or end of text.
|
||||||
|
|
||||||
|
When there was a configure_surrounding_text event take the
|
||||||
|
before_cursor and after_cursor arguments into account for picking how
|
||||||
|
much surrounding text to send.
|
||||||
|
|
||||||
|
There is a maximum length of wayland messages so text can not be
|
||||||
|
longer than 4000 bytes.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
<arg name="cursor" type="int"/>
|
||||||
|
<arg name="anchor" type="int"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="content_hint" bitfield="true">
|
||||||
|
<description summary="content hint">
|
||||||
|
Content hint is a bitmask to allow to modify the behavior of the text
|
||||||
|
input.
|
||||||
|
</description>
|
||||||
|
<entry name="none" value="0x0" summary="no special behaviour"/>
|
||||||
|
<entry name="auto_completion" value="0x1" summary="suggest word completions"/>
|
||||||
|
<entry name="auto_correction" value="0x2" summary="suggest word corrections"/>
|
||||||
|
<entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
|
||||||
|
<entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
|
||||||
|
<entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
|
||||||
|
<entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependent)"/>
|
||||||
|
<entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
|
||||||
|
<entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
|
||||||
|
<entry name="latin" value="0x100" summary="just latin characters should be entered"/>
|
||||||
|
<entry name="multiline" value="0x200" summary="the text input is multiline"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<enum name="content_purpose">
|
||||||
|
<description summary="content purpose">
|
||||||
|
The content purpose allows to specify the primary purpose of a text
|
||||||
|
input.
|
||||||
|
|
||||||
|
This allows an input method to show special purpose input panels with
|
||||||
|
extra characters or to disallow some characters.
|
||||||
|
</description>
|
||||||
|
<entry name="normal" value="0" summary="default input, allowing all characters"/>
|
||||||
|
<entry name="alpha" value="1" summary="allow only alphabetic characters"/>
|
||||||
|
<entry name="digits" value="2" summary="allow only digits"/>
|
||||||
|
<entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
|
||||||
|
<entry name="phone" value="4" summary="input a phone number"/>
|
||||||
|
<entry name="url" value="5" summary="input an URL"/>
|
||||||
|
<entry name="email" value="6" summary="input an email address"/>
|
||||||
|
<entry name="name" value="7" summary="input a name of a person"/>
|
||||||
|
<entry name="password" value="8" summary="input a password (combine with password or sensitive_data hint)"/>
|
||||||
|
<entry name="date" value="9" summary="input a date"/>
|
||||||
|
<entry name="time" value="10" summary="input a time"/>
|
||||||
|
<entry name="datetime" value="11" summary="input a date and time"/>
|
||||||
|
<entry name="terminal" value="12" summary="input for a terminal"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_content_type">
|
||||||
|
<description summary="set content purpose and hint">
|
||||||
|
Sets the content purpose and content hint. While the purpose is the
|
||||||
|
basic purpose of an input field, the hint flags allow to modify some
|
||||||
|
of the behavior.
|
||||||
|
|
||||||
|
When no content type is explicitly set, a normal content purpose with
|
||||||
|
none hint should be assumed.
|
||||||
|
</description>
|
||||||
|
<arg name="hint" type="uint" enum="content_hint"/>
|
||||||
|
<arg name="purpose" type="uint" enum="content_purpose"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_cursor_rectangle">
|
||||||
|
<description summary="set cursor position">
|
||||||
|
Sets the cursor outline as a x, y, width, height rectangle in surface
|
||||||
|
local coordinates.
|
||||||
|
|
||||||
|
Allows the compositor to put a window with word suggestions near the
|
||||||
|
cursor.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="int"/>
|
||||||
|
<arg name="y" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_preferred_language">
|
||||||
|
<description summary="sets preferred language">
|
||||||
|
Sets a specific language. This allows for example a virtual keyboard to
|
||||||
|
show a language specific layout. The "language" argument is a RFC-3066
|
||||||
|
format language tag.
|
||||||
|
|
||||||
|
It could be used for example in a word processor to indicate language of
|
||||||
|
currently edited document or in an instant message application which
|
||||||
|
tracks languages of contacts.
|
||||||
|
</description>
|
||||||
|
<arg name="language" type="string"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="update_state">
|
||||||
|
<description summary="update_state flags">
|
||||||
|
Defines the reason for sending an updated state.
|
||||||
|
</description>
|
||||||
|
<entry name="change" value="0" summary="updated state because it changed"/>
|
||||||
|
<entry name="full" value="1" summary="full state after enter or input_method_changed event"/>
|
||||||
|
<entry name="reset" value="2" summary="full state after reset"/>
|
||||||
|
<entry name="enter" value="3" summary="full state after switching focus to a different widget on client side"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="update_state">
|
||||||
|
<description summary="update state">
|
||||||
|
Allows to atomically send state updates from client.
|
||||||
|
|
||||||
|
This request should follow after a batch of state updating requests
|
||||||
|
like set_surrounding_text, set_content_type, set_cursor_rectangle and
|
||||||
|
set_preferred_language.
|
||||||
|
|
||||||
|
The flags field indicates why an updated state is sent to the input
|
||||||
|
method.
|
||||||
|
|
||||||
|
Reset should be used by an editor widget after the text was changed
|
||||||
|
outside of the normal input method flow.
|
||||||
|
|
||||||
|
For "change" it is enough to send the changed state, else the full
|
||||||
|
state should be send.
|
||||||
|
|
||||||
|
Serial should be set to the serial from the last enter or
|
||||||
|
input_method_changed event.
|
||||||
|
|
||||||
|
To make sure to not receive outdated input method events after a
|
||||||
|
reset or switching to a new widget wl_display_sync() should be used
|
||||||
|
after update_state in these cases.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the enter or input_method_changed event"/>
|
||||||
|
<arg name="reason" type="uint" enum="update_state"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="enter">
|
||||||
|
<description summary="enter event">
|
||||||
|
Notification that this seat's text-input focus is on a certain surface.
|
||||||
|
|
||||||
|
When the seat has the keyboard capability the text-input focus follows
|
||||||
|
the keyboard focus.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial to be used by update_state"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="leave">
|
||||||
|
<description summary="leave event">
|
||||||
|
Notification that this seat's text-input focus is no longer on
|
||||||
|
a certain surface.
|
||||||
|
|
||||||
|
The leave notification is sent before the enter notification
|
||||||
|
for the new focus.
|
||||||
|
|
||||||
|
When the seat has the keyboard capabillity the text-input focus follows
|
||||||
|
the keyboard focus.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="input_panel_visibility">
|
||||||
|
<entry name="hidden" value="0"
|
||||||
|
summary="the input panel (virtual keyboard) is hidden"/>
|
||||||
|
<entry name="visible" value="1"
|
||||||
|
summary="the input panel (virtual keyboard) is visible"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="input_panel_state">
|
||||||
|
<description summary="state of the input panel">
|
||||||
|
Notification that the visibility of the input panel (virtual keyboard)
|
||||||
|
changed.
|
||||||
|
|
||||||
|
The rectangle x, y, width, height defines the area overlapped by the
|
||||||
|
input panel (virtual keyboard) on the surface having the text
|
||||||
|
focus in surface local coordinates.
|
||||||
|
|
||||||
|
That can be used to make sure widgets are visible and not covered by
|
||||||
|
a virtual keyboard.
|
||||||
|
</description>
|
||||||
|
<arg name="state" type="uint" enum="input_panel_visibility"/>
|
||||||
|
<arg name="x" type="int"/>
|
||||||
|
<arg name="y" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="preedit_string">
|
||||||
|
<description summary="pre-edit">
|
||||||
|
Notify when a new composing text (pre-edit) should be set around the
|
||||||
|
current cursor position. Any previously set composing text should
|
||||||
|
be removed.
|
||||||
|
|
||||||
|
The commit text can be used to replace the composing text in some cases
|
||||||
|
(for example when losing focus).
|
||||||
|
|
||||||
|
The text input should also handle all preedit_style and preedit_cursor
|
||||||
|
events occurring directly before preedit_string.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
<arg name="commit" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="preedit_style">
|
||||||
|
<entry name="default" value="0" summary="default style for composing text"/>
|
||||||
|
<entry name="none" value="1" summary="composing text should be shown the same as non-composing text"/>
|
||||||
|
<entry name="active" value="2" summary="composing text might be bold"/>
|
||||||
|
<entry name="inactive" value="3" summary="composing text might be cursive"/>
|
||||||
|
<entry name="highlight" value="4" summary="composing text might have a different background color"/>
|
||||||
|
<entry name="underline" value="5" summary="composing text might be underlined"/>
|
||||||
|
<entry name="selection" value="6" summary="composing text should be shown the same as selected text"/>
|
||||||
|
<entry name="incorrect" value="7" summary="composing text might be underlined with a red wavy line"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="preedit_styling">
|
||||||
|
<description summary="pre-edit styling">
|
||||||
|
Sets styling information on composing text. The style is applied for
|
||||||
|
length bytes from index relative to the beginning of the composing
|
||||||
|
text (as byte offset). Multiple styles can be applied to a composing
|
||||||
|
text by sending multiple preedit_styling events.
|
||||||
|
|
||||||
|
This event is handled as part of a following preedit_string event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="uint"/>
|
||||||
|
<arg name="length" type="uint"/>
|
||||||
|
<arg name="style" type="uint" enum="preedit_style"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="preedit_cursor">
|
||||||
|
<description summary="pre-edit cursor">
|
||||||
|
Sets the cursor position inside the composing text (as byte
|
||||||
|
offset) relative to the start of the composing text. When index is a
|
||||||
|
negative number no cursor is shown.
|
||||||
|
|
||||||
|
When no preedit_cursor event is sent the cursor will be at the end of
|
||||||
|
the composing text by default.
|
||||||
|
|
||||||
|
This event is handled as part of a following preedit_string event.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="commit_string">
|
||||||
|
<description summary="commit">
|
||||||
|
Notify when text should be inserted into the editor widget. 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 should be removed.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="cursor_position">
|
||||||
|
<description summary="set cursor to new position">
|
||||||
|
Notify when the cursor or anchor position should be modified.
|
||||||
|
|
||||||
|
This event should be handled as part of a following commit_string
|
||||||
|
event.
|
||||||
|
|
||||||
|
The text between anchor and index should be selected.
|
||||||
|
</description>
|
||||||
|
<arg name="index" type="int" summary="position of cursor"/>
|
||||||
|
<arg name="anchor" type="int" summary="position of selection anchor"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="delete_surrounding_text">
|
||||||
|
<description summary="delete surrounding text">
|
||||||
|
Notify when the text around the current cursor position should be
|
||||||
|
deleted. BeforeLength and afterLength is the length (in bytes) of text
|
||||||
|
before and after the current cursor position (excluding the selection)
|
||||||
|
to delete.
|
||||||
|
|
||||||
|
This event should be handled as part of a following commit_string
|
||||||
|
or preedit_string event.
|
||||||
|
</description>
|
||||||
|
<arg name="before_length" type="uint" summary="length of text before current cursor positon"/>
|
||||||
|
<arg name="after_length" type="uint" summary="length of text after current cursor positon"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="modifiers_map">
|
||||||
|
<description summary="modifiers map">
|
||||||
|
Transfer an array of 0-terminated modifiers names. The position in
|
||||||
|
the array is the index of the modifier as used in the modifiers
|
||||||
|
bitmask in the keysym event.
|
||||||
|
</description>
|
||||||
|
<arg name="map" type="array"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="keysym">
|
||||||
|
<description summary="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 a XKB keysym, state a
|
||||||
|
wl_keyboard key_state. Modifiers are a mask for effective modifiers
|
||||||
|
(where the modifier indices are set by the modifiers_map event)
|
||||||
|
</description>
|
||||||
|
<arg name="time" type="uint"/>
|
||||||
|
<arg name="sym" type="uint"/>
|
||||||
|
<arg name="state" type="uint"/>
|
||||||
|
<arg name="modifiers" type="uint"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="language">
|
||||||
|
<description summary="language">
|
||||||
|
Sets the language of the input text. The "language" argument is a RFC-3066
|
||||||
|
format language tag.
|
||||||
|
</description>
|
||||||
|
<arg name="language" type="string"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<enum name="text_direction">
|
||||||
|
<entry name="auto" value="0" summary="automatic text direction based on text and language"/>
|
||||||
|
<entry name="ltr" value="1" summary="left-to-right"/>
|
||||||
|
<entry name="rtl" value="2" summary="right-to-left"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<event name="text_direction">
|
||||||
|
<description summary="text direction">
|
||||||
|
Sets the text direction of input text.
|
||||||
|
|
||||||
|
It is mainly needed for showing input cursor on correct side of the
|
||||||
|
editor when there is no input yet done and making sure neutral
|
||||||
|
direction text is laid out properly.
|
||||||
|
</description>
|
||||||
|
<arg name="direction" type="uint" enum="text_direction"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="configure_surrounding_text">
|
||||||
|
<description summary="configure amount of surrounding text to be sent">
|
||||||
|
Configure what amount of surrounding text is expected by the
|
||||||
|
input method. The surrounding text will be sent in the
|
||||||
|
set_surrounding_text request on the following state information updates.
|
||||||
|
</description>
|
||||||
|
<arg name="before_cursor" type="int"/>
|
||||||
|
<arg name="after_cursor" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="input_method_changed">
|
||||||
|
<description summary="Notifies about a changed input method">
|
||||||
|
The input method changed on compositor side, which invalidates all
|
||||||
|
current state information. New state information should be sent from
|
||||||
|
the client via state requests (set_surrounding_text,
|
||||||
|
set_content_hint, ...) and update_state.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint" summary="serial to be used by update_state"/>
|
||||||
|
<arg name="flags" type="uint" summary="currently unused"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_manager_v2" version="1">
|
||||||
|
<description summary="text input manager">
|
||||||
|
A factory for text-input objects. This object is a global singleton.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the wp_text_input_manager">
|
||||||
|
Destroy the wp_text_input_manager object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_text_input">
|
||||||
|
<description summary="create a new text input object">
|
||||||
|
Creates a new text-input object for a given seat.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_text_input_v2"/>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
10
src/3rdparty/wayland/protocols/text-input/v3/REUSE.toml
vendored
Normal file
10
src/3rdparty/wayland/protocols/text-input/v3/REUSE.toml
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "text-input-unstable-v3.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2012, 2013 Intel Corporation",
|
||||||
|
"Copyright 2015, 2016 Jan Arne Petersen",
|
||||||
|
"Copyright 2017, 2018 Red Hat, Inc.",
|
||||||
|
"Copyright 2018 Purism SPC"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
17
src/3rdparty/wayland/protocols/text-input/v3/qt_attribution.json
vendored
Normal file
17
src/3rdparty/wayland/protocols/text-input/v3/qt_attribution.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-text-input-unstable-v3",
|
||||||
|
"Name": "Wayland Text Input Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "text-input-unstable-v3.xml",
|
||||||
|
"Description": "Adds support for compositors to act as input methods and send text to applications.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v3",
|
||||||
|
"DownloadLocation": "https://cgit.freedesktop.org/wayland/wayland-protocols/plain/unstable/text-input/text-input-unstable-v3.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2012, 2013 Intel Corporation\nCopyright © 2015, 2016 Jan Arne Petersen\nCopyright © 2017, 2018 Red Hat, Inc.\nCopyright © 2018 Purism SPC"
|
||||||
|
}
|
||||||
|
]
|
457
src/3rdparty/wayland/protocols/text-input/v3/text-input-unstable-v3.xml
vendored
Normal file
457
src/3rdparty/wayland/protocols/text-input/v3/text-input-unstable-v3.xml
vendored
Normal file
@ -0,0 +1,457 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<protocol name="text_input_unstable_v3">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2012, 2013 Intel Corporation
|
||||||
|
Copyright © 2015, 2016 Jan Arne Petersen
|
||||||
|
Copyright © 2017, 2018 Red Hat, Inc.
|
||||||
|
Copyright © 2018 Purism SPC
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
|
software and its documentation for any purpose is hereby granted
|
||||||
|
without fee, provided that the above copyright notice appear in
|
||||||
|
all copies and that both that copyright notice and this permission
|
||||||
|
notice appear in supporting documentation, and that the name of
|
||||||
|
the copyright holders not be used in advertising or publicity
|
||||||
|
pertaining to distribution of the software without specific,
|
||||||
|
written prior permission. The copyright holders make no
|
||||||
|
representations about the suitability of this software for any
|
||||||
|
purpose. It is provided "as is" without express or implied
|
||||||
|
warranty.
|
||||||
|
|
||||||
|
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Protocol for composing text">
|
||||||
|
This protocol allows compositors to act as input methods and to send text
|
||||||
|
to applications. A text input object is used to manage state of what are
|
||||||
|
typically text entry fields in the application.
|
||||||
|
|
||||||
|
This document adheres to the RFC 2119 when using words like "must",
|
||||||
|
"should", "may", etc.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_v3" version="1">
|
||||||
|
<description summary="text input">
|
||||||
|
The zwp_text_input_v3 interface represents text input and input methods
|
||||||
|
associated with a seat. It provides enter/leave events to follow the
|
||||||
|
text input focus for a seat.
|
||||||
|
|
||||||
|
Requests are used to enable/disable the text-input object and set
|
||||||
|
state information like surrounding and selected text or the content type.
|
||||||
|
The information about the entered text is sent to the text-input object
|
||||||
|
via the preedit_string and commit_string events.
|
||||||
|
|
||||||
|
Text is valid UTF-8 encoded, indices and lengths are in bytes. Indices
|
||||||
|
must not point to middle bytes inside a code point: they must either
|
||||||
|
point to the first byte of a code point or to the end of the buffer.
|
||||||
|
Lengths must be measured between two valid indices.
|
||||||
|
|
||||||
|
Focus moving throughout surfaces will result in the emission of
|
||||||
|
zwp_text_input_v3.enter and zwp_text_input_v3.leave events. The focused
|
||||||
|
surface must commit zwp_text_input_v3.enable and
|
||||||
|
zwp_text_input_v3.disable requests as the keyboard focus moves across
|
||||||
|
editable and non-editable elements of the UI. Those two requests are not
|
||||||
|
expected to be paired with each other, the compositor must be able to
|
||||||
|
handle consecutive series of the same request.
|
||||||
|
|
||||||
|
State is sent by the state requests (set_surrounding_text,
|
||||||
|
set_content_type and set_cursor_rectangle) and a commit request. After an
|
||||||
|
enter event or disable request all state information is invalidated and
|
||||||
|
needs to be resent by the client.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the wp_text_input">
|
||||||
|
Destroy the wp_text_input object. Also disables all surfaces enabled
|
||||||
|
through this wp_text_input object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="enable">
|
||||||
|
<description summary="Request text input to be enabled">
|
||||||
|
Requests text input on the surface previously obtained from the enter
|
||||||
|
event.
|
||||||
|
|
||||||
|
This request must be issued every time the active text input changes
|
||||||
|
to a new one, including within the current surface. Use
|
||||||
|
zwp_text_input_v3.disable when there is no longer any input focus on
|
||||||
|
the current surface.
|
||||||
|
|
||||||
|
Clients must not enable more than one text input on the single seat
|
||||||
|
and should disable the current text input before enabling the new one.
|
||||||
|
At most one instance of text input may be in enabled state per instance,
|
||||||
|
Requests to enable the another text input when some text input is active
|
||||||
|
must be ignored by compositor.
|
||||||
|
|
||||||
|
This request resets all state associated with previous enable, disable,
|
||||||
|
set_surrounding_text, set_text_change_cause, set_content_type, and
|
||||||
|
set_cursor_rectangle requests, as well as the state associated with
|
||||||
|
preedit_string, commit_string, and delete_surrounding_text events.
|
||||||
|
|
||||||
|
The set_surrounding_text, set_content_type and set_cursor_rectangle
|
||||||
|
requests must follow if the text input supports the necessary
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
State set with this request is double-buffered. It will get applied on
|
||||||
|
the next zwp_text_input_v3.commit request, and stay valid until the
|
||||||
|
next committed enable or disable request.
|
||||||
|
|
||||||
|
The changes must be applied by the compositor after issuing a
|
||||||
|
zwp_text_input_v3.commit request.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="disable">
|
||||||
|
<description summary="Disable text input on a surface">
|
||||||
|
Explicitly disable text input on the current surface (typically when
|
||||||
|
there is no focus on any text entry inside the surface).
|
||||||
|
|
||||||
|
State set with this request is double-buffered. It will get applied on
|
||||||
|
the next zwp_text_input_v3.commit request.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_surrounding_text">
|
||||||
|
<description summary="sets the surrounding text">
|
||||||
|
Sets the surrounding plain text around the input, excluding the preedit
|
||||||
|
text.
|
||||||
|
|
||||||
|
The client should notify the compositor of any changes in any of the
|
||||||
|
values carried with this request, including changes caused by handling
|
||||||
|
incoming text-input events as well as changes caused by other
|
||||||
|
mechanisms like keyboard typing.
|
||||||
|
|
||||||
|
If the client is unaware of the text around the cursor, it should not
|
||||||
|
issue this request, to signify lack of support to the compositor.
|
||||||
|
|
||||||
|
Text is UTF-8 encoded, and should include the cursor position, the
|
||||||
|
complete selection and additional characters before and after them.
|
||||||
|
There is a maximum length of wayland messages, so text can not be
|
||||||
|
longer than 4000 bytes.
|
||||||
|
|
||||||
|
Cursor is the byte offset of the cursor within text buffer.
|
||||||
|
|
||||||
|
Anchor is the byte offset of the selection anchor within text buffer.
|
||||||
|
If there is no selected text, anchor is the same as cursor.
|
||||||
|
|
||||||
|
If any preedit text is present, it is replaced with a cursor for the
|
||||||
|
purpose of this event.
|
||||||
|
|
||||||
|
Values set with this request are double-buffered. They will get applied
|
||||||
|
on the next zwp_text_input_v3.commit request, and stay valid until the
|
||||||
|
next committed enable or disable request.
|
||||||
|
|
||||||
|
The initial state for affected fields is empty, meaning that the text
|
||||||
|
input does not support sending surrounding text. If the empty values
|
||||||
|
get applied, subsequent attempts to change them may have no effect.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string"/>
|
||||||
|
<arg name="cursor" type="int"/>
|
||||||
|
<arg name="anchor" type="int"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="change_cause">
|
||||||
|
<description summary="text change reason">
|
||||||
|
Reason for the change of surrounding text or cursor posision.
|
||||||
|
</description>
|
||||||
|
<entry name="input_method" value="0" summary="input method caused the change"/>
|
||||||
|
<entry name="other" value="1" summary="something else than the input method caused the change"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_text_change_cause">
|
||||||
|
<description summary="indicates the cause of surrounding text change">
|
||||||
|
Tells the compositor why the text surrounding the cursor changed.
|
||||||
|
|
||||||
|
Whenever the client detects an external change in text, cursor, or
|
||||||
|
anchor posision, it must issue this request to the compositor. This
|
||||||
|
request is intended to give the input method a chance to update the
|
||||||
|
preedit text in an appropriate way, e.g. by removing it when the user
|
||||||
|
starts typing with a keyboard.
|
||||||
|
|
||||||
|
cause describes the source of the change.
|
||||||
|
|
||||||
|
The value set with this request is double-buffered. It must be applied
|
||||||
|
and reset to initial at the next zwp_text_input_v3.commit request.
|
||||||
|
|
||||||
|
The initial value of cause is input_method.
|
||||||
|
</description>
|
||||||
|
<arg name="cause" type="uint" enum="change_cause"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="content_hint" bitfield="true">
|
||||||
|
<description summary="content hint">
|
||||||
|
Content hint is a bitmask to allow to modify the behavior of the text
|
||||||
|
input.
|
||||||
|
</description>
|
||||||
|
<entry name="none" value="0x0" summary="no special behavior"/>
|
||||||
|
<entry name="completion" value="0x1" summary="suggest word completions"/>
|
||||||
|
<entry name="spellcheck" value="0x2" summary="suggest word corrections"/>
|
||||||
|
<entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
|
||||||
|
<entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
|
||||||
|
<entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
|
||||||
|
<entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependent)"/>
|
||||||
|
<entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
|
||||||
|
<entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
|
||||||
|
<entry name="latin" value="0x100" summary="just Latin characters should be entered"/>
|
||||||
|
<entry name="multiline" value="0x200" summary="the text input is multiline"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<enum name="content_purpose">
|
||||||
|
<description summary="content purpose">
|
||||||
|
The content purpose allows to specify the primary purpose of a text
|
||||||
|
input.
|
||||||
|
|
||||||
|
This allows an input method to show special purpose input panels with
|
||||||
|
extra characters or to disallow some characters.
|
||||||
|
</description>
|
||||||
|
<entry name="normal" value="0" summary="default input, allowing all characters"/>
|
||||||
|
<entry name="alpha" value="1" summary="allow only alphabetic characters"/>
|
||||||
|
<entry name="digits" value="2" summary="allow only digits"/>
|
||||||
|
<entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
|
||||||
|
<entry name="phone" value="4" summary="input a phone number"/>
|
||||||
|
<entry name="url" value="5" summary="input an URL"/>
|
||||||
|
<entry name="email" value="6" summary="input an email address"/>
|
||||||
|
<entry name="name" value="7" summary="input a name of a person"/>
|
||||||
|
<entry name="password" value="8" summary="input a password (combine with sensitive_data hint)"/>
|
||||||
|
<entry name="pin" value="9" summary="input is a numeric password (combine with sensitive_data hint)"/>
|
||||||
|
<entry name="date" value="10" summary="input a date"/>
|
||||||
|
<entry name="time" value="11" summary="input a time"/>
|
||||||
|
<entry name="datetime" value="12" summary="input a date and time"/>
|
||||||
|
<entry name="terminal" value="13" summary="input for a terminal"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_content_type">
|
||||||
|
<description summary="set content purpose and hint">
|
||||||
|
Sets the content purpose and content hint. While the purpose is the
|
||||||
|
basic purpose of an input field, the hint flags allow to modify some of
|
||||||
|
the behavior.
|
||||||
|
|
||||||
|
Values set with this request are double-buffered. They will get applied
|
||||||
|
on the next zwp_text_input_v3.commit request.
|
||||||
|
Subsequent attempts to update them may have no effect. The values
|
||||||
|
remain valid until the next committed enable or disable request.
|
||||||
|
|
||||||
|
The initial value for hint is none, and the initial value for purpose
|
||||||
|
is normal.
|
||||||
|
</description>
|
||||||
|
<arg name="hint" type="uint" enum="content_hint"/>
|
||||||
|
<arg name="purpose" type="uint" enum="content_purpose"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_cursor_rectangle">
|
||||||
|
<description summary="set cursor position">
|
||||||
|
Marks an area around the cursor as a x, y, width, height rectangle in
|
||||||
|
surface local coordinates.
|
||||||
|
|
||||||
|
Allows the compositor to put a window with word suggestions near the
|
||||||
|
cursor, without obstructing the text being input.
|
||||||
|
|
||||||
|
If the client is unaware of the position of edited text, it should not
|
||||||
|
issue this request, to signify lack of support to the compositor.
|
||||||
|
|
||||||
|
Values set with this request are double-buffered. They will get applied
|
||||||
|
on the next zwp_text_input_v3.commit request, and stay valid until the
|
||||||
|
next committed enable or disable request.
|
||||||
|
|
||||||
|
The initial values describing a cursor rectangle are empty. That means
|
||||||
|
the text input does not support describing the cursor area. If the
|
||||||
|
empty values get applied, subsequent attempts to change them may have
|
||||||
|
no effect.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="int"/>
|
||||||
|
<arg name="y" type="int"/>
|
||||||
|
<arg name="width" type="int"/>
|
||||||
|
<arg name="height" type="int"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="commit">
|
||||||
|
<description summary="commit state">
|
||||||
|
Atomically applies state changes recently sent to the compositor.
|
||||||
|
|
||||||
|
The commit request establishes and updates the state of the client, and
|
||||||
|
must be issued after any changes to apply them.
|
||||||
|
|
||||||
|
Text input state (enabled status, content purpose, content hint,
|
||||||
|
surrounding text and change cause, cursor rectangle) is conceptually
|
||||||
|
double-buffered within the context of a text input, i.e. between a
|
||||||
|
committed enable request and the following committed enable or disable
|
||||||
|
request.
|
||||||
|
|
||||||
|
Protocol requests modify the pending state, as opposed to the current
|
||||||
|
state in use by the input method. A commit request atomically applies
|
||||||
|
all pending state, replacing the current state. After commit, the new
|
||||||
|
pending state is as documented for each related request.
|
||||||
|
|
||||||
|
Requests are applied in the order of arrival.
|
||||||
|
|
||||||
|
Neither current nor pending state are modified unless noted otherwise.
|
||||||
|
|
||||||
|
The compositor must count the number of commit requests coming from
|
||||||
|
each zwp_text_input_v3 object and use the count as the serial in done
|
||||||
|
events.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="enter">
|
||||||
|
<description summary="enter event">
|
||||||
|
Notification that this seat's text-input focus is on a certain surface.
|
||||||
|
|
||||||
|
If client has created multiple text input objects, compositor must send
|
||||||
|
this event to all of them.
|
||||||
|
|
||||||
|
When the seat has the keyboard capability the text-input focus follows
|
||||||
|
the keyboard focus. This event sets the current surface for the
|
||||||
|
text-input object.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="leave">
|
||||||
|
<description summary="leave event">
|
||||||
|
Notification that this seat's text-input focus is no longer on a
|
||||||
|
certain surface. The client should reset any preedit string previously
|
||||||
|
set.
|
||||||
|
|
||||||
|
The leave notification clears the current surface. It is sent before
|
||||||
|
the enter notification for the new focus. After leave event, compositor
|
||||||
|
must ignore requests from any text input instances until next enter
|
||||||
|
event.
|
||||||
|
|
||||||
|
When the seat has the keyboard capability the text-input focus follows
|
||||||
|
the keyboard focus.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="preedit_string">
|
||||||
|
<description summary="pre-edit">
|
||||||
|
Notify when a new composing text (pre-edit) should be set at the
|
||||||
|
current cursor position. Any previously set composing text must be
|
||||||
|
removed. Any previously existing selected text must be removed.
|
||||||
|
|
||||||
|
The argument text contains the pre-edit string buffer.
|
||||||
|
|
||||||
|
The parameters cursor_begin and cursor_end are counted in bytes
|
||||||
|
relative to the beginning of the submitted text buffer. Cursor should
|
||||||
|
be hidden when both are equal to -1.
|
||||||
|
|
||||||
|
They could be represented by the client as a line if both values are
|
||||||
|
the same, or as a text highlight otherwise.
|
||||||
|
|
||||||
|
Values set with this event are double-buffered. They must be applied
|
||||||
|
and reset to initial on the next zwp_text_input_v3.done event.
|
||||||
|
|
||||||
|
The initial value of text is an empty string, and cursor_begin,
|
||||||
|
cursor_end and cursor_hidden are all 0.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string" allow-null="true"/>
|
||||||
|
<arg name="cursor_begin" type="int"/>
|
||||||
|
<arg name="cursor_end" type="int"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="commit_string">
|
||||||
|
<description summary="text commit">
|
||||||
|
Notify when text should be inserted into the editor widget. The text to
|
||||||
|
commit could be either just a single character after a key press or the
|
||||||
|
result of some composing (pre-edit).
|
||||||
|
|
||||||
|
Values set with this event are double-buffered. They must be applied
|
||||||
|
and reset to initial on the next zwp_text_input_v3.done event.
|
||||||
|
|
||||||
|
The initial value of text is an empty string.
|
||||||
|
</description>
|
||||||
|
<arg name="text" type="string" allow-null="true"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="delete_surrounding_text">
|
||||||
|
<description summary="delete surrounding text">
|
||||||
|
Notify when the text around the current cursor position should be
|
||||||
|
deleted.
|
||||||
|
|
||||||
|
Before_length and after_length are the number of bytes before and after
|
||||||
|
the current cursor index (excluding the selection) to delete.
|
||||||
|
|
||||||
|
If a preedit text is present, in effect before_length is counted from
|
||||||
|
the beginning of it, and after_length from its end (see done event
|
||||||
|
sequence).
|
||||||
|
|
||||||
|
Values set with this event are double-buffered. They must be applied
|
||||||
|
and reset to initial on the next zwp_text_input_v3.done event.
|
||||||
|
|
||||||
|
The initial values of both before_length and after_length are 0.
|
||||||
|
</description>
|
||||||
|
<arg name="before_length" type="uint" summary="length of text before current cursor position"/>
|
||||||
|
<arg name="after_length" type="uint" summary="length of text after current cursor position"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="done">
|
||||||
|
<description summary="apply changes">
|
||||||
|
Instruct the application to apply changes to state requested by the
|
||||||
|
preedit_string, commit_string and delete_surrounding_text events. The
|
||||||
|
state relating to these events is double-buffered, and each one
|
||||||
|
modifies the pending state. This event replaces the current state with
|
||||||
|
the pending state.
|
||||||
|
|
||||||
|
The application must proceed by evaluating the changes in the following
|
||||||
|
order:
|
||||||
|
|
||||||
|
1. Replace existing preedit string with the cursor.
|
||||||
|
2. Delete requested surrounding text.
|
||||||
|
3. Insert commit string with the cursor at its end.
|
||||||
|
4. Calculate surrounding text to send.
|
||||||
|
5. Insert new preedit text in cursor position.
|
||||||
|
6. Place cursor inside preedit text.
|
||||||
|
|
||||||
|
The serial number reflects the last state of the zwp_text_input_v3
|
||||||
|
object known to the compositor. The value of the serial argument must
|
||||||
|
be equal to the number of commit requests already issued on that object.
|
||||||
|
|
||||||
|
When the client receives a done event with a serial different than the
|
||||||
|
number of past commit requests, it must proceed with evaluating and
|
||||||
|
applying the changes as normal, except it should not change the current
|
||||||
|
state of the zwp_text_input_v3 object. All pending state requests
|
||||||
|
(set_surrounding_text, set_content_type and set_cursor_rectangle) on
|
||||||
|
the zwp_text_input_v3 object should be sent and committed after
|
||||||
|
receiving a zwp_text_input_v3.done event with a matching serial.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_text_input_manager_v3" version="1">
|
||||||
|
<description summary="text input manager">
|
||||||
|
A factory for text-input objects. This object is a global singleton.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="Destroy the wp_text_input_manager">
|
||||||
|
Destroy the wp_text_input_manager object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_text_input">
|
||||||
|
<description summary="create a new text input object">
|
||||||
|
Creates a new text-input object for a given seat.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_text_input_v3"/>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/viewporter/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/viewporter/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "viewporter.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2013-2016 Collabora, Ltd."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/viewporter/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/viewporter/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-viewporter-protocol",
|
||||||
|
"Name": "Wayland Viewporter Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor API",
|
||||||
|
"Files": "viewporter.xml",
|
||||||
|
|
||||||
|
"Description": "The Wayland viewporter extension allows a client to scale or crop a surface without modifying the buffer",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/stable/viewporter/viewporter.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2013-2016 Collabora, Ltd."
|
||||||
|
}
|
||||||
|
]
|
186
src/3rdparty/wayland/protocols/viewporter/viewporter.xml
vendored
Normal file
186
src/3rdparty/wayland/protocols/viewporter/viewporter.xml
vendored
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="viewporter">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2013-2016 Collabora, 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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="wp_viewporter" version="1">
|
||||||
|
<description summary="surface cropping and scaling">
|
||||||
|
The global interface exposing surface cropping and scaling
|
||||||
|
capabilities is used to instantiate an interface extension for a
|
||||||
|
wl_surface object. This extended interface will then allow
|
||||||
|
cropping and scaling the surface contents, effectively
|
||||||
|
disconnecting the direct relationship between the buffer and the
|
||||||
|
surface size.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unbind from the cropping and scaling interface">
|
||||||
|
Informs the server that the client will not be using this
|
||||||
|
protocol object anymore. This does not affect any other objects,
|
||||||
|
wp_viewport objects included.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="viewport_exists" value="0"
|
||||||
|
summary="the surface already has a viewport object associated"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="get_viewport">
|
||||||
|
<description summary="extend surface interface for crop and scale">
|
||||||
|
Instantiate an interface extension for the given wl_surface to
|
||||||
|
crop and scale its content. If the given wl_surface already has
|
||||||
|
a wp_viewport object associated, the viewport_exists
|
||||||
|
protocol error is raised.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="wp_viewport"
|
||||||
|
summary="the new viewport interface id"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the surface"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="wp_viewport" version="1">
|
||||||
|
<description summary="crop and scale interface to a wl_surface">
|
||||||
|
An additional interface to a wl_surface object, which allows the
|
||||||
|
client to specify the cropping and scaling of the surface
|
||||||
|
contents.
|
||||||
|
|
||||||
|
This interface works with two concepts: the source rectangle (src_x,
|
||||||
|
src_y, src_width, src_height), and the destination size (dst_width,
|
||||||
|
dst_height). The contents of the source rectangle are scaled to the
|
||||||
|
destination size, and content outside the source rectangle is ignored.
|
||||||
|
This state is double-buffered, and is applied on the next
|
||||||
|
wl_surface.commit.
|
||||||
|
|
||||||
|
The two parts of crop and scale state are independent: the source
|
||||||
|
rectangle, and the destination size. Initially both are unset, that
|
||||||
|
is, no scaling is applied. The whole of the current wl_buffer is
|
||||||
|
used as the source, and the surface size is as defined in
|
||||||
|
wl_surface.attach.
|
||||||
|
|
||||||
|
If the destination size is set, it causes the surface size to become
|
||||||
|
dst_width, dst_height. The source (rectangle) is scaled to exactly
|
||||||
|
this size. This overrides whatever the attached wl_buffer size is,
|
||||||
|
unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface
|
||||||
|
has no content and therefore no size. Otherwise, the size is always
|
||||||
|
at least 1x1 in surface local coordinates.
|
||||||
|
|
||||||
|
If the source rectangle is set, it defines what area of the wl_buffer is
|
||||||
|
taken as the source. If the source rectangle is set and the destination
|
||||||
|
size is not set, then src_width and src_height must be integers, and the
|
||||||
|
surface size becomes the source rectangle size. This results in cropping
|
||||||
|
without scaling. If src_width or src_height are not integers and
|
||||||
|
destination size is not set, the bad_size protocol error is raised when
|
||||||
|
the surface state is applied.
|
||||||
|
|
||||||
|
The coordinate transformations from buffer pixel coordinates up to
|
||||||
|
the surface-local coordinates happen in the following order:
|
||||||
|
1. buffer_transform (wl_surface.set_buffer_transform)
|
||||||
|
2. buffer_scale (wl_surface.set_buffer_scale)
|
||||||
|
3. crop and scale (wp_viewport.set*)
|
||||||
|
This means, that the source rectangle coordinates of crop and scale
|
||||||
|
are given in the coordinates after the buffer transform and scale,
|
||||||
|
i.e. in the coordinates that would be the surface-local coordinates
|
||||||
|
if the crop and scale was not applied.
|
||||||
|
|
||||||
|
If src_x or src_y are negative, the bad_value protocol error is raised.
|
||||||
|
Otherwise, if the source rectangle is partially or completely outside of
|
||||||
|
the non-NULL wl_buffer, then the out_of_buffer protocol error is raised
|
||||||
|
when the surface state is applied. A NULL wl_buffer does not raise the
|
||||||
|
out_of_buffer error.
|
||||||
|
|
||||||
|
The x, y arguments of wl_surface.attach are applied as normal to
|
||||||
|
the surface. They indicate how many pixels to remove from the
|
||||||
|
surface size from the left and the top. In other words, they are
|
||||||
|
still in the surface-local coordinate system, just like dst_width
|
||||||
|
and dst_height are.
|
||||||
|
|
||||||
|
If the wl_surface associated with the wp_viewport is destroyed,
|
||||||
|
all wp_viewport requests except 'destroy' raise the protocol error
|
||||||
|
no_surface.
|
||||||
|
|
||||||
|
If the wp_viewport object is destroyed, the crop and scale
|
||||||
|
state is removed from the wl_surface. The change will be applied
|
||||||
|
on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="remove scaling and cropping from the surface">
|
||||||
|
The associated wl_surface's crop and scale state is removed.
|
||||||
|
The change is applied on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="bad_value" value="0"
|
||||||
|
summary="negative or zero values in width or height"/>
|
||||||
|
<entry name="bad_size" value="1"
|
||||||
|
summary="destination size is not integer"/>
|
||||||
|
<entry name="out_of_buffer" value="2"
|
||||||
|
summary="source rectangle extends outside of the content area"/>
|
||||||
|
<entry name="no_surface" value="3"
|
||||||
|
summary="the wl_surface was destroyed"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_source">
|
||||||
|
<description summary="set the source rectangle for cropping">
|
||||||
|
Set the source rectangle of the associated wl_surface. See
|
||||||
|
wp_viewport for the description, and relation to the wl_buffer
|
||||||
|
size.
|
||||||
|
|
||||||
|
If all of x, y, width and height are -1.0, the source rectangle is
|
||||||
|
unset instead. Any other set of values where width or height are zero
|
||||||
|
or negative, or x or y are negative, raise the bad_value protocol
|
||||||
|
error.
|
||||||
|
|
||||||
|
The crop and scale state is double-buffered state, and will be
|
||||||
|
applied on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="fixed" summary="source rectangle x"/>
|
||||||
|
<arg name="y" type="fixed" summary="source rectangle y"/>
|
||||||
|
<arg name="width" type="fixed" summary="source rectangle width"/>
|
||||||
|
<arg name="height" type="fixed" summary="source rectangle height"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_destination">
|
||||||
|
<description summary="set the surface size for scaling">
|
||||||
|
Set the destination size of the associated wl_surface. See
|
||||||
|
wp_viewport for the description, and relation to the wl_buffer
|
||||||
|
size.
|
||||||
|
|
||||||
|
If width is -1 and height is -1, the destination size is unset
|
||||||
|
instead. Any other pair of values for width and height that
|
||||||
|
contains zero or negative values raises the bad_value protocol
|
||||||
|
error.
|
||||||
|
|
||||||
|
The crop and scale state is double-buffered state, and will be
|
||||||
|
applied on the next wl_surface.commit.
|
||||||
|
</description>
|
||||||
|
<arg name="width" type="int" summary="surface width"/>
|
||||||
|
<arg name="height" type="int" summary="surface height"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
1
src/3rdparty/wayland/protocols/wayland/README
vendored
Normal file
1
src/3rdparty/wayland/protocols/wayland/README
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
wayland.xml from wayland version defined in qtwayland/README
|
9
src/3rdparty/wayland/protocols/wayland/REUSE.toml
vendored
Normal file
9
src/3rdparty/wayland/protocols/wayland/REUSE.toml
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "wayland.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright © 2008-2011 Kristian Høgsberg",
|
||||||
|
"Copyright © 2010-2011 Intel Corporation",
|
||||||
|
"Copyright © 2012-2013 Collabora, Ltd."]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/wayland/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/wayland/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-protocol",
|
||||||
|
"Name": "Wayland Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "wayland.xml",
|
||||||
|
|
||||||
|
"Description": "Wayland is a protocol for a compositor to talk to its clients.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1.23.0",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland/raw/1.23.0/protocol/wayland.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2008-2011 Kristian Høgsberg\nCopyright © 2010-2011 Intel Corporation\nCopyright © 2012-2013 Collabora, Ltd."
|
||||||
|
}
|
||||||
|
]
|
3248
src/3rdparty/wayland/protocols/wayland/wayland.xml
vendored
Normal file
3248
src/3rdparty/wayland/protocols/wayland/wayland.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
src/3rdparty/wayland/protocols/wl-eglstream/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/wl-eglstream/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "wl-eglstream-controller.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/wl-eglstream/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/wl-eglstream/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-eglstream-controller",
|
||||||
|
"Name": "Wayland EGLStream Controller Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor",
|
||||||
|
"Files": "wl-eglstream-controller.xml",
|
||||||
|
|
||||||
|
"Description": "Allows clients to request that the compositor creates its EGLStream.",
|
||||||
|
"Homepage": "https://github.com/NVIDIA/egl-wayland",
|
||||||
|
"Version": "1.1.1",
|
||||||
|
"DownloadLocation": "https://raw.githubusercontent.com/NVIDIA/egl-wayland/1.1.1/wayland-eglstream/wayland-eglstream-controller.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved."
|
||||||
|
}
|
||||||
|
]
|
37
src/3rdparty/wayland/protocols/wl-eglstream/wl-eglstream-controller.xml
vendored
Normal file
37
src/3rdparty/wayland/protocols/wl-eglstream/wl-eglstream-controller.xml
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="wl_eglstream_controller">
|
||||||
|
<copyright>
|
||||||
|
Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
|
||||||
|
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 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.
|
||||||
|
</copyright>
|
||||||
|
<interface name="wl_eglstream_controller" version="1">
|
||||||
|
<request name="attach_eglstream_consumer">
|
||||||
|
<description summary="Create server stream and attach consumer">
|
||||||
|
Creates the corresponding server side EGLStream from the given wl_buffer
|
||||||
|
and attaches a consumer to it.
|
||||||
|
</description>
|
||||||
|
<arg name="wl_surface" type="object" interface="wl_surface"
|
||||||
|
summary="wl_surface corresponds to the client surface associated with
|
||||||
|
newly created eglstream"/>
|
||||||
|
<arg name="wl_resource" type="object" interface="wl_buffer"
|
||||||
|
summary="wl_resource corresponding to an EGLStream"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
8
src/3rdparty/wayland/protocols/wlr-data-control/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/protocols/wlr-data-control/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "wlr-data-control-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright (c) 2018 Simon Ser",
|
||||||
|
"Copyright (c) 2019 Ivan Molodetskikht"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/wlr-data-control/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/wlr-data-control/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wlr-data-control-unstable-v1-protocol",
|
||||||
|
"Name": "Wlr Data Control Unstable V1 Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "wlr-data-control-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "This protocol allows a privileged client to control data devices.",
|
||||||
|
"Homepage": "https://gitlab.freedesktop.org/wlroots/wlr-protocols/",
|
||||||
|
"Version": "2",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/raw/master/unstable/wlr-data-control-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2018 Simon Ser\nCopyright © 2019 Ivan Molodetskikht"
|
||||||
|
}
|
||||||
|
]
|
278
src/3rdparty/wayland/protocols/wlr-data-control/wlr-data-control-unstable-v1.xml
vendored
Normal file
278
src/3rdparty/wayland/protocols/wlr-data-control/wlr-data-control-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="wlr_data_control_unstable_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2018 Simon Ser
|
||||||
|
Copyright © 2019 Ivan Molodetskikh
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
|
software and its documentation for any purpose is hereby granted
|
||||||
|
without fee, provided that the above copyright notice appear in
|
||||||
|
all copies and that both that copyright notice and this permission
|
||||||
|
notice appear in supporting documentation, and that the name of
|
||||||
|
the copyright holders not be used in advertising or publicity
|
||||||
|
pertaining to distribution of the software without specific,
|
||||||
|
written prior permission. The copyright holders make no
|
||||||
|
representations about the suitability of this software for any
|
||||||
|
purpose. It is provided "as is" without express or implied
|
||||||
|
warranty.
|
||||||
|
|
||||||
|
THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
||||||
|
THIS SOFTWARE.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="control data devices">
|
||||||
|
This protocol allows a privileged client to control data devices. In
|
||||||
|
particular, the client will be able to manage the current selection and take
|
||||||
|
the role of a clipboard manager.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="zwlr_data_control_manager_v1" version="2">
|
||||||
|
<description summary="manager to control data devices">
|
||||||
|
This interface is a manager that allows creating per-seat data device
|
||||||
|
controls.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="create_data_source">
|
||||||
|
<description summary="create a new data source">
|
||||||
|
Create a new data source.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwlr_data_control_source_v1"
|
||||||
|
summary="data source to create"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_data_device">
|
||||||
|
<description summary="get a data device for a seat">
|
||||||
|
Create a data device that can be used to manage a seat's selection.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwlr_data_control_device_v1"/>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the manager">
|
||||||
|
All objects created by the manager will still remain valid, until their
|
||||||
|
appropriate destroy request has been called.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwlr_data_control_device_v1" version="2">
|
||||||
|
<description summary="manage a data device for a seat">
|
||||||
|
This interface allows a client to manage a seat's selection.
|
||||||
|
|
||||||
|
When the seat is destroyed, this object becomes inert.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="set_selection">
|
||||||
|
<description summary="copy data to the selection">
|
||||||
|
This request asks the compositor to set the selection to the data from
|
||||||
|
the source on behalf of the client.
|
||||||
|
|
||||||
|
The given source may not be used in any further set_selection or
|
||||||
|
set_primary_selection requests. Attempting to use a previously used
|
||||||
|
source is a protocol error.
|
||||||
|
|
||||||
|
To unset the selection, set the source to NULL.
|
||||||
|
</description>
|
||||||
|
<arg name="source" type="object" interface="zwlr_data_control_source_v1"
|
||||||
|
allow-null="true"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy this data device">
|
||||||
|
Destroys the data device object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="data_offer">
|
||||||
|
<description summary="introduce a new wlr_data_control_offer">
|
||||||
|
The data_offer event introduces a new wlr_data_control_offer object,
|
||||||
|
which will subsequently be used in either the
|
||||||
|
wlr_data_control_device.selection event (for the regular clipboard
|
||||||
|
selections) or the wlr_data_control_device.primary_selection event (for
|
||||||
|
the primary clipboard selections). Immediately following the
|
||||||
|
wlr_data_control_device.data_offer event, the new data_offer object
|
||||||
|
will send out wlr_data_control_offer.offer events to describe the MIME
|
||||||
|
types it offers.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwlr_data_control_offer_v1"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="selection">
|
||||||
|
<description summary="advertise new selection">
|
||||||
|
The selection event is sent out to notify the client of a new
|
||||||
|
wlr_data_control_offer for the selection for this device. The
|
||||||
|
wlr_data_control_device.data_offer and the wlr_data_control_offer.offer
|
||||||
|
events are sent out immediately before this event to introduce the data
|
||||||
|
offer object. The selection event is sent to a client when a new
|
||||||
|
selection is set. The wlr_data_control_offer is valid until a new
|
||||||
|
wlr_data_control_offer or NULL is received. The client must destroy the
|
||||||
|
previous selection wlr_data_control_offer, if any, upon receiving this
|
||||||
|
event.
|
||||||
|
|
||||||
|
The first selection event is sent upon binding the
|
||||||
|
wlr_data_control_device object.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="object" interface="zwlr_data_control_offer_v1"
|
||||||
|
allow-null="true"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="finished">
|
||||||
|
<description summary="this data control is no longer valid">
|
||||||
|
This data control object is no longer valid and should be destroyed by
|
||||||
|
the client.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<!-- Version 2 additions -->
|
||||||
|
|
||||||
|
<event name="primary_selection" since="2">
|
||||||
|
<description summary="advertise new primary selection">
|
||||||
|
The primary_selection event is sent out to notify the client of a new
|
||||||
|
wlr_data_control_offer for the primary selection for this device. The
|
||||||
|
wlr_data_control_device.data_offer and the wlr_data_control_offer.offer
|
||||||
|
events are sent out immediately before this event to introduce the data
|
||||||
|
offer object. The primary_selection event is sent to a client when a
|
||||||
|
new primary selection is set. The wlr_data_control_offer is valid until
|
||||||
|
a new wlr_data_control_offer or NULL is received. The client must
|
||||||
|
destroy the previous primary selection wlr_data_control_offer, if any,
|
||||||
|
upon receiving this event.
|
||||||
|
|
||||||
|
If the compositor supports primary selection, the first
|
||||||
|
primary_selection event is sent upon binding the
|
||||||
|
wlr_data_control_device object.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="object" interface="zwlr_data_control_offer_v1"
|
||||||
|
allow-null="true"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<request name="set_primary_selection" since="2">
|
||||||
|
<description summary="copy data to the primary selection">
|
||||||
|
This request asks the compositor to set the primary selection to the
|
||||||
|
data from the source on behalf of the client.
|
||||||
|
|
||||||
|
The given source may not be used in any further set_selection or
|
||||||
|
set_primary_selection requests. Attempting to use a previously used
|
||||||
|
source is a protocol error.
|
||||||
|
|
||||||
|
To unset the primary selection, set the source to NULL.
|
||||||
|
|
||||||
|
The compositor will ignore this request if it does not support primary
|
||||||
|
selection.
|
||||||
|
</description>
|
||||||
|
<arg name="source" type="object" interface="zwlr_data_control_source_v1"
|
||||||
|
allow-null="true"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error" since="2">
|
||||||
|
<entry name="used_source" value="1"
|
||||||
|
summary="source given to set_selection or set_primary_selection was already used before"/>
|
||||||
|
</enum>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwlr_data_control_source_v1" version="1">
|
||||||
|
<description summary="offer to transfer data">
|
||||||
|
The wlr_data_control_source object is the source side of a
|
||||||
|
wlr_data_control_offer. It is created by the source client in a data
|
||||||
|
transfer and provides a way to describe the offered data and a way to
|
||||||
|
respond to requests to transfer the data.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="invalid_offer" value="1"
|
||||||
|
summary="offer sent after wlr_data_control_device.set_selection"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="offer">
|
||||||
|
<description summary="add an offered MIME type">
|
||||||
|
This request adds a MIME type to the set of MIME types advertised to
|
||||||
|
targets. Can be called several times to offer multiple types.
|
||||||
|
|
||||||
|
Calling this after wlr_data_control_device.set_selection is a protocol
|
||||||
|
error.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"
|
||||||
|
summary="MIME type offered by the data source"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy this source">
|
||||||
|
Destroys the data source object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="send">
|
||||||
|
<description summary="send the data">
|
||||||
|
Request for data from the client. Send the data as the specified MIME
|
||||||
|
type over the passed file descriptor, then close it.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string" summary="MIME type for the data"/>
|
||||||
|
<arg name="fd" type="fd" summary="file descriptor for the data"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="cancelled">
|
||||||
|
<description summary="selection was cancelled">
|
||||||
|
This data source is no longer valid. The data source has been replaced
|
||||||
|
by another data source.
|
||||||
|
|
||||||
|
The client should clean up and destroy this data source.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwlr_data_control_offer_v1" version="1">
|
||||||
|
<description summary="offer to transfer data">
|
||||||
|
A wlr_data_control_offer represents a piece of data offered for transfer
|
||||||
|
by another client (the source client). The offer describes the different
|
||||||
|
MIME types that the data can be converted to and provides the mechanism
|
||||||
|
for transferring the data directly from the source client.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="receive">
|
||||||
|
<description summary="request that the data is transferred">
|
||||||
|
To transfer the offered data, the client issues this request and
|
||||||
|
indicates the MIME type it wants to receive. The transfer happens
|
||||||
|
through the passed file descriptor (typically created with the pipe
|
||||||
|
system call). The source client writes the data in the MIME type
|
||||||
|
representation requested and then closes the file descriptor.
|
||||||
|
|
||||||
|
The receiving client reads from the read end of the pipe until EOF and
|
||||||
|
then closes its end, at which point the transfer is complete.
|
||||||
|
|
||||||
|
This request may happen multiple times for different MIME types.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"
|
||||||
|
summary="MIME type desired by receiver"/>
|
||||||
|
<arg name="fd" type="fd" summary="file descriptor for data transfer"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy this offer">
|
||||||
|
Destroys the data offer object.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="offer">
|
||||||
|
<description summary="advertise offered MIME type">
|
||||||
|
Sent immediately after creating the wlr_data_control_offer object.
|
||||||
|
One event per offered MIME type.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string" summary="offered MIME type"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/wp-primary-selection/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/wp-primary-selection/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "wp-primary-selection-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2015, 2016 Red Hat"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/wp-primary-selection/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/wp-primary-selection/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-primary-selection-protocol",
|
||||||
|
"Name": "Wayland Primary Selection Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "wp-primary-selection-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The primary selection extension allows copying text by selecting it and pasting it with the middle mouse button.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/unstable/primary-selection/primary-selection-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2015, 2016 Red Hat"
|
||||||
|
}
|
||||||
|
]
|
225
src/3rdparty/wayland/protocols/wp-primary-selection/wp-primary-selection-unstable-v1.xml
vendored
Normal file
225
src/3rdparty/wayland/protocols/wp-primary-selection/wp-primary-selection-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="wp_primary_selection_unstable_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2015, 2016 Red Hat
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Primary selection protocol">
|
||||||
|
This protocol provides the ability to have a primary selection device to
|
||||||
|
match that of the X server. This primary selection is a shortcut to the
|
||||||
|
common clipboard selection, where text just needs to be selected in order
|
||||||
|
to allow copying it elsewhere. The de facto way to perform this action
|
||||||
|
is the middle mouse button, although it is not limited to this one.
|
||||||
|
|
||||||
|
Clients wishing to honor primary selection should create a primary
|
||||||
|
selection source and set it as the selection through
|
||||||
|
wp_primary_selection_device.set_selection whenever the text selection
|
||||||
|
changes. In order to minimize calls in pointer-driven text selection,
|
||||||
|
it should happen only once after the operation finished. Similarly,
|
||||||
|
a NULL source should be set when text is unselected.
|
||||||
|
|
||||||
|
wp_primary_selection_offer objects are first announced through the
|
||||||
|
wp_primary_selection_device.data_offer event. Immediately after this event,
|
||||||
|
the primary data offer will emit wp_primary_selection_offer.offer events
|
||||||
|
to let know of the mime types being offered.
|
||||||
|
|
||||||
|
When the primary selection changes, the client with the keyboard focus
|
||||||
|
will receive wp_primary_selection_device.selection events. Only the client
|
||||||
|
with the keyboard focus will receive such events with a non-NULL
|
||||||
|
wp_primary_selection_offer. Across keyboard focus changes, previously
|
||||||
|
focused clients will receive wp_primary_selection_device.events with a
|
||||||
|
NULL wp_primary_selection_offer.
|
||||||
|
|
||||||
|
In order to request the primary selection data, the client must pass
|
||||||
|
a recent serial pertaining to the press event that is triggering the
|
||||||
|
operation, if the compositor deems the serial valid and recent, the
|
||||||
|
wp_primary_selection_source.send event will happen in the other end
|
||||||
|
to let the transfer begin. The client owning the primary selection
|
||||||
|
should write the requested data, and close the file descriptor
|
||||||
|
immediately.
|
||||||
|
|
||||||
|
If the primary selection owner client disappeared during the transfer,
|
||||||
|
the client reading the data will receive a
|
||||||
|
wp_primary_selection_device.selection event with a NULL
|
||||||
|
wp_primary_selection_offer, the client should take this as a hint
|
||||||
|
to finish the reads related to the no longer existing offer.
|
||||||
|
|
||||||
|
The primary selection owner should be checking for errors during
|
||||||
|
writes, merely cancelling the ongoing transfer if any happened.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="zwp_primary_selection_device_manager_v1" version="1">
|
||||||
|
<description summary="X primary selection emulation">
|
||||||
|
The primary selection device manager is a singleton global object that
|
||||||
|
provides access to the primary selection. It allows to create
|
||||||
|
wp_primary_selection_source objects, as well as retrieving the per-seat
|
||||||
|
wp_primary_selection_device objects.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="create_source">
|
||||||
|
<description summary="create a new primary selection source">
|
||||||
|
Create a new primary selection source.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_primary_selection_source_v1"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_device">
|
||||||
|
<description summary="create a new primary selection device">
|
||||||
|
Create a new data device for a given seat.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zwp_primary_selection_device_v1"/>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the primary selection device manager">
|
||||||
|
Destroy the primary selection device manager.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_primary_selection_device_v1" version="1">
|
||||||
|
<request name="set_selection">
|
||||||
|
<description summary="set the primary selection">
|
||||||
|
Replaces the current selection. The previous owner of the primary
|
||||||
|
selection will receive a wp_primary_selection_source.cancelled event.
|
||||||
|
|
||||||
|
To unset the selection, set the source to NULL.
|
||||||
|
</description>
|
||||||
|
<arg name="source" type="object" interface="zwp_primary_selection_source_v1" allow-null="true"/>
|
||||||
|
<arg name="serial" type="uint" summary="serial of the event that triggered this request"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="data_offer">
|
||||||
|
<description summary="introduce a new wp_primary_selection_offer">
|
||||||
|
Introduces a new wp_primary_selection_offer object that may be used
|
||||||
|
to receive the current primary selection. Immediately following this
|
||||||
|
event, the new wp_primary_selection_offer object will send
|
||||||
|
wp_primary_selection_offer.offer events to describe the offered mime
|
||||||
|
types.
|
||||||
|
</description>
|
||||||
|
<arg name="offer" type="new_id" interface="zwp_primary_selection_offer_v1"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="selection">
|
||||||
|
<description summary="advertise a new primary selection">
|
||||||
|
The wp_primary_selection_device.selection event is sent to notify the
|
||||||
|
client of a new primary selection. This event is sent after the
|
||||||
|
wp_primary_selection.data_offer event introducing this object, and after
|
||||||
|
the offer has announced its mimetypes through
|
||||||
|
wp_primary_selection_offer.offer.
|
||||||
|
|
||||||
|
The data_offer is valid until a new offer or NULL is received
|
||||||
|
or until the client loses keyboard focus. The client must destroy the
|
||||||
|
previous selection data_offer, if any, upon receiving this event.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="object" interface="zwp_primary_selection_offer_v1" allow-null="true"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the primary selection device">
|
||||||
|
Destroy the primary selection device.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_primary_selection_offer_v1" version="1">
|
||||||
|
<description summary="offer to transfer primary selection contents">
|
||||||
|
A wp_primary_selection_offer represents an offer to transfer the contents
|
||||||
|
of the primary selection clipboard to the client. Similar to
|
||||||
|
wl_data_offer, the offer also describes the mime types that the data can
|
||||||
|
be converted to and provides the mechanisms for transferring the data
|
||||||
|
directly to the client.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="receive">
|
||||||
|
<description summary="request that the data is transferred">
|
||||||
|
To transfer the contents of the primary selection clipboard, the client
|
||||||
|
issues this request and indicates the mime type that it wants to
|
||||||
|
receive. The transfer happens through the passed file descriptor
|
||||||
|
(typically created with the pipe system call). The source client writes
|
||||||
|
the data in the mime type representation requested and then closes the
|
||||||
|
file descriptor.
|
||||||
|
|
||||||
|
The receiving client reads from the read end of the pipe until EOF and
|
||||||
|
closes its end, at which point the transfer is complete.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"/>
|
||||||
|
<arg name="fd" type="fd"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the primary selection offer">
|
||||||
|
Destroy the primary selection offer.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="offer">
|
||||||
|
<description summary="advertise offered mime type">
|
||||||
|
Sent immediately after creating announcing the
|
||||||
|
wp_primary_selection_offer through
|
||||||
|
wp_primary_selection_device.data_offer. One event is sent per offered
|
||||||
|
mime type.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zwp_primary_selection_source_v1" version="1">
|
||||||
|
<description summary="offer to replace the contents of the primary selection">
|
||||||
|
The source side of a wp_primary_selection_offer, it provides a way to
|
||||||
|
describe the offered data and respond to requests to transfer the
|
||||||
|
requested contents of the primary selection clipboard.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="offer">
|
||||||
|
<description summary="add an offered mime type">
|
||||||
|
This request adds a mime type to the set of mime types advertised to
|
||||||
|
targets. Can be called several times to offer multiple types.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the primary selection source">
|
||||||
|
Destroy the primary selection source.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="send">
|
||||||
|
<description summary="send the primary selection contents">
|
||||||
|
Request for the current primary selection contents from the client.
|
||||||
|
Send the specified mime type over the passed file descriptor, then
|
||||||
|
close it.
|
||||||
|
</description>
|
||||||
|
<arg name="mime_type" type="string"/>
|
||||||
|
<arg name="fd" type="fd"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="cancelled">
|
||||||
|
<description summary="request for primary selection contents was canceled">
|
||||||
|
This primary selection source is no longer valid. The client should
|
||||||
|
clean up and destroy this primary selection source.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
8
src/3rdparty/wayland/protocols/xdg-activation/REUSE.toml
vendored
Normal file
8
src/3rdparty/wayland/protocols/xdg-activation/REUSE.toml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-activation-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2020 Aleix Pol Gonzalez",
|
||||||
|
"Copyright 2020 Carlos Garnacho"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
19
src/3rdparty/wayland/protocols/xdg-activation/qt_attribution.json
vendored
Normal file
19
src/3rdparty/wayland/protocols/xdg-activation/qt_attribution.json
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-activation",
|
||||||
|
"Name": "Wayland xdg-activation Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "xdg-activation-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The xdg-activation protocol provides a way for one client to pass focus to another.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1, version 1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/staging/xdg-activation/xdg-activation-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2020 Aleix Pol Gonzalez <aleixpol@kde.org>\nCopyright © 2020 Carlos Garnacho <carlosg@gnome.org>"
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
186
src/3rdparty/wayland/protocols/xdg-activation/xdg-activation-v1.xml
vendored
Normal file
186
src/3rdparty/wayland/protocols/xdg-activation/xdg-activation-v1.xml
vendored
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_activation_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2020 Aleix Pol Gonzalez <aleixpol@kde.org>
|
||||||
|
Copyright © 2020 Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Protocol for requesting activation of surfaces">
|
||||||
|
The way for a client to pass focus to another toplevel is as follows.
|
||||||
|
|
||||||
|
The client that intends to activate another toplevel uses the
|
||||||
|
xdg_activation_v1.get_activation_token request to get an activation token.
|
||||||
|
This token is then passed to the client to be activated through a separate
|
||||||
|
band of communication. The client to be activated will then pass the token
|
||||||
|
it received to the xdg_activation_v1.activate request. The compositor can
|
||||||
|
then use this token to decide how to react to the activation request.
|
||||||
|
|
||||||
|
The token the activating client gets may be ineffective either already at
|
||||||
|
the time it receives it, for example if it was not focused, for focus
|
||||||
|
stealing prevention. The activating client will have no way to discover
|
||||||
|
the validity of the token, and may still forward it to the to be activated
|
||||||
|
client.
|
||||||
|
|
||||||
|
The created activation token may optionally get information attached to it
|
||||||
|
that can be used by the compositor to identify the application that we
|
||||||
|
intend to activate. This can for example be used to display a visual hint
|
||||||
|
about what application is being started.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is currently in the testing
|
||||||
|
phase. Backward compatible changes may be added together with the
|
||||||
|
corresponding interface version bump. Backward incompatible changes can
|
||||||
|
only be done by creating a new major version of the extension.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="xdg_activation_v1" version="1">
|
||||||
|
<description summary="interface for activating surfaces">
|
||||||
|
A global interface used for informing the compositor about applications
|
||||||
|
being activated or started, or for applications to request to be
|
||||||
|
activated.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_activation object">
|
||||||
|
Notify the compositor that the xdg_activation object will no longer be
|
||||||
|
used.
|
||||||
|
|
||||||
|
The child objects created via this interface are unaffected and should
|
||||||
|
be destroyed separately.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_activation_token">
|
||||||
|
<description summary="requests a token">
|
||||||
|
Creates an xdg_activation_token_v1 object that will provide
|
||||||
|
the initiating client with a unique token for this activation. This
|
||||||
|
token should be offered to the clients to be activated.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="id" type="new_id" interface="xdg_activation_token_v1"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="activate">
|
||||||
|
<description summary="notify new interaction being available">
|
||||||
|
Requests surface activation. It's up to the compositor to display
|
||||||
|
this information as desired, for example by placing the surface above
|
||||||
|
the rest.
|
||||||
|
|
||||||
|
The compositor may know who requested this by checking the activation
|
||||||
|
token and might decide not to follow through with the activation if it's
|
||||||
|
considered unwanted.
|
||||||
|
|
||||||
|
Compositors can ignore unknown presentation tokens when an invalid
|
||||||
|
token is passed.
|
||||||
|
</description>
|
||||||
|
<arg name="token" type="string" summary="the activation token of the initiating client"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the wl_surface to activate"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="xdg_activation_token_v1" version="1">
|
||||||
|
<description summary="an exported activation handle">
|
||||||
|
An object for setting up a token and receiving a token handle that can
|
||||||
|
be passed as an activation token to another client.
|
||||||
|
|
||||||
|
The object is created using the xdg_activation_v1.get_activation_token
|
||||||
|
request. This object should then be populated with the app_id, surface
|
||||||
|
and serial information and committed. The compositor shall then issue a
|
||||||
|
done event with the token. In case the request's parameters are invalid,
|
||||||
|
the compositor will provide an invalid token.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="already_used" value="0"
|
||||||
|
summary="The token has already been used previously"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_serial">
|
||||||
|
<description summary="specifies the seat and serial of the activating event">
|
||||||
|
Provides information about the seat and serial event that requested the
|
||||||
|
token.
|
||||||
|
|
||||||
|
Must be sent before commit. This information is optional.
|
||||||
|
</description>
|
||||||
|
<arg name="serial" type="uint"
|
||||||
|
summary="the serial of the event that triggered the activation"/>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat"
|
||||||
|
summary="the wl_seat of the event"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_app_id">
|
||||||
|
<description summary="specifies the application being activated">
|
||||||
|
The requesting client can specify an app_id to associate the token
|
||||||
|
being created with it.
|
||||||
|
|
||||||
|
Must be sent before commit. This information is optional.
|
||||||
|
</description>
|
||||||
|
<arg name="app_id" type="string"
|
||||||
|
summary="the application id of the client being activated."/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_surface">
|
||||||
|
<description summary="specifies the application being activated">
|
||||||
|
The requesting client can specify a surface to associate the token
|
||||||
|
being created with it.
|
||||||
|
|
||||||
|
Must be triggered before commit. This information is optional.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the requesting surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="commit">
|
||||||
|
<description summary="issues the token request">
|
||||||
|
Requests an activation token based on the different parameters that
|
||||||
|
have been offered through set_serial, set_surface and set_app_id.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="done">
|
||||||
|
<description summary="the exported activation token">
|
||||||
|
The 'done' event contains the unique token of this activation request
|
||||||
|
and notifies that the provider is done.
|
||||||
|
|
||||||
|
Applications will typically receive the token through the
|
||||||
|
XDG_ACTIVATION_TOKEN environment variable as set by its launcher, and
|
||||||
|
should unset the environment variable right after this request, in
|
||||||
|
order to avoid propagating it to child processes.
|
||||||
|
|
||||||
|
Applications implementing the D-Bus interface org.freedesktop.Application
|
||||||
|
should get their token under XDG_ACTIVATION_TOKEN on their platform_data.
|
||||||
|
|
||||||
|
Presentation tokens may be transferred across clients through means not
|
||||||
|
described in this protocol.
|
||||||
|
</description>
|
||||||
|
<arg name="token" type="string" summary="the exported activation token"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_activation_token_v1 object">
|
||||||
|
Notify the compositor that the xdg_activation_token_v1 object will no
|
||||||
|
longer be used.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/xdg-decoration/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-decoration/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-decoration-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2018 Simon Ser"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-decoration/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-decoration/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-decoration-protocol",
|
||||||
|
"Name": "Wayland xdg-decoration Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor API, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xdg-decoration-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The xdg-decoration protocol allows a compositor to announce support for server-side decorations.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1, version 1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2018 Simon Ser"
|
||||||
|
}
|
||||||
|
]
|
156
src/3rdparty/wayland/protocols/xdg-decoration/xdg-decoration-unstable-v1.xml
vendored
Normal file
156
src/3rdparty/wayland/protocols/xdg-decoration/xdg-decoration-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_decoration_unstable_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2018 Simon Ser
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="zxdg_decoration_manager_v1" version="1">
|
||||||
|
<description summary="window decoration manager">
|
||||||
|
This interface allows a compositor to announce support for server-side
|
||||||
|
decorations.
|
||||||
|
|
||||||
|
A window decoration is a set of window controls as deemed appropriate by
|
||||||
|
the party managing them, such as user interface components used to move,
|
||||||
|
resize and change a window's state.
|
||||||
|
|
||||||
|
A client can use this protocol to request being decorated by a supporting
|
||||||
|
compositor.
|
||||||
|
|
||||||
|
If compositor and client do not negotiate the use of a server-side
|
||||||
|
decoration using this protocol, clients continue to self-decorate as they
|
||||||
|
see fit.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the decoration manager object">
|
||||||
|
Destroy the decoration manager. This doesn't destroy objects created
|
||||||
|
with the manager.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_toplevel_decoration">
|
||||||
|
<description summary="create a new toplevel decoration object">
|
||||||
|
Create a new decoration object associated with the given toplevel.
|
||||||
|
|
||||||
|
Creating an xdg_toplevel_decoration from an xdg_toplevel which has a
|
||||||
|
buffer attached or committed is a client error, and any attempts by a
|
||||||
|
client to attach or manipulate a buffer prior to the first
|
||||||
|
xdg_toplevel_decoration.configure event must also be treated as
|
||||||
|
errors.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zxdg_toplevel_decoration_v1"/>
|
||||||
|
<arg name="toplevel" type="object" interface="xdg_toplevel"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zxdg_toplevel_decoration_v1" version="1">
|
||||||
|
<description summary="decoration object for a toplevel surface">
|
||||||
|
The decoration object allows the compositor to toggle server-side window
|
||||||
|
decorations for a toplevel surface. The client can request to switch to
|
||||||
|
another mode.
|
||||||
|
|
||||||
|
The xdg_toplevel_decoration object must be destroyed before its
|
||||||
|
xdg_toplevel.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="unconfigured_buffer" value="0"
|
||||||
|
summary="xdg_toplevel has a buffer attached before configure"/>
|
||||||
|
<entry name="already_constructed" value="1"
|
||||||
|
summary="xdg_toplevel already has a decoration object"/>
|
||||||
|
<entry name="orphaned" value="2"
|
||||||
|
summary="xdg_toplevel destroyed before the decoration object"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the decoration object">
|
||||||
|
Switch back to a mode without any server-side decorations at the next
|
||||||
|
commit.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="mode">
|
||||||
|
<description summary="window decoration modes">
|
||||||
|
These values describe window decoration modes.
|
||||||
|
</description>
|
||||||
|
<entry name="client_side" value="1"
|
||||||
|
summary="no server-side window decoration"/>
|
||||||
|
<entry name="server_side" value="2"
|
||||||
|
summary="server-side window decoration"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="set_mode">
|
||||||
|
<description summary="set the decoration mode">
|
||||||
|
Set the toplevel surface decoration mode. This informs the compositor
|
||||||
|
that the client prefers the provided decoration mode.
|
||||||
|
|
||||||
|
After requesting a decoration mode, the compositor will respond by
|
||||||
|
emitting a xdg_surface.configure event. The client should then update
|
||||||
|
its content, drawing it without decorations if the received mode is
|
||||||
|
server-side decorations. The client must also acknowledge the configure
|
||||||
|
when committing the new content (see xdg_surface.ack_configure).
|
||||||
|
|
||||||
|
The compositor can decide not to use the client's mode and enforce a
|
||||||
|
different mode instead.
|
||||||
|
|
||||||
|
Clients whose decoration mode depend on the xdg_toplevel state may send
|
||||||
|
a set_mode request in response to a xdg_surface.configure event and wait
|
||||||
|
for the next xdg_surface.configure event to prevent unwanted state.
|
||||||
|
Such clients are responsible for preventing configure loops and must
|
||||||
|
make sure not to send multiple successive set_mode requests with the
|
||||||
|
same decoration mode.
|
||||||
|
</description>
|
||||||
|
<arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="unset_mode">
|
||||||
|
<description summary="unset the decoration mode">
|
||||||
|
Unset the toplevel surface decoration mode. This informs the compositor
|
||||||
|
that the client doesn't prefer a particular decoration mode.
|
||||||
|
|
||||||
|
This request has the same semantics as set_mode.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="configure">
|
||||||
|
<description summary="suggest a surface change">
|
||||||
|
The configure event asks the client to change its decoration mode. The
|
||||||
|
configured state should not be applied immediately. Clients must send an
|
||||||
|
ack_configure in response to this event. See xdg_surface.configure and
|
||||||
|
xdg_surface.ack_configure for details.
|
||||||
|
|
||||||
|
A configure event can be sent at any time. The specified mode must be
|
||||||
|
obeyed by the client.
|
||||||
|
</description>
|
||||||
|
<arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/xdg-dialog/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-dialog/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-dialog-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2023 Carlos Garnacho"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-dialog/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-dialog/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "xdg-dialog-v1",
|
||||||
|
"Name": "Wayland Dialog Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "xdg-dialog-v1.xml",
|
||||||
|
|
||||||
|
"Description": "Register toplevel as dialogs",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2023 Carlos Garnacho"
|
||||||
|
}
|
||||||
|
]
|
110
src/3rdparty/wayland/protocols/xdg-dialog/xdg-dialog-v1.xml
vendored
Normal file
110
src/3rdparty/wayland/protocols/xdg-dialog/xdg-dialog-v1.xml
vendored
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="dialog_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2023 Carlos Garnacho
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="xdg_wm_dialog_v1" version="1">
|
||||||
|
<description summary="create dialogs related to other toplevels">
|
||||||
|
The xdg_wm_dialog_v1 interface is exposed as a global object allowing
|
||||||
|
to register surfaces with a xdg_toplevel role as "dialogs" relative to
|
||||||
|
another toplevel.
|
||||||
|
|
||||||
|
The compositor may let this relation influence how the surface is
|
||||||
|
placed, displayed or interacted with.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is currently in the testing
|
||||||
|
phase. Backward compatible changes may be added together with the
|
||||||
|
corresponding interface version bump. Backward incompatible changes can
|
||||||
|
only be done by creating a new major version of the extension.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="already_used" value="0"
|
||||||
|
summary="the xdg_toplevel object has already been used to create a xdg_dialog_v1"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the dialog manager object">
|
||||||
|
Destroys the xdg_wm_dialog_v1 object. This does not affect
|
||||||
|
the xdg_dialog_v1 objects generated through it.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_xdg_dialog">
|
||||||
|
<description summary="create a dialog object">
|
||||||
|
Creates a xdg_dialog_v1 object for the given toplevel. See the interface
|
||||||
|
description for more details.
|
||||||
|
|
||||||
|
Compositors must raise an already_used error if clients attempt to
|
||||||
|
create multiple xdg_dialog_v1 objects for the same xdg_toplevel.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="xdg_dialog_v1"/>
|
||||||
|
<arg name="toplevel" type="object" interface="xdg_toplevel"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="xdg_dialog_v1" version="1">
|
||||||
|
<description summary="dialog object">
|
||||||
|
A xdg_dialog_v1 object is an ancillary object tied to a xdg_toplevel. Its
|
||||||
|
purpose is hinting the compositor that the toplevel is a "dialog" (e.g. a
|
||||||
|
temporary window) relative to another toplevel (see
|
||||||
|
xdg_toplevel.set_parent). If the xdg_toplevel is destroyed, the xdg_dialog_v1
|
||||||
|
becomes inert.
|
||||||
|
|
||||||
|
Through this object, the client may provide additional hints about
|
||||||
|
the purpose of the secondary toplevel. This interface has no effect
|
||||||
|
on toplevels that are not attached to a parent toplevel.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the dialog object">
|
||||||
|
Destroys the xdg_dialog_v1 object. If this object is destroyed
|
||||||
|
before the related xdg_toplevel, the compositor should unapply its
|
||||||
|
effects.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_modal">
|
||||||
|
<description summary="mark dialog as modal">
|
||||||
|
Hints that the dialog has "modal" behavior. Modal dialogs typically
|
||||||
|
require to be fully addressed by the user (i.e. closed) before resuming
|
||||||
|
interaction with the parent toplevel, and may require a distinct
|
||||||
|
presentation.
|
||||||
|
|
||||||
|
Clients must implement the logic to filter events in the parent
|
||||||
|
toplevel on their own.
|
||||||
|
|
||||||
|
Compositors may choose any policy in event delivery to the parent
|
||||||
|
toplevel, from delivering all events unfiltered to using them for
|
||||||
|
internal consumption.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="unset_modal">
|
||||||
|
<description summary="mark dialog as not modal">
|
||||||
|
Drops the hint that this dialog has "modal" behavior. See
|
||||||
|
xdg_dialog_v1.set_modal for more details.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/xdg-foreign/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-foreign/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-foreign-unstable-v2.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2015-2016 Red Hat Inc."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-foreign/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-foreign/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "xdg-foreign-unstable-v2",
|
||||||
|
"Name": "Wayland XDG Foreign Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland platform plugin",
|
||||||
|
"Files": "xdg-foreign-unstable-v2.xml",
|
||||||
|
|
||||||
|
"Description": "Allows referencing surfaces of different clients",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/raw/1.25/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2015-2016 Red Hat Inc."
|
||||||
|
}
|
||||||
|
]
|
200
src/3rdparty/wayland/protocols/xdg-foreign/xdg-foreign-unstable-v2.xml
vendored
Normal file
200
src/3rdparty/wayland/protocols/xdg-foreign/xdg-foreign-unstable-v2.xml
vendored
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_foreign_unstable_v2">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2015-2016 Red Hat Inc.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Protocol for exporting xdg surface handles">
|
||||||
|
This protocol specifies a way for making it possible to reference a surface
|
||||||
|
of a different client. With such a reference, a client can, by using the
|
||||||
|
interfaces provided by this protocol, manipulate the relationship between
|
||||||
|
its own surfaces and the surface of some other client. For example, stack
|
||||||
|
some of its own surface above the other clients surface.
|
||||||
|
|
||||||
|
In order for a client A to get a reference of a surface of client B, client
|
||||||
|
B must first export its surface using xdg_exporter.export_toplevel. Upon
|
||||||
|
doing this, client B will receive a handle (a unique string) that it may
|
||||||
|
share with client A in some way (for example D-Bus). After client A has
|
||||||
|
received the handle from client B, it may use xdg_importer.import_toplevel
|
||||||
|
to create a reference to the surface client B just exported. See the
|
||||||
|
corresponding requests for details.
|
||||||
|
|
||||||
|
A possible use case for this is out-of-process dialogs. For example when a
|
||||||
|
sandboxed client without file system access needs the user to select a file
|
||||||
|
on the file system, given sandbox environment support, it can export its
|
||||||
|
surface, passing the exported surface handle to an unsandboxed process that
|
||||||
|
can show a file browser dialog and stack it above the sandboxed client's
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="zxdg_exporter_v2" version="1">
|
||||||
|
<description summary="interface for exporting surfaces">
|
||||||
|
A global interface used for exporting surfaces that can later be imported
|
||||||
|
using xdg_importer.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_exporter object">
|
||||||
|
Notify the compositor that the xdg_exporter object will no longer be
|
||||||
|
used.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<description summary="error values">
|
||||||
|
These errors can be emitted in response to invalid xdg_exporter
|
||||||
|
requests.
|
||||||
|
</description>
|
||||||
|
<entry name="invalid_surface" value="0" summary="surface is not an xdg_toplevel"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="export_toplevel">
|
||||||
|
<description summary="export a toplevel surface">
|
||||||
|
The export_toplevel request exports the passed surface so that it can later be
|
||||||
|
imported via xdg_importer. When called, a new xdg_exported object will
|
||||||
|
be created and xdg_exported.handle will be sent immediately. See the
|
||||||
|
corresponding interface and event for details.
|
||||||
|
|
||||||
|
A surface may be exported multiple times, and each exported handle may
|
||||||
|
be used to create an xdg_imported multiple times. Only xdg_toplevel
|
||||||
|
equivalent surfaces may be exported, otherwise an invalid_surface
|
||||||
|
protocol error is sent.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zxdg_exported_v2"
|
||||||
|
summary="the new xdg_exported object"/>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the surface to export"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zxdg_importer_v2" version="1">
|
||||||
|
<description summary="interface for importing surfaces">
|
||||||
|
A global interface used for importing surfaces exported by xdg_exporter.
|
||||||
|
With this interface, a client can create a reference to a surface of
|
||||||
|
another client.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_importer object">
|
||||||
|
Notify the compositor that the xdg_importer object will no longer be
|
||||||
|
used.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="import_toplevel">
|
||||||
|
<description summary="import a toplevel surface">
|
||||||
|
The import_toplevel request imports a surface from any client given a handle
|
||||||
|
retrieved by exporting said surface using xdg_exporter.export_toplevel.
|
||||||
|
When called, a new xdg_imported object will be created. This new object
|
||||||
|
represents the imported surface, and the importing client can
|
||||||
|
manipulate its relationship using it. See xdg_imported for details.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zxdg_imported_v2"
|
||||||
|
summary="the new xdg_imported object"/>
|
||||||
|
<arg name="handle" type="string"
|
||||||
|
summary="the exported surface handle"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zxdg_exported_v2" version="1">
|
||||||
|
<description summary="an exported surface handle">
|
||||||
|
An xdg_exported object represents an exported reference to a surface. The
|
||||||
|
exported surface may be referenced as long as the xdg_exported object not
|
||||||
|
destroyed. Destroying the xdg_exported invalidates any relationship the
|
||||||
|
importer may have established using xdg_imported.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="unexport the exported surface">
|
||||||
|
Revoke the previously exported surface. This invalidates any
|
||||||
|
relationship the importer may have set up using the xdg_imported created
|
||||||
|
given the handle sent via xdg_exported.handle.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="handle">
|
||||||
|
<description summary="the exported surface handle">
|
||||||
|
The handle event contains the unique handle of this exported surface
|
||||||
|
reference. It may be shared with any client, which then can use it to
|
||||||
|
import the surface by calling xdg_importer.import_toplevel. A handle
|
||||||
|
may be used to import the surface multiple times.
|
||||||
|
</description>
|
||||||
|
<arg name="handle" type="string" summary="the exported surface handle"/>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zxdg_imported_v2" version="1">
|
||||||
|
<description summary="an imported surface handle">
|
||||||
|
An xdg_imported object represents an imported reference to surface exported
|
||||||
|
by some client. A client can use this interface to manipulate
|
||||||
|
relationships between its own surfaces and the imported surface.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<description summary="error values">
|
||||||
|
These errors can be emitted in response to invalid xdg_imported
|
||||||
|
requests.
|
||||||
|
</description>
|
||||||
|
<entry name="invalid_surface" value="0" summary="surface is not an xdg_toplevel"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_imported object">
|
||||||
|
Notify the compositor that it will no longer use the xdg_imported
|
||||||
|
object. Any relationship that may have been set up will at this point
|
||||||
|
be invalidated.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="set_parent_of">
|
||||||
|
<description summary="set as the parent of some surface">
|
||||||
|
Set the imported surface as the parent of some surface of the client.
|
||||||
|
The passed surface must be an xdg_toplevel equivalent, otherwise an
|
||||||
|
invalid_surface protocol error is sent. Calling this function sets up
|
||||||
|
a surface to surface relation with the same stacking and positioning
|
||||||
|
semantics as xdg_toplevel.set_parent.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
summary="the child surface"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="destroyed">
|
||||||
|
<description summary="the imported surface handle has been destroyed">
|
||||||
|
The imported surface handle has been destroyed and any relationship set
|
||||||
|
up has been invalidated. This may happen for various reasons, for
|
||||||
|
example if the exported surface or the exported surface handle has been
|
||||||
|
destroyed, if the handle used for importing was invalid.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/xdg-output/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-output/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-output-unstable-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2017 Red Hat Inc."
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-output/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-output/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-output-protocol",
|
||||||
|
"Name": "Wayland XDG Output Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor API, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xdg-output-unstable-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The XDG Output protocol is an extended way to describe output regions under Wayland",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "unstable v1, version 3",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.18/unstable/xdg-output/xdg-output-unstable-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2017 Red Hat Inc."
|
||||||
|
}
|
||||||
|
]
|
222
src/3rdparty/wayland/protocols/xdg-output/xdg-output-unstable-v1.xml
vendored
Normal file
222
src/3rdparty/wayland/protocols/xdg-output/xdg-output-unstable-v1.xml
vendored
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_output_unstable_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2017 Red Hat Inc.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<description summary="Protocol to describe output regions">
|
||||||
|
This protocol aims at describing outputs in a way which is more in line
|
||||||
|
with the concept of an output on desktop oriented systems.
|
||||||
|
|
||||||
|
Some information are more specific to the concept of an output for
|
||||||
|
a desktop oriented system and may not make sense in other applications,
|
||||||
|
such as IVI systems for example.
|
||||||
|
|
||||||
|
Typically, the global compositor space on a desktop system is made of
|
||||||
|
a contiguous or overlapping set of rectangular regions.
|
||||||
|
|
||||||
|
The logical_position and logical_size events defined in this protocol
|
||||||
|
might provide information identical to their counterparts already
|
||||||
|
available from wl_output, in which case the information provided by this
|
||||||
|
protocol should be preferred to their equivalent in wl_output. The goal is
|
||||||
|
to move the desktop specific concepts (such as output location within the
|
||||||
|
global compositor space, etc.) out of the core wl_output protocol.
|
||||||
|
|
||||||
|
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.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<interface name="zxdg_output_manager_v1" version="3">
|
||||||
|
<description summary="manage xdg_output objects">
|
||||||
|
A global factory interface for xdg_output objects.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_output_manager object">
|
||||||
|
Using this request a client can tell the server that it is not
|
||||||
|
going to use the xdg_output_manager object anymore.
|
||||||
|
|
||||||
|
Any objects already created through this instance are not affected.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_xdg_output">
|
||||||
|
<description summary="create an xdg output from a wl_output">
|
||||||
|
This creates a new xdg_output object for the given wl_output.
|
||||||
|
</description>
|
||||||
|
<arg name="id" type="new_id" interface="zxdg_output_v1"/>
|
||||||
|
<arg name="output" type="object" interface="wl_output"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="zxdg_output_v1" version="3">
|
||||||
|
<description summary="compositor logical output region">
|
||||||
|
An xdg_output describes part of the compositor geometry.
|
||||||
|
|
||||||
|
This typically corresponds to a monitor that displays part of the
|
||||||
|
compositor space.
|
||||||
|
|
||||||
|
For objects version 3 onwards, after all xdg_output properties have been
|
||||||
|
sent (when the object is created and when properties are updated), a
|
||||||
|
wl_output.done event is sent. This allows changes to the output
|
||||||
|
properties to be seen as atomic, even if they happen via multiple events.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_output object">
|
||||||
|
Using this request a client can tell the server that it is not
|
||||||
|
going to use the xdg_output object anymore.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<event name="logical_position">
|
||||||
|
<description summary="position of the output within the global compositor space">
|
||||||
|
The position event describes the location of the wl_output within
|
||||||
|
the global compositor space.
|
||||||
|
|
||||||
|
The logical_position event is sent after creating an xdg_output
|
||||||
|
(see xdg_output_manager.get_xdg_output) and whenever the location
|
||||||
|
of the output changes within the global compositor space.
|
||||||
|
</description>
|
||||||
|
<arg name="x" type="int"
|
||||||
|
summary="x position within the global compositor space"/>
|
||||||
|
<arg name="y" type="int"
|
||||||
|
summary="y position within the global compositor space"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="logical_size">
|
||||||
|
<description summary="size of the output in the global compositor space">
|
||||||
|
The logical_size event describes the size of the output in the
|
||||||
|
global compositor space.
|
||||||
|
|
||||||
|
Most regular Wayland clients should not pay attention to the
|
||||||
|
logical size and would rather rely on xdg_shell interfaces.
|
||||||
|
|
||||||
|
Some clients such as Xwayland, however, need this to configure
|
||||||
|
their surfaces in the global compositor space as the compositor
|
||||||
|
may apply a different scale from what is advertised by the output
|
||||||
|
scaling property (to achieve fractional scaling, for example).
|
||||||
|
|
||||||
|
For example, for a wl_output mode 3840×2160 and a scale factor 2:
|
||||||
|
|
||||||
|
- A compositor not scaling the monitor viewport in its compositing space
|
||||||
|
will advertise a logical size of 3840×2160,
|
||||||
|
|
||||||
|
- A compositor scaling the monitor viewport with scale factor 2 will
|
||||||
|
advertise a logical size of 1920×1080,
|
||||||
|
|
||||||
|
- A compositor scaling the monitor viewport using a fractional scale of
|
||||||
|
1.5 will advertise a logical size of 2560×1440.
|
||||||
|
|
||||||
|
For example, for a wl_output mode 1920×1080 and a 90 degree rotation,
|
||||||
|
the compositor will advertise a logical size of 1080x1920.
|
||||||
|
|
||||||
|
The logical_size event is sent after creating an xdg_output
|
||||||
|
(see xdg_output_manager.get_xdg_output) and whenever the logical
|
||||||
|
size of the output changes, either as a result of a change in the
|
||||||
|
applied scale or because of a change in the corresponding output
|
||||||
|
mode(see wl_output.mode) or transform (see wl_output.transform).
|
||||||
|
</description>
|
||||||
|
<arg name="width" type="int"
|
||||||
|
summary="width in global compositor space"/>
|
||||||
|
<arg name="height" type="int"
|
||||||
|
summary="height in global compositor space"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="done" deprecated-since="3">
|
||||||
|
<description summary="all information about the output have been sent">
|
||||||
|
This event is sent after all other properties of an xdg_output
|
||||||
|
have been sent.
|
||||||
|
|
||||||
|
This allows changes to the xdg_output properties to be seen as
|
||||||
|
atomic, even if they happen via multiple events.
|
||||||
|
|
||||||
|
For objects version 3 onwards, this event is deprecated. Compositors
|
||||||
|
are not required to send it anymore and must send wl_output.done
|
||||||
|
instead.
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<!-- Version 2 additions -->
|
||||||
|
|
||||||
|
<event name="name" since="2">
|
||||||
|
<description summary="name of this output">
|
||||||
|
Many compositors will assign names to their outputs, show them to the
|
||||||
|
user, allow them to be configured by name, etc. The client may wish to
|
||||||
|
know this name as well to offer the user similar behaviors.
|
||||||
|
|
||||||
|
The naming convention is compositor defined, but limited to
|
||||||
|
alphanumeric characters and dashes (-). Each name is unique among all
|
||||||
|
wl_output globals, but if a wl_output global is destroyed the same name
|
||||||
|
may be reused later. The names will also remain consistent across
|
||||||
|
sessions with the same hardware and software configuration.
|
||||||
|
|
||||||
|
Examples of names include 'HDMI-A-1', 'WL-1', 'X11-1', etc. However, do
|
||||||
|
not assume that the name is a reflection of an underlying DRM
|
||||||
|
connector, X11 connection, etc.
|
||||||
|
|
||||||
|
The name event is sent after creating an xdg_output (see
|
||||||
|
xdg_output_manager.get_xdg_output). This event is only sent once per
|
||||||
|
xdg_output, and the name does not change over the lifetime of the
|
||||||
|
wl_output global.
|
||||||
|
|
||||||
|
This event is deprecated, instead clients should use wl_output.name.
|
||||||
|
Compositors must still support this event.
|
||||||
|
</description>
|
||||||
|
<arg name="name" type="string" summary="output name"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
<event name="description" since="2">
|
||||||
|
<description summary="human-readable description of this output">
|
||||||
|
Many compositors can produce human-readable descriptions of their
|
||||||
|
outputs. The client may wish to know this description as well, to
|
||||||
|
communicate the user for various purposes.
|
||||||
|
|
||||||
|
The description is a UTF-8 string with no convention defined for its
|
||||||
|
contents. Examples might include 'Foocorp 11" Display' or 'Virtual X11
|
||||||
|
output via :1'.
|
||||||
|
|
||||||
|
The description event is sent after creating an xdg_output (see
|
||||||
|
xdg_output_manager.get_xdg_output) and whenever the description
|
||||||
|
changes. The description is optional, and may not be sent at all.
|
||||||
|
|
||||||
|
For objects of version 2 and lower, this event is only sent once per
|
||||||
|
xdg_output, and the description does not change over the lifetime of
|
||||||
|
the wl_output global.
|
||||||
|
|
||||||
|
This event is deprecated, instead clients should use
|
||||||
|
wl_output.description. Compositors must still support this event.
|
||||||
|
</description>
|
||||||
|
<arg name="description" type="string" summary="output description"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
22
src/3rdparty/wayland/protocols/xdg-shell/REUSE.toml
vendored
Normal file
22
src/3rdparty/wayland/protocols/xdg-shell/REUSE.toml
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-shell.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright 2008-2013 Kristian Høgsberg",
|
||||||
|
"Copyright 2013 Rafael Antognolli",
|
||||||
|
"Copyright 2013 Jasper St. Pierre",
|
||||||
|
"Copyright 2010-2013 Intel Corporation",
|
||||||
|
"Copyright 2015-2017 Samsung Electronics Co., Ltd",
|
||||||
|
"Copyright 2015-2017 Red Hat Inc."]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-shell-unstable-v6.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
comment = "missing from qt_atttribution.json"
|
||||||
|
SPDX-FileCopyrightText = ["Copyright © 2008-2013 Kristian Høgsberg",
|
||||||
|
"Copyright © 2013 Rafael Antognolli",
|
||||||
|
"Copyright © 2013 Jasper St. Pierre",
|
||||||
|
"Copyright © 2010-2013 Intel Corporation"]
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-shell/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-shell/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-shell-protocol",
|
||||||
|
"Name": "Wayland XDG Shell Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xdg-shell.xml",
|
||||||
|
|
||||||
|
"Description": "The XDG-Shell protocol is an extended way to manage surfaces under Wayland compositors.",
|
||||||
|
"Homepage": "https://gitlab.freedesktop.org/wayland/wayland-protocols/",
|
||||||
|
"Version": "1.18",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/tree/1.18/",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2008-2013 Kristian Høgsberg\nCopyright © 2013 Rafael Antognolli\nCopyright © 2013 Jasper St. Pierre\nCopyright © 2010-2013 Intel Corporation\nCopyright © 2015-2017 Samsung Electronics Co., Ltd\nCopyright © 2015-2017 Red Hat Inc.\n"
|
||||||
|
}
|
||||||
|
]
|
1044
src/3rdparty/wayland/protocols/xdg-shell/xdg-shell-unstable-v6.xml
vendored
Normal file
1044
src/3rdparty/wayland/protocols/xdg-shell/xdg-shell-unstable-v6.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1370
src/3rdparty/wayland/protocols/xdg-shell/xdg-shell.xml
vendored
Normal file
1370
src/3rdparty/wayland/protocols/xdg-shell/xdg-shell.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
src/3rdparty/wayland/protocols/xdg-system-bell/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-system-bell/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = ["xdg-system-bell-v1.xml"]
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright (C) 2016, 2023 Red Hat"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-system-bell/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-system-bell/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-system-bell-protocol",
|
||||||
|
"Name": "Wayland XDG System Bell Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xdg-system-bell-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The XDG-System-Bell protocol provides a mechanism for apps to provide visual notification feedback through the compositor.",
|
||||||
|
"Homepage": "https://gitlab.freedesktop.org/wayland/wayland-protocols/",
|
||||||
|
"Version": "1.18",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/tree/1.38/",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2016, 2023 Red Hat\n"
|
||||||
|
}
|
||||||
|
]
|
58
src/3rdparty/wayland/protocols/xdg-system-bell/xdg-system-bell-v1.xml
vendored
Normal file
58
src/3rdparty/wayland/protocols/xdg-system-bell/xdg-system-bell-v1.xml
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_system_bell_v1">
|
||||||
|
<copyright>
|
||||||
|
Copyright © 2016, 2023 Red Hat
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="xdg_system_bell_v1" version="1">
|
||||||
|
<description summary="system bell">
|
||||||
|
This global interface enables clients to ring the system bell.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is currently in the testing
|
||||||
|
phase. Backward compatible changes may be added together with the
|
||||||
|
corresponding interface version bump. Backward incompatible changes can
|
||||||
|
only be done by creating a new major version of the extension.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the system bell object">
|
||||||
|
Notify that the object will no longer be used.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="ring">
|
||||||
|
<description summary="ring the system bell">
|
||||||
|
This requests rings the system bell on behalf of a client. How ringing
|
||||||
|
the bell is implemented is up to the compositor. It may be an audible
|
||||||
|
sound, a visual feedback of some kind, or any other thing including
|
||||||
|
nothing.
|
||||||
|
|
||||||
|
The passed surface should correspond to a toplevel like surface role,
|
||||||
|
or be null, meaning the client doesn't have a particular toplevel it
|
||||||
|
wants to associate the bell ringing with. See the xdg-shell protocol
|
||||||
|
extension for a toplevel like surface role.
|
||||||
|
</description>
|
||||||
|
<arg name="surface" type="object" interface="wl_surface"
|
||||||
|
allow-null="true" summary="associated surface"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
7
src/3rdparty/wayland/protocols/xdg-toplevel-drag/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-toplevel-drag/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-toplevel-drag-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright 2023 David Redondo"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
141
src/3rdparty/wayland/protocols/xdg-toplevel-drag/xdg-toplevel-drag-v1.xml
vendored
Normal file
141
src/3rdparty/wayland/protocols/xdg-toplevel-drag/xdg-toplevel-drag-v1.xml
vendored
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<protocol name="xdg_toplevel_drag_v1">
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
Copyright 2023 David Redondo
|
||||||
|
|
||||||
|
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.
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<interface name="xdg_toplevel_drag_manager_v1" version="1">
|
||||||
|
<description summary="Move a window during a drag">
|
||||||
|
This protocol enhances normal drag and drop with the ability to move a
|
||||||
|
window at the same time. This allows having detachable parts of a window
|
||||||
|
that when dragged out of it become a new window and can be dragged over
|
||||||
|
an existing window to be reattached.
|
||||||
|
|
||||||
|
A typical workflow would be when the user starts dragging on top of a
|
||||||
|
detachable part of a window, the client would create a wl_data_source and
|
||||||
|
a xdg_toplevel_drag_v1 object and start the drag as normal via
|
||||||
|
wl_data_device.start_drag. Once the client determines that the detachable
|
||||||
|
window contents should be detached from the originating window, it creates
|
||||||
|
a new xdg_toplevel with these contents and issues a
|
||||||
|
xdg_toplevel_drag_v1.attach request before mapping it. From now on the new
|
||||||
|
window is moved by the compositor during the drag as if the client called
|
||||||
|
xdg_toplevel.move.
|
||||||
|
|
||||||
|
Dragging an existing window is similar. The client creates a
|
||||||
|
xdg_toplevel_drag_v1 object and attaches the existing toplevel before
|
||||||
|
starting the drag.
|
||||||
|
|
||||||
|
Clients use the existing drag and drop mechanism to detect when a window
|
||||||
|
can be docked or undocked. If the client wants to snap a window into a
|
||||||
|
parent window it should delete or unmap the dragged top-level. If the
|
||||||
|
contents should be detached again it attaches a new toplevel as described
|
||||||
|
above. If a drag operation is cancelled without being dropped, clients
|
||||||
|
should revert to the previous state, deleting any newly created windows
|
||||||
|
as appropriate. When a drag operation ends as indicated by
|
||||||
|
wl_data_source.dnd_drop_performed the dragged toplevel window's final
|
||||||
|
position is determined as if a xdg_toplevel_move operation ended.
|
||||||
|
|
||||||
|
Warning! The protocol described in this file is currently in the testing
|
||||||
|
phase. Backward compatible changes may be added together with the
|
||||||
|
corresponding interface version bump. Backward incompatible changes can
|
||||||
|
only be done by creating a new major version of the extension.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="invalid_source" value="0"
|
||||||
|
summary="data_source already used for toplevel drag"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy the xdg_toplevel_drag_manager_v1 object">
|
||||||
|
Destroy this xdg_toplevel_drag_manager_v1 object. Other objects,
|
||||||
|
including xdg_toplevel_drag_v1 objects created by this factory, are not
|
||||||
|
affected by this request.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="get_xdg_toplevel_drag">
|
||||||
|
<description summary="get an xdg_toplevel_drag for a wl_data_source">
|
||||||
|
Create an xdg_toplevel_drag for a drag and drop operation that is going
|
||||||
|
to be started with data_source.
|
||||||
|
|
||||||
|
This request can only be made on sources used in drag-and-drop, so it
|
||||||
|
must be performed before wl_data_device.start_drag. Attempting to use
|
||||||
|
the source other than for drag-and-drop such as in
|
||||||
|
wl_data_device.set_selection will raise an invalid_source error.
|
||||||
|
|
||||||
|
Destroying data_source while a toplevel is attached to the
|
||||||
|
xdg_toplevel_drag is undefined.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="id" type="new_id" interface="xdg_toplevel_drag_v1"/>
|
||||||
|
<arg name="data_source" type="object" interface="wl_data_source"/>
|
||||||
|
</request>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<interface name="xdg_toplevel_drag_v1" version="1">
|
||||||
|
<description summary="Object representing a toplevel move during a drag">
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<enum name="error">
|
||||||
|
<entry name="toplevel_attached" value="0"
|
||||||
|
summary="valid toplevel already attached"/>
|
||||||
|
<entry name="ongoing_drag" value="1"
|
||||||
|
summary="drag has not ended" />
|
||||||
|
</enum>
|
||||||
|
|
||||||
|
<request name="destroy" type="destructor">
|
||||||
|
<description summary="destroy an xdg_toplevel_drag_v1 object">
|
||||||
|
Destroy this xdg_toplevel_drag_v1 object. This request must only be
|
||||||
|
called after the underlying wl_data_source drag has ended, as indicated
|
||||||
|
by the dnd_drop_performed or cancelled events. In any other case an
|
||||||
|
ongoing_drag error is raised.
|
||||||
|
</description>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<request name="attach">
|
||||||
|
<description summary="Move a toplevel with the drag operation">
|
||||||
|
Request that the window will be moved with the cursor during the drag
|
||||||
|
operation. The offset is a hint to the compositor how the toplevel
|
||||||
|
should be positioned relative to the cursor hotspot in surface local
|
||||||
|
coordinates. For example it might only be used when an unmapped window
|
||||||
|
is attached. The attached window does not participate in the selection
|
||||||
|
of the drag target.
|
||||||
|
|
||||||
|
If the toplevel is unmapped while it is attached, it is automatically
|
||||||
|
detached from the drag. In this case this request has to be called again
|
||||||
|
if the window should be attached after it is remapped.
|
||||||
|
|
||||||
|
This request can be called multiple times but issuing it while a
|
||||||
|
toplevel with an active role is attached raises a toplevel_attached
|
||||||
|
error.
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<arg name="toplevel" type="object" interface="xdg_toplevel"/>
|
||||||
|
<arg name="x_offset" type="int" summary="dragged surface x offset"/>
|
||||||
|
<arg name="y_offset" type="int" summary="dragged surface y offset"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
</protocol>
|
||||||
|
|
7
src/3rdparty/wayland/protocols/xdg-toplevel-icon/REUSE.toml
vendored
Normal file
7
src/3rdparty/wayland/protocols/xdg-toplevel-icon/REUSE.toml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
[[annotations]]
|
||||||
|
path = "xdg-toplevel-icon-v1.xml"
|
||||||
|
precedence = "closest"
|
||||||
|
SPDX-FileCopyrightText = "Copyright (C) 2024 Matthias Klumpp 2024 David Edmundson"
|
||||||
|
SPDX-License-Identifier = "MIT"
|
18
src/3rdparty/wayland/protocols/xdg-toplevel-icon/qt_attribution.json
vendored
Normal file
18
src/3rdparty/wayland/protocols/xdg-toplevel-icon/qt_attribution.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": "wayland-xdg-toplevel-icon-protocol",
|
||||||
|
"Name": "Wayland xdg-toplevel-icon Protocol",
|
||||||
|
"QDocModule": "qtwaylandcompositor",
|
||||||
|
"QtUsage": "Used in the Qt Wayland Compositor API, and the Qt Wayland platform plugin.",
|
||||||
|
"Files": "xdg-toplevel-icon-v1.xml",
|
||||||
|
|
||||||
|
"Description": "The xdg-toplevel-icon protocol allows a compositor to announce support for window icons.",
|
||||||
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
"Version": "version 1",
|
||||||
|
"DownloadLocation": "https://gitlab.freedesktop.org/wayland/wayland-protocols/raw/1.37/staging/xdg-toplevel-icon/xdg-toplevel-icon-v1.xml",
|
||||||
|
"LicenseId": "MIT",
|
||||||
|
"License": "MIT License",
|
||||||
|
"LicenseFile": "../MIT_LICENSE.txt",
|
||||||
|
"Copyright": "Copyright © 2024 Matthias Klumpp 2024 David Edmundson"
|
||||||
|
}
|
||||||
|
]
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user