Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@@ -0,0 +1,9 @@
|
||||
ecm_optional_add_subdirectory(desktop)
|
||||
ecm_optional_add_subdirectory(kwindecoration)
|
||||
ecm_optional_add_subdirectory(kwinscreenedges)
|
||||
ecm_optional_add_subdirectory(kwintabbox)
|
||||
ecm_optional_add_subdirectory(kwintouchscreen)
|
||||
ecm_optional_add_subdirectory(kwinvirtualkeyboard)
|
||||
ecm_optional_add_subdirectory(windowbehaviour)
|
||||
ecm_optional_add_subdirectory(windowspecific)
|
||||
ecm_optional_add_subdirectory(kwineffects)
|
||||
@@ -0,0 +1,48 @@
|
||||
# Testing in KWin
|
||||
KWin provides a unit and integration test suite for X11 and Wayland. The source code for the tests can be found in the subdirectory autotests. The test suite should be run prior to any merge to KWin.
|
||||
|
||||
# Dependencies
|
||||
The following additional software needs to be installed for running the test suite:
|
||||
|
||||
* Xvfb
|
||||
* Xephyr
|
||||
* glxgears
|
||||
* DMZ-white cursor theme
|
||||
* breeze window decoration
|
||||
|
||||
# Preparing OpenGL
|
||||
Some of the tests require OpenGL. The test suite is implemented against Mesa and uses the Mesa specific EGL extension
|
||||
EGL_MESA_platform_surfaceless. This extension supports rendering without any real GPU using llvmpipe as software
|
||||
emulation. This gives the tests a stable base removing variance introduced by different hardware and drivers.
|
||||
|
||||
Users of non-Mesa drivers (e.g. proprietary NVIDIA driver) need to ensure that Mesa is also installed. If your system
|
||||
uses libglvnd this should work out of the box, if not you might need to tune LD_LIBRARY_PATH.
|
||||
|
||||
# Preventing side effects
|
||||
To prevent side effects with the running session it is recommended to run tests
|
||||
in a dedicated dbus session. This can be achieved by prefixing the test command
|
||||
with `dbus-run-session`, as shown in the examples below.
|
||||
|
||||
# Running tests
|
||||
Tests are more likely to succeed when run from ssh, as the environment is
|
||||
further isolated from the user's session. For example:
|
||||
|
||||
```bash
|
||||
ssh localhost
|
||||
```
|
||||
|
||||
Then, run the tests as described below.
|
||||
|
||||
## Running the test suite
|
||||
The test suite can be run from the build directory. Best is to do:
|
||||
|
||||
cd path/to/build/directory
|
||||
dbus-run-session xvfb-run ctest
|
||||
|
||||
## Running individual tests
|
||||
All tests executables are created in the directory "bin" in the build directory. Each test can be executed by just starting it from within the test directory:
|
||||
|
||||
cd path/to/build/directory/bin
|
||||
dbus-run-session ./testFoo
|
||||
|
||||
For tests relying on X11 one should also either start a dedicated Xvfb and export DISPLAY or use xvfb-run as described above.
|
||||
@@ -0,0 +1,86 @@
|
||||
# Coding Conventions
|
||||
|
||||
This document describes some of the recommended coding conventions that should be followed in KWin.
|
||||
|
||||
For KWin, it is recommended to follow the KDE Frameworks Coding Style.
|
||||
|
||||
|
||||
## `auto` Keyword
|
||||
|
||||
Optionally, you can use the `auto` keyword in the following cases. If in doubt, for example if using
|
||||
`auto` could make the code less readable, do not use `auto`. Keep in mind that code is read much more
|
||||
often than written.
|
||||
|
||||
* When it avoids repetition of a type in the same statement.
|
||||
|
||||
```
|
||||
auto something = new MyCustomType;
|
||||
auto keyEvent = static_cast<QKeyEvent *>(event);
|
||||
auto myList = QStringList({ "FooThing", "BarThing" });
|
||||
```
|
||||
|
||||
* When assigning iterator types.
|
||||
|
||||
```
|
||||
auto it = myList.const_iterator();
|
||||
```
|
||||
|
||||
|
||||
## `QRect::right()` and `QRect::bottom()`
|
||||
|
||||
For historical reasons, the `QRect::right()` and `QRect::bottom()` functions deviate from the true
|
||||
bottom-right corner of the rectangle. Note that this is not the case for the `QRectF` class.
|
||||
|
||||
As a general rule, avoid using `QRect::right()` and `QRect::bottom()` as well methods that operate
|
||||
on them. There are exceptions, though.
|
||||
|
||||
Exception 1: you can use `QRect::moveRight()` and `QRect::moveBottom()` to snap a `QRect` to
|
||||
another `QRect` as long as the corresponding borders match, for example
|
||||
|
||||
```
|
||||
// Ok
|
||||
rect.moveRight(anotherRect.right());
|
||||
rect.moveBottom(anotherRect.bottom());
|
||||
rect.moveBottomRight(anotherRect.bottomRight());
|
||||
|
||||
// Bad
|
||||
rect.moveRight(anotherRect.left() - 1); // must be rect.moveLeft(anotherRect.left() - rect.width());
|
||||
rect.moveBottom(anotherRect.top() - 1); // must be rect.moveTop(anotherRect.top() - rect.height());
|
||||
rect.moveBottomRight(anotherRect.topLeft() - QPoint(1, 1));
|
||||
```
|
||||
|
||||
Exception 2: you can use `QRect::setRight()` and `QRect::setBottom()` to clip a `QRect` by another
|
||||
`QRect` as long as the corresponding borders match, for example
|
||||
|
||||
```
|
||||
// Ok
|
||||
rect.setRight(anotherRect.right());
|
||||
rect.setBottom(anotherRect.bottom());
|
||||
rect.setBottomRight(anotherRect.bottomRight());
|
||||
|
||||
// Bad
|
||||
rect.setRight(anotherRect.left());
|
||||
rect.setBottom(anotherRect.top());
|
||||
rect.setBottomRight(anotherRect.topLeft());
|
||||
```
|
||||
|
||||
Exception 3: you can use `QRect::right()` and `QRect::bottom()` in conditional statements as long
|
||||
as the compared borders are the same, for example
|
||||
|
||||
```
|
||||
// Ok
|
||||
if (rect.right() > anotherRect.right()) {
|
||||
return;
|
||||
}
|
||||
if (rect.bottom() > anotherRect.bottom()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Bad
|
||||
if (rect.right() > anotherRect.left()) {
|
||||
return;
|
||||
}
|
||||
if (rect.bottom() > anotherRect.top()) {
|
||||
return;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/desktop)
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="desktop" lang="&language;">
|
||||
<title>Virtual Desktops</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride; &Mike.McBride.mail;</author>
|
||||
<author>&Jost.Schenck; &Jost.Schenck.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2021-04-09</date>
|
||||
<releaseinfo>Plasma 5.20</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Systemsettings</keyword>
|
||||
<keyword>virtual</keyword>
|
||||
<keyword>desktop</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<para>
|
||||
&kde; offers you the possibility to have several virtual desktops.
|
||||
</para>
|
||||
<para>
|
||||
You can change the names to the desktops by clicking on the <guibutton>Rename</guibutton> button (appears when you hover the desktop item in the list) and entering text into the text field.
|
||||
</para>
|
||||
<para>
|
||||
If you want to remove a desktop, use the trash overlay icon at the right of the desktop item.
|
||||
</para>
|
||||
<para>
|
||||
Press the <guibutton>Add</guibutton> button to add a virtual desktop (default name is <guilabel>New Desktop</guilabel>) to the list.
|
||||
</para>
|
||||
<para>
|
||||
You can configure the number of rows in the pager item on the panel. Just use the rows input box below the list to adjust the number of desktops. The desktops will be rearranged by the rows automatically.
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><guilabel>Navigation wraps around</guilabel></term>
|
||||
<listitem><para>Enable this option if you want a keyboard or active desktop border navigation
|
||||
beyond the edge of a desktop to take you to the opposite edge of the new desktop.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><guilabel>Show animation when switching</guilabel></term>
|
||||
<listitem><para>Select <guilabel>Slide</guilabel>,
|
||||
<guilabel>Desktop Cube Animation</guilabel>, or <guilabel>Fade Desktop</guilabel>
|
||||
from the drop-down box or switch animations off by unchecking the item. If the selected animation has settings options, click on the
|
||||
tools icon on the right of the drop-down box to launch a configuration dialog.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><guilabel>Show on-screen display when switching</guilabel></term>
|
||||
<listitem><para>Enable this option if you want to have an on-screen display for desktop switching.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><guilabel>Show desktop layout indicators</guilabel></term>
|
||||
<listitem><para>Enabling this option will show a small preview of the desktop layout
|
||||
indicating the selected desktop.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Scrolling the mouse wheel over an empty space on the
|
||||
desktop or on the <guilabel>Pager</guilabel> icon in the panel will change to the next
|
||||
virtual desktop numerically, in the direction you scrolled (either up or down).</para>
|
||||
<para>You can change this default behavior on the page <guilabel>Mouse Actions</guilabel> in
|
||||
the <guilabel>Desktop Settings</guilabel> (<keycombo action="simul">&Alt;<keycap>D</keycap></keycombo>,
|
||||
<keycombo action="simul">&Alt;<keycap>S</keycap></keycombo>).</para>
|
||||
|
||||
</article>
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwindecoration)
|
||||
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 412 B |
|
After Width: | Height: | Size: 65 KiB |
@@ -0,0 +1,150 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="kwindecoration" lang="&language;">
|
||||
<articleinfo>
|
||||
<authorgroup>
|
||||
<author>&Rik.Hemsley; &Rik.Hemsley.mail;</author>
|
||||
<author>&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2021-04-09</date>
|
||||
<releaseinfo>Plasma 5.21</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Systemsettings</keyword>
|
||||
<keyword>kwin</keyword>
|
||||
<keyword>window</keyword>
|
||||
<keyword>border</keyword>
|
||||
<keyword>theme</keyword>
|
||||
<keyword>style</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
<sect1 id="window-deco">
|
||||
<title>Window Decorations</title>
|
||||
|
||||
<para>This module allows you to select a style for the buttons and borders around
|
||||
the windows.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Window Decorations</title>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Window Decoration Configuration Module</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="main.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Window Decoration Configuration Module</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>Choose a window decoration style from the preview list, or
|
||||
download a new style using the <guibutton>Get New Window Decorations</guibutton>
|
||||
button.</para>
|
||||
|
||||
<para>The default window decoration is called <quote>Breeze</quote>.</para>
|
||||
|
||||
<para>Each style has a different look, but also a different
|
||||
<quote>feel</quote>. Some have (sometimes invisible)
|
||||
<quote>resize</quote> borders all around the edge, which make resizing
|
||||
easier but moving more difficult. Some have no borders on certain
|
||||
edges.</para>
|
||||
|
||||
<para>You are encouraged to experiment with the different styles until
|
||||
you find one which best suits your pattern of work.</para>
|
||||
|
||||
<para>In the preview of each style you find a <inlinemediaobject><imageobject>
|
||||
<imagedata fileref="configure.png" format="PNG"/></imageobject></inlinemediaobject>
|
||||
configure button to open configuration dialogs for the decoration.</para>
|
||||
|
||||
<para>The options in this configuration dialog are applied to all windows.
|
||||
Some window decorations (⪚ <quote>Breeze</quote>)
|
||||
provide a <guilabel>Window-Specific Overrides</guilabel> tab.
|
||||
On this tab you can change the border size and the visibility
|
||||
of the window titlebar for particular windows.</para>
|
||||
|
||||
<para>Different options for particular windows you find in the &systemsettings;
|
||||
module <ulink url="help:/kcontrol/windowspecific">Window Rules</ulink>.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
<para>For accessibility purposes, some window decorations support
|
||||
extra wide borders. If this is available, you can also choose a
|
||||
<guilabel>Window border size</guilabel> here. The large borders are easier to see for low
|
||||
vision users, and easier to grab for people with limited mobility or
|
||||
difficulty using a mouse.</para>
|
||||
</tip>
|
||||
|
||||
<tip>
|
||||
<para>If you are interested in creating your own window decoration, you can learn more about it <ulink url="https://develop.kde.org/docs/extend/plasma/aurorae/">in this tutorial</ulink>.</para>
|
||||
</tip>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Decorations</title>
|
||||
|
||||
<para>In this dialog you can change the decoration of the window.
|
||||
|
||||
The available options depend on the selected style.
|
||||
</para>
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Breeze Decoration Options</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="decoration.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Breeze Decoration Options</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Titlebar Buttons</title>
|
||||
|
||||
<para>This page allows you to customize the button location on the titlebar.
|
||||
You can drag buttons ⪚ the <guilabel>Application menu</guilabel> into the
|
||||
titlebar, remove them or drag around the
|
||||
buttons until you have the order that makes you comfortable.
|
||||
</para>
|
||||
|
||||
<screenshot>
|
||||
<screeninfo>Button Options</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="button.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Button Options</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
|
||||
<para>Enable <guilabel>Close windows by double clicking the menu button</guilabel>
|
||||
to have an additional option to the Close button or if you have removed the Close button from the titlebar.
|
||||
</para>
|
||||
|
||||
<para>Check the <guilabel>Show titlebar buttons tooltips</guilabel> item if you
|
||||
want to see the default tooltips when you hover the titlebar buttons with the mouse pointer.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
||||
|
After Width: | Height: | Size: 152 KiB |
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwineffects)
|
||||
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 745 B |
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="kwineffects" lang="&language;">
|
||||
<articleinfo>
|
||||
|
||||
<title>Desktop Effects</title>
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride; &Mike.McBride.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2021-04-09</date>
|
||||
<releaseinfo>Plasma 5.20</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>desktop</keyword>
|
||||
<keyword>effects</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<!--FIXME Compositor Enable compositor on startup necessary to have effects?-->
|
||||
|
||||
<para>This module is used to enable and configure desktop effects
|
||||
for Plasma.</para>
|
||||
|
||||
<para>The main part of this page is a list of all available effects grouped
|
||||
by <guilabel>Accessibility</guilabel>, <guilabel>Appearance</guilabel>,
|
||||
<guilabel>Focus</guilabel>, <guilabel>Peek at Desktop Animation</guilabel>, <guilabel>Tools</guilabel>,
|
||||
<guilabel>Virtual Desktop Switching Animation</guilabel>, <guilabel>Window Management</guilabel>,
|
||||
and <guilabel>Window Open/Close Animation</guilabel>.</para>
|
||||
<para>Use the incremental search bar above the list window to find items in the list.</para>
|
||||
|
||||
<para>Normally there is no reason for users to change that, but
|
||||
there is a <inlinemediaobject><imageobject><imagedata fileref="configure-effects.png" format="PNG"/>
|
||||
</imageobject></inlinemediaobject> configuration button to modify the filtering of the list to show
|
||||
also those effects.
|
||||
</para>
|
||||
|
||||
<para>The easiest way of installing new effects is by using the built-in
|
||||
KNewStuff support in &kwin;. Press the <guibutton>Get New Desktop Effects</guibutton> button to open
|
||||
a dialog with a list of available effects from the Internet and to install and uninstall effects.</para>
|
||||
<note><para>Please keep in mind that changing these sensible defaults can break your system.</para>
|
||||
</note>
|
||||
|
||||
<para>Check an effect in the list to enable it. Display information about Author and License by
|
||||
clicking the <inlinemediaobject><imageobject><imagedata fileref="dialog-information.png" format="PNG"/>
|
||||
</imageobject> </inlinemediaobject> info button at the right side of the list item.</para>
|
||||
|
||||
<para>Some effects have settings options, in this case there is a <inlinemediaobject><imageobject>
|
||||
<imagedata fileref="configure-effects.png" format="PNG"/></imageobject></inlinemediaobject> configure button
|
||||
at the left of the info button. Click it to open a configuration dialog.</para>
|
||||
<para>To see a video preview of an effect click on the <inlinemediaobject><imageobject><imagedata fileref="video.png" format="PNG"/>
|
||||
</imageobject></inlinemediaobject> button.</para>
|
||||
|
||||
<para>Some effects are mutual exclusive to other effects. For example one would only want to activate the
|
||||
<guilabel>Maximize</guilabel> or the <guilabel>Magic Lamp</guilabel> effect. Both activated at the same
|
||||
time result in broken animations.
|
||||
</para>
|
||||
|
||||
<para>For effects in a mutual exclusive group the &GUI; uses radio buttons and manages that only one of these
|
||||
effects can be activated.
|
||||
</para>
|
||||
|
||||
<para>All effects which are not supported by the currently used compositing backend
|
||||
are hidden by default (⪚ OpenGL effects when using software renderer).
|
||||
</para>
|
||||
|
||||
<para>Also all internal or helper effects are hidden by default. These are effects which replace
|
||||
functionality from KWin Core or provide interaction with other elements of the desktop shell.
|
||||
</para>
|
||||
|
||||
<!--FIXME
|
||||
39 effects + 7 internal (XRender compositor)
|
||||
Internal effects
|
||||
Appearance (Dashboard, Highlight Windows, KSreen, Screenshot, Window Geometry)
|
||||
Window Management (Cover Switch)
|
||||
-->
|
||||
|
||||
</article>
|
||||
|
After Width: | Height: | Size: 354 B |
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwinscreenedges)
|
||||
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="kwinscreenedges" lang="&language;">
|
||||
<articleinfo>
|
||||
|
||||
<title>Screen Edges</title>
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride; &Mike.McBride.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2023-01-30</date>
|
||||
<releaseinfo>Plasma 5.27</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Systemsettings</keyword>
|
||||
<keyword>desktop</keyword>
|
||||
<keyword>effects</keyword>
|
||||
<keyword>screen</keyword>
|
||||
<keyword>edge</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<para>Active screen edges allow you to activate effects by pushing your mouse
|
||||
cursor against the edge of the screen. Here you can configure which effect
|
||||
will get activated on each edge and corner of the screen.
|
||||
</para>
|
||||
|
||||
<para>Click with any mouse button onto a square and select an effect
|
||||
in the context menu. Edges with a blue square have already an attached effect,
|
||||
a grey-colored square indicates that no effect is selected for this edge.</para>
|
||||
|
||||
<para>The number of accessible items in the context menu depends on the settings in the module
|
||||
<ulink url="help:/kcontrol/kwineffects/index.html">
|
||||
<guilabel>Desktop Effects</guilabel></ulink> in the <guilabel>Workspace</guilabel>
|
||||
category. Select your favorite effects from the <guilabel>Window Management</guilabel>
|
||||
group. This activates the corresponding items in the context menu.</para>
|
||||
|
||||
<para>If you are looking for the setting to enable switching of desktops by
|
||||
pushing your mouse cursor against the edge of the screen choose one of the <guilabel>Present
|
||||
Windows</guilabel> effects from the context menu.</para>
|
||||
|
||||
<para>You can enable <guilabel>Maximize: Windows dragged to top edge</guilabel>, <guilabel>Tile: Windows dragged to left or right edge</guilabel> or <guilabel>Trigger quarter tiling in:</guilabel>
|
||||
and set a percentage of the screen to trigger the tiling.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
In the <guilabel>Movement</guilabel> tab of the <guilabel>Window Behavior</guilabel> settings module in the <guilabel>Window Management</guilabel> section of the system settings, you can configure snap zones for windows to moved to the screen edges, center or other windows when they get near them.
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
<para>Disable the <guilabel>Remain active when windows are fullscreen</guilabel> option to suppress triggering screen edge actions when an application is running in fullscreen.</para>
|
||||
|
||||
<para>Using the <guilabel>Switch desktop on edge</guilabel> item, configure if you want to switch
|
||||
to another desktop when pushing the mouse cursor to an edge of the screen, ⪚ only when
|
||||
moving windows.
|
||||
</para>
|
||||
<para><guilabel>Activation delay</guilabel> is the amount of time required for the mouse cursor
|
||||
to be pushed against the edge of the screen before the action is triggered.
|
||||
</para>
|
||||
<para><guilabel>Reactivation delay</guilabel> is the amount of time required after triggering
|
||||
an action until the next trigger can occur.
|
||||
</para>
|
||||
</article>
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwintabbox)
|
||||
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE">
|
||||
]>
|
||||
<article id="kwintabbox" lang="&language;">
|
||||
<articleinfo>
|
||||
<title>Task Switcher</title>
|
||||
<authorgroup>
|
||||
<author>&Martin.Graesslin;&Martin.Graesslin.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2023-01-30</date>
|
||||
<releaseinfo>&plasma; 5.27</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>System Settings</keyword>
|
||||
<keyword>desktop</keyword>
|
||||
<keyword>window</keyword>
|
||||
<keyword>navigation</keyword>
|
||||
<keyword>switch</keyword>
|
||||
<keyword>alt-tab</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="windows-navigating">
|
||||
<title>Navigating through Windows</title>
|
||||
|
||||
<para>The Task Switcher allows the user to easily switch between currently open windows using the keyboard. It is highly configurable, and allows the user to control its behavior, visual appearance, keyboard shortcuts, and window filtering.</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Screenshot of the default Task Switcher</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="taskswitcher.png" format="PNG" />
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>The Task Switcher is often invoked using the key combination <keycombo>&Alt;	</keycombo>, but this can be changed. When invoked, it shows a list of all the currently open windows, optionally filtered and augmented according to the configuration settings. For example, the list may be filtered to show only windows that meet certain criteria, such as windows that are currently visible. Once the window list is shown, the user can cycle forward and backward through all the listed windows by repeatedly hitting the Task Switcher key combination. Releasing the Task Switcher key combination will activate the window that was selected in the list.</para>
|
||||
|
||||
<para>Because the Task Switcher offers so many configuration options, two distinct collections of configuration settings can be defined. These collections are called <guilabel>Main</guilabel> and <guilabel>Alternative</guilabel>, and each can have a unique set of key combinations assigned to them.</para>
|
||||
|
||||
<para>The configuration options for each of the Main and Alternative collections are presented in four groupings, as follows:</para>
|
||||
|
||||
<sect2 id="visualization">
|
||||
<title>Visualization</title>
|
||||
<para>This group of configuration options controls how the list of windows is displayed on the screen. The default visualization is called <guilabel>Breeze</guilabel>. It lists all open windows along the left-hand side of the screen. Other visualizations include <guilabel>Cover Switch</guilabel> (a 3D carousel), <guilabel>Flip Switch</guilabel> (a 3D stack of cards), and <guilabel>Medium Rounded</guilabel> (a Microsoft &Windows;-style list of icons). Many more visualizations can be downloaded and installed by clicking the <guibutton>Get New Task Switchers...</guibutton> button at the bottom right of the dialog box.</para>
|
||||
|
||||
<para>Once a visualization has been selected from the drop-down list, the button to the right of the list can be clicked to see a preview or to configure visualization-specific options.</para>
|
||||
|
||||
<para>The <guilabel>Show selected window</guilabel> checkbox determines how clearly the user will see which window will be activated. If this box is checked, then all windows will be hidden except for the one that is currently highlighted in the Task Switcher.</para>
|
||||
|
||||
<note><para>There may be cases where the desired Task Switcher visualization cannot be shown. One of these situations can be when a process called 'compositing' is turned off or disabled. If this ever happens, the window list will still be shown, but in a very simple format.</para></note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="shortcuts">
|
||||
<title>Shortcuts</title>
|
||||
<para>This section allows you to define up to four Task Switcher keyboard shortcuts for the <guilabel>Main</guilabel> configuration and four more for the <guilabel>Alternative</guilabel> configuration. The <guilabel>Main</guilabel> shortcuts are predefined, while the <guilabel>Alternative</guilabel> shortcuts need to be defined manually.</para>
|
||||
<para>In the <guilabel>All Windows</guilabel> section, the <guilabel>Forward</guilabel> and <guilabel>Reverse</guilabel> shortcuts will cycle forward and backward through the list of open windows.</para>
|
||||
<para>In the <guilabel>Current Application</guilabel> section, the <guilabel>Forward</guilabel> and <guilabel>Reverse</guilabel> shortcuts can be set to cycle through the windows of the currently active application. For example, if you have three &dolphin; file browser windows open, then you would be able to use these shortcuts to just cycle among the three &dolphin; windows.</para>
|
||||
<para>To change a keyboard shortcut, click the <guibutton>Forward</guibutton> or <guibutton>Reverse</guibutton> button and type the desired shortcut combination. Be sure to use a modifier key like &Ctrl; or &Alt; as part of the shortcut, otherwise you might not be able to cycle through the window list properly.</para>
|
||||
|
||||
<note><para>Any of the defined keyboard shortcuts can be used to invoke the Task Switcher. To invoke the Task Switcher without using the keyboard, you can define screen edge actions in the &systemsettings; module <ulink url="help:/kcontrol/kwinscreenedges/index.html"><guilabel>Screen Edges</guilabel></ulink>.</para></note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="content">
|
||||
<title>Content</title>
|
||||
<para>The options in this section partially control which windows will appear in the Task Switcher list.</para>
|
||||
|
||||
<para>The <guilabel>Sort Order</guilabel> drop-down list specifies whether the windows should be listed in <guilabel>Stacking Order</guilabel> or <guilabel>Recently Used</guilabel> order. <guilabel>Stacking Order</guilabel> is the order in which the windows appear on top of each other on the screen, while <guilabel>Recently Used</guilabel> order is the order in which the windows have been used. <guilabel>Recently Used</guilabel> order makes it very easy to switch between the two most frequently used windows because they will always appear in the top 2 positions in the list.</para>
|
||||
|
||||
<para>The <guilabel>Include "Show Desktop" icon</guilabel> option will add a Show Desktop option to the window list. This allows the user to easily select the Desktop as the 'window' to show.</para>
|
||||
|
||||
<para>The <guilabel>Only one window per application</guilabel> option reduces clutter by only showing one window for each open application. If an application has multiple windows open, then its most recently activated window will be shown in the list and the others will not be shown.</para>
|
||||
|
||||
<para>The <guilabel>Order minimized windows after unminimized windows</guilabel> option will show you all unminimized windows first, even if they are less recent or further at the bottom than some of the minimized windows.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="filter-windows-by">
|
||||
<title>Filter Windows By</title>
|
||||
<para>This section contains options for additionally filtering the Task Switcher's list of windows.</para>
|
||||
|
||||
<para>The <guilabel>Virtual Desktops</guilabel> option filters the list of windows according to which virtual desktop is currently active. If you consistently put specific windows on specific virtual desktops, then this filtering option can make it easy to switch to windows within or across those virtual desktops. Select <guilabel>Current desktop</guilabel> to only show windows on the current virtual desktop. Select <guilabel>All other desktops</guilabel> to show only the windows on the virtual desktops that are not currently active.</para>
|
||||
|
||||
<para>The <guilabel>Activities</guilabel> option filters the list of windows according to which Activity is currently active. As with Virtual Desktop filtering, this option can make it easier to switch to applications within or across all Activities. Select <guilabel>Current activity</guilabel> to only show windows that are part of the current Activity. Select <guilabel>All other activities</guilabel> to only show windows that are part of the Activities that are not currently active.</para>
|
||||
|
||||
<para>The <guilabel>Screens</guilabel> option filters the list of windows according to which display screen is currently active. Select <guilabel>Current screen</guilabel> to only show windows that are on the display that currently has the mouse pointer on it. Select <guilabel>All other screens</guilabel> to show the windows that are on all other displays. This option can be useful to users who want to quickly switch between windows that are on the same monitor in a multi-monitor setup.</para>
|
||||
<note><para>The active screen is the one that the mouse pointer is currently on, not the screen that the currently active window is on.</para></note>
|
||||
|
||||
<para>The <guilabel>Minimization</guilabel> option filters the list of windows according to whether they are hidden or not. Select <guilabel>Visible windows</guilabel> to only show windows that have not been minimized. Select <guilabel>Hidden windows</guilabel> to only show the minimized windows.</para>
|
||||
|
||||
<para> If you uncheck an option in this section, then no filtering will be applied for that option. For example, if you check the Screens option and clear the other three options, then the Task Switcher window list will only be filtered according to which windows are on the current display.</para>
|
||||
<para>All of the options described in the above sections work together to provide very fine-grained control of the Task Switcher's behavior and appearance. For example, you could define the <guilabel>Main</guilabel> settings collection to be invoked with the <keycombo>&Alt;	</keycombo> key combination, to show the open windows in a carousel, to only show one window per application, and to only list windows that are on the current desktop and on the currently active screen. This can provide very fast context-sensitive window switching if you have both 'work' and 'home' virtual desktops, and then keep all of your spreadsheets for work and home on the same monitor.</para>
|
||||
|
||||
<para>The availability of the <guilabel>Alternative</guilabel> Task Switcher configuration gives you a second way to easily filter and browse through the window lists. With eight key combinations available across the two Task Switcher configurations, it should be possible to easily and quickly navigate through large numbers of windows.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: xml
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-general-insert-case:lower
|
||||
sgml-indent-step:0
|
||||
sgml-indent-data:nil
|
||||
End:
|
||||
|
||||
vim:tabstop=2:shiftwidth=2:expandtab
|
||||
kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
|
||||
-->
|
||||
|
After Width: | Height: | Size: 134 KiB |
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwintouchscreen)
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="kwintouchscreen" lang="&language;">
|
||||
<articleinfo>
|
||||
|
||||
<title>Touchscreen Gestures</title>
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride; &Mike.McBride.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2021-04-10</date>
|
||||
<releaseinfo>Plasma 5.20</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Systemsettings</keyword>
|
||||
<keyword>touch</keyword>
|
||||
<keyword>screen</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<para>Swiping from the screen edge towards the center of the screen allow you to activate effects. Here you can configure which effect will get activated on each edge of the screen.
|
||||
</para>
|
||||
|
||||
<para>Click with any mouse button onto a square and select an effect
|
||||
in the context menu. Edges with a blue square have already an attached effect,
|
||||
a grey-colored square indicates that no effect is selected for this edge.</para>
|
||||
|
||||
<para>The number of accessible items in the context menu depends on the settings in the module
|
||||
<ulink url="help:/kcontrol/kwineffects/index.html">
|
||||
<guilabel>Desktop Effects</guilabel></ulink> in the <guilabel>Workspace</guilabel>
|
||||
category. Select your favorite effects from the <guilabel>Window Management</guilabel>
|
||||
group. This activates the corresponding items in the context menu.</para>
|
||||
</article>
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwinvirtualkeyboard)
|
||||
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
|
||||
"dtd/kdedbx45.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article id="kwinvirtualkeyboard" lang="&language;">
|
||||
<articleinfo>
|
||||
|
||||
<title>Virtual Keyboard</title>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Yuri</firstname>
|
||||
<surname>Chornoivan</surname>
|
||||
</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2021-04-27</date>
|
||||
<releaseinfo>Plasma 5.22</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Systemsettings</keyword>
|
||||
<keyword>virtual</keyword>
|
||||
<keyword>keyboard</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<para>
|
||||
This module lets you choose the virtual keyboard to use. The virtual keyboard will be automatically enabled when there is no hardware keyboard detected.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Select a <ulink url="https://en.wikipedia.org/wiki/Virtual_keyboard">virtual keyboard</ulink>
|
||||
from the list or choose <guilabel>None</guilabel> if you do not want to use any virtual keyboard.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is advisable to install corresponding input method engines before using this module.
|
||||
</para>
|
||||
|
||||
</article>
|
||||
@@ -0,0 +1,232 @@
|
||||
% SPDX-FileCopyrightText: 2025 Yifan Zhu <fanzhuyifan@gmail.com>
|
||||
% SPDX-License-Identifier: CC0-1.0
|
||||
\documentclass[8pt]{beamer}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{patterns} % LaTeX and plain TeX when using TikZ
|
||||
|
||||
\newcommand{\questionMark}{\usefont{T1}{cmr}{m}{n}\selectfont\color{red}{?}}
|
||||
|
||||
\title{moveResize restriction algorithm}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\maketitle
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\only<1>{
|
||||
The big rectangle represents the overall available area -- windows are not visible outside.
|
||||
The grey rectangles represent the struts (think of them as obstacles -- windows are not visible in these areas).
|
||||
}
|
||||
\only<2>{
|
||||
Since the titlebar need to have certain number of continuous visible pixels, extend each strut to the left (by requiredPixels) and to the top (by titlebarHeight).
|
||||
Shrink the overall available area from the right and bottom by the same amount.
|
||||
These are the areas where the top left corner of the visible titlebar subrect cannot be placed (red diagonal lines).
|
||||
The remaining white area is availableRegion.
|
||||
}
|
||||
\only<3>{
|
||||
Since availableRegion is a QRegion, it is automatically split into rectangles (green with dashed borders, and ``availableRect'' in center).
|
||||
}
|
||||
\only<4>{
|
||||
The next step depends on window location (shown in blue) and move/resize type.
|
||||
}
|
||||
\only<5>{
|
||||
\frametitle{Move}
|
||||
Assume \emph{move} for now.
|
||||
Recall availableRect stores possible locations of the top left corner of the visible titlebar subrect.
|
||||
For each availableRect (stopping early if availableRect becomes empty):
|
||||
\begin{itemize}
|
||||
\item Apply restrictions to visible subrect top-left
|
||||
\begin{itemize}
|
||||
\item None needed for move.
|
||||
\end{itemize}
|
||||
\item Convert visible subrect top-left to window top-left
|
||||
\begin{itemize}
|
||||
\item
|
||||
Extend each availableRect to the left by windowWidth - requiredPixels (gray dots, with text anchor candidate).
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
For proposed anchor point (top left corner of the window, calculated from user input, red question mark), find closest anchor candidate point (green circle).
|
||||
}
|
||||
\only<6>{
|
||||
\frametitle{Move}
|
||||
We can visually inspect the solution.
|
||||
}
|
||||
\only<7>{
|
||||
\frametitle{Resize Left}
|
||||
Now assume user is resizing the \emph{left} of the window.
|
||||
For this case anchor is also top left.
|
||||
For each availableRect (stopping early if availableRect becomes empty):
|
||||
\begin{itemize}
|
||||
\item Apply restrictions to visible subrect top-left
|
||||
\begin{itemize}
|
||||
\item clip bottom to windowBottom - titlebarHeight (always performed for resize);
|
||||
\item clip right to windowRight - requiredPixels;
|
||||
\end{itemize}
|
||||
\item Convert visible subrect top-left to window top-left
|
||||
\begin{itemize}
|
||||
\item extend left to overall available area left.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
For proposed anchor point (red question mark), find closest anchor candidate point (green circle), while only allowing horizontal movement.
|
||||
}
|
||||
\only<8>{
|
||||
\frametitle{Resize Left}
|
||||
We can visually inspect the solution.
|
||||
}
|
||||
\only<9>{
|
||||
\frametitle{Resize Top Right}
|
||||
Now assume user is resizing the \emph{top right} of the window.
|
||||
For this case anchor is top right.
|
||||
Transform availableRect and convert to possible locations of the top right corner of the window.
|
||||
For each availableRect (stopping early if availableRect becomes empty):
|
||||
\begin{itemize}
|
||||
\item Apply restrictions to visible subrect top-left
|
||||
\begin{itemize}
|
||||
\item clip bottom to windowBottom - titlebarHeight (always performed for resize);
|
||||
\item clip left to windowLeft (top-left of visible subrect must be right of windowLeft);
|
||||
\end{itemize}
|
||||
\item Convert visible subrect top-left to window top-right:
|
||||
\begin{itemize}
|
||||
\item extend right to overall available area right;
|
||||
\item move left right by requiredPixels;
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
For proposed anchor point (red question mark), find closest anchor candidate point (green circle).
|
||||
}
|
||||
\only<10>{
|
||||
\frametitle{Resize Top Right}
|
||||
We can visually inspect the solution.
|
||||
}
|
||||
|
||||
\vfill
|
||||
|
||||
\begin{center}
|
||||
\resizebox{0.8\textwidth}{!}{
|
||||
\begin{tikzpicture}[yscale=-1,every node/.style={scale=1.5,thick}]
|
||||
|
||||
% Draw the main blank rectangle canvas
|
||||
\draw[thick] (0,0) rectangle (16,12);
|
||||
\tikzstyle{strut} = [fill=gray!30, draw=black, thick]
|
||||
\tikzstyle{forbidden} = [
|
||||
draw=black, thick, fill opacity=0.3, text opacity=1, pattern=north east lines, pattern color=red]
|
||||
\tikzstyle{available} = [fill=green!30, dashed, fill opacity=.3, text opacity=1, draw=black, thick]
|
||||
\tikzstyle{window} = [fill=blue!50, fill opacity=.5, text opacity=1, draw=black, thick]
|
||||
\tikzstyle{final} = [
|
||||
draw=black, thick, fill opacity=0.3, text opacity=1, pattern=dots, pattern color=black]
|
||||
\tikzstyle{result} = [green, fill=green, radius=0.15cm]
|
||||
\tikzstyle{windowFinal} = [fill opacity=.3, text opacity=1, draw=black, thick, pattern=north west lines, pattern color=blue]
|
||||
|
||||
\only<1-3,6,8,10>{
|
||||
% Draw rectangles on four sides
|
||||
\draw[strut] (6,0) rectangle (10,1);
|
||||
\draw[strut] (6,11) rectangle (10,12);
|
||||
\draw[strut] (0,2) rectangle (1,10);
|
||||
\draw[strut] (15,3) rectangle (16,9);
|
||||
|
||||
% \draw node at (8, 6) {Screen};
|
||||
|
||||
\draw[strut] (17,0) rectangle (19,1) node[midway] {Strut};
|
||||
}
|
||||
|
||||
\only<2-3>{
|
||||
\draw[forbidden] (17,1) rectangle (20,2) node[midway] {Visible subrect};
|
||||
\draw[forbidden] (3,-1) rectangle (10,1);
|
||||
\draw[forbidden] (3,10) rectangle (10,12);
|
||||
\draw[forbidden] (-3,1) rectangle (1,10);
|
||||
\draw[forbidden] (12,2) rectangle (16,9);
|
||||
|
||||
\draw[forbidden] (13,0) rectangle (16,12);
|
||||
\draw[forbidden] (0,11) rectangle (16,12);
|
||||
}
|
||||
\only<3-4>{
|
||||
\draw[available] (17,2) rectangle (21,3) node[midway] {availableRect};
|
||||
\draw[available] (0,0) rectangle (3,1) node[midway] {availableRect};
|
||||
\draw[available] (0,10) rectangle (3,11) node[midway] {availableRect};
|
||||
\draw[available] (10,0) rectangle (13,2) node[midway] {availableRect};
|
||||
\draw[available] (10,9) rectangle (13,11) node[midway] {availableRect};
|
||||
\draw[available] (1,1) rectangle (10,10) node[midway] {availableRect};
|
||||
\draw[available] (10,2) rectangle (12,9) node[midway,align=left] {available\\Rect};
|
||||
}
|
||||
\only<5,7,9>{
|
||||
\draw[available] (17,2) rectangle (21,3) node[midway] {availableRect};
|
||||
\draw[available] (0,0) rectangle (3,1);
|
||||
\draw[available] (0,10) rectangle (3,11);
|
||||
\draw[available] (10,0) rectangle (13,2);
|
||||
\draw[available] (10,9) rectangle (13,11);
|
||||
\draw[available] (1,1) rectangle (10,10);
|
||||
\draw[available] (10,2) rectangle (12,9);
|
||||
}
|
||||
\only<4->{
|
||||
\draw[window] (17,3) rectangle (19,4) node[midway] {Window};
|
||||
\draw[window] (5, 4) rectangle (13, 8) node[midway] {Window};
|
||||
}
|
||||
\only<5>{
|
||||
\draw[final] (17,4) rectangle (21,5) node[midway] {anchor candidate};
|
||||
\draw[final] (-5,0) rectangle (3,1) node[midway] {anchor candidate};
|
||||
\draw[final] (-5,10) rectangle (3,11) node[midway] {anchor candidate};
|
||||
\draw[final] (5,0) rectangle (13,2) node[midway] {anchor candidate};
|
||||
\draw[final] (5,9) rectangle (13,11) node[midway] {anchor candidate};
|
||||
\draw[final] (-4,1) rectangle (10,10) node[midway] {anchor candidate};
|
||||
\draw[final] (5,2) rectangle (12,9) node[midway,align=left] {anchor candidate};
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (14, 8) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (13, 9) circle;
|
||||
}
|
||||
\only<6>{
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (14, 8) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (13, 9) circle;
|
||||
\draw[windowFinal] (17,7) rectangle (20,8) node[midway] {Final Window};
|
||||
\draw[windowFinal] (13, 9) rectangle (21, 13) node[midway] {Final Window};
|
||||
}
|
||||
\only<7>{
|
||||
\draw[final] (17,4) rectangle (21,5) node[midway] {anchor candidate};
|
||||
\draw[final] (0,0) rectangle (3,1) node[midway] {anchor candidate};
|
||||
% \draw[final] (0,10) rectangle (3,11) node[midway] {anchor candidate};
|
||||
\draw[final] (0,1) rectangle (10,7) node[midway] {anchor candidate};
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (11, 4) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (10, 4) circle;
|
||||
}
|
||||
\only<8>{
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (11, 4) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (10, 4) circle;
|
||||
\draw[windowFinal] (17,7) rectangle (20,8) node[midway] {Final Window};
|
||||
\draw[windowFinal] (10, 4) rectangle (13, 8) node[midway] {Final Window};
|
||||
}
|
||||
\only<9>{
|
||||
\draw[final] (17,4) rectangle (21,5) node[midway] {anchor candidate};
|
||||
% \draw[final] (0,0) rectangle (3,1) node[midway] {anchor candidate};
|
||||
% \draw[final] (0,10) rectangle (3,11) node[midway] {anchor candidate};
|
||||
\draw[final] (13,0) rectangle (16,2) node[midway] {anchor candidate};
|
||||
% \draw[final] (10,9) rectangle (13,11) node[midway] {anchor candidate};
|
||||
\draw[final] (8,1) rectangle (16,7) node[midway] {anchor candidate};
|
||||
\draw[final] (13,2) rectangle (16,7) node[midway,align=left] {anchor candidate};
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (11, 0) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (11, 1) circle;
|
||||
}
|
||||
\only<10>{
|
||||
\draw node at (19, 5.5) {\questionMark : proposed anchor};
|
||||
\draw node at (11, 0) {\questionMark};
|
||||
\draw[result] (18, 6.5) circle node[right] {closestPoint};
|
||||
\draw[result] (11, 1) circle;
|
||||
\draw[windowFinal] (17,7) rectangle (20,8) node[midway] {Final Window};
|
||||
\draw[windowFinal] (5, 1) rectangle (11, 8) node[midway] {Final Window};
|
||||
}
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/windowbehaviour)
|
||||
@@ -0,0 +1,2 @@
|
||||
########### install files ###############
|
||||
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/windowspecific)
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 53 KiB |