<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aerc/lib/ui, branch master</title>
<subtitle>Mirror of https://git.sr.ht/~sircmpwn/aerc
</subtitle>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/'/>
<entry>
<title>compose: don't call ti.tabcomplete when it is nil</title>
<updated>2020-01-09T19:32:12+00:00</updated>
<author>
<name>Timmy Douglas</name>
<email>mail@timmydouglas.com</email>
</author>
<published>2020-01-09T04:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=eca3863242da2722e69b573e2559351b5219b63c'/>
<id>eca3863242da2722e69b573e2559351b5219b63c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't select completions until tab has been pressed</title>
<updated>2020-01-05T21:01:50+00:00</updated>
<author>
<name>Ben Burwell</name>
<email>ben@benburwell.com</email>
</author>
<published>2020-01-04T17:54:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=07a9b9204eced8a26f24af3ad022e869a5632f88'/>
<id>07a9b9204eced8a26f24af3ad022e869a5632f88</id>
<content type='text'>
Before, pressing &lt;Enter&gt; when completions were visible would execute the
selected completion. As soon as completions were provided, the first
item would be selected. This could cause issues e.g. when changing
folders:

  :cf &lt;Enter&gt;

Previously, this would have selected the first folder in the list. Now,
since &lt;Tab&gt;, &lt;C-n&gt;, etc have not been pressed to select the first
completion, the command above simply executes `:cf `.

To accomplish this, a "no-op completion" has been added at index -1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before, pressing &lt;Enter&gt; when completions were visible would execute the
selected completion. As soon as completions were provided, the first
item would be selected. This could cause issues e.g. when changing
folders:

  :cf &lt;Enter&gt;

Previously, this would have selected the first folder in the list. Now,
since &lt;Tab&gt;, &lt;C-n&gt;, etc have not been pressed to select the first
completion, the command above simply executes `:cf `.

To accomplish this, a "no-op completion" has been added at index -1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Show textinput completions in popovers</title>
<updated>2019-12-21T14:23:21+00:00</updated>
<author>
<name>Ben Burwell</name>
<email>ben@benburwell.com</email>
</author>
<published>2019-12-20T18:21:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=7160f98a9081bcab05904484eae790ec0a006b87'/>
<id>7160f98a9081bcab05904484eae790ec0a006b87</id>
<content type='text'>
Rather than showing completions inline in the text input, show them in a
popover which can be scrolled by repeatedly pressing the tab key. The
selected completion can be executed by pressing enter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rather than showing completions inline in the text input, show them in a
popover which can be scrolled by repeatedly pressing the tab key. The
selected completion can be executed by pressing enter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add popovers</title>
<updated>2019-12-21T14:23:20+00:00</updated>
<author>
<name>Ben Burwell</name>
<email>ben@benburwell.com</email>
</author>
<published>2019-12-20T18:21:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=bcd03c4c4a94e73b2545bf5dfc404082a674c76e'/>
<id>bcd03c4c4a94e73b2545bf5dfc404082a674c76e</id>
<content type='text'>
A popover is a special UI element which can be layered over the rest of
the UI (i.e. it is painted last) and can fall anywhere on the screen,
not just with the bounds of its parent's viewport/context. With these
special abilities comes the restriction that only one popover may be
visible on screen at once.

Popovers are requested from the UI context passed to Draw calls and
specify the anchor point and the desired dimensions. The popover is then
fit to the available space and placed relative to the anchor point.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A popover is a special UI element which can be layered over the rest of
the UI (i.e. it is painted last) and can fall anywhere on the screen,
not just with the bounds of its parent's viewport/context. With these
special abilities comes the restriction that only one popover may be
visible on screen at once.

Popovers are requested from the UI context passed to Draw calls and
specify the anchor point and the desired dimensions. The popover is then
fit to the available space and placed relative to the anchor point.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add UI options to save/pipe messages with unsupported mimetypes</title>
<updated>2019-11-17T18:19:13+00:00</updated>
<author>
<name>Greg Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2019-11-15T20:28:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=4bdef7d8609aa2d382fa74018e28ccb176276615'/>
<id>4bdef7d8609aa2d382fa74018e28ccb176276615</id>
<content type='text'>
Adds a message indicating the user's ability to :save or :pipe a message
with an unsupported mimetype and also adds a selector widget (similar to
the tutorial).

The selector widget was previously defined in the account wizard module,
so this commit breaks it out into its own module to allow for re-use.

Further, modify the BeginExLine() function to take an argument that
pre-populates the command line, allowing functions to initiate an ex
command without executing it.

Closes #95.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a message indicating the user's ability to :save or :pipe a message
with an unsupported mimetype and also adds a selector widget (similar to
the tutorial).

The selector widget was previously defined in the account wizard module,
so this commit breaks it out into its own module to allow for re-use.

Further, modify the BeginExLine() function to take an argument that
pre-populates the command line, allowing functions to initiate an ex
command without executing it.

Closes #95.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix tab refocus on remove</title>
<updated>2019-10-14T14:38:04+00:00</updated>
<author>
<name>Jeffas</name>
<email>dev@jeffas.io</email>
</author>
<published>2019-10-10T12:24:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=03d182ca88329db778e6d271e44b480223f31807'/>
<id>03d182ca88329db778e6d271e44b480223f31807</id>
<content type='text'>
Previously removing a tab would always pop from the history of tabs.
This checks to see if the closing tab is the one selected, if it is then
we use the history, otherwise we only need to change the selected tab if
it was after (to the right of) the closing tab, in which case we just
decrement the selected index.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously removing a tab would always pop from the history of tabs.
This checks to see if the closing tab is the one selected, if it is then
we use the history, otherwise we only need to change the selected tab if
it was after (to the right of) the closing tab, in which case we just
decrement the selected index.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pushing invalid tabs to history</title>
<updated>2019-10-14T14:38:02+00:00</updated>
<author>
<name>Jeffas</name>
<email>dev@jeffas.io</email>
</author>
<published>2019-10-10T12:09:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=2542c65af2c24c94d70e8ab51cc590fe8fc3bd28'/>
<id>2542c65af2c24c94d70e8ab51cc590fe8fc3bd28</id>
<content type='text'>
A tab can now only be pushed onto the history if it is a selectable tab.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A tab can now only be pushed onto the history if it is a selectable tab.
</pre>
</div>
</content>
</entry>
<entry>
<title>Focus new tab after remove</title>
<updated>2019-09-18T23:20:49+00:00</updated>
<author>
<name>Jeffas</name>
<email>dev@jeffas.io</email>
</author>
<published>2019-09-16T16:39:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=0ce1d42bda406a1d7c83df462206f435a841a809'/>
<id>0ce1d42bda406a1d7c83df462206f435a841a809</id>
<content type='text'>
After removing a tab we should focus the newly selected tab if it is
Interactive. This ensures things like the terminal get drawn properly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After removing a tab we should focus the newly selected tab if it is
Interactive. This ensures things like the terminal get drawn properly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Mouseable</title>
<updated>2019-09-11T15:41:34+00:00</updated>
<author>
<name>Jeffas</name>
<email>dev@jeffas.io</email>
</author>
<published>2019-09-05T22:32:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=f6216bb6213a15cdcdf50089f3c4a8e9a30d9337'/>
<id>f6216bb6213a15cdcdf50089f3c4a8e9a30d9337</id>
<content type='text'>
This adds the Mouseable interface. When this is implemented for a
component that item can accept and process mouseevents.

At the top level when a mouse event is received it is passed to the
grid's handler and then it trickles down until it reaches a component
that can actually handle it, such as the tablist, dirlist or msglist.

A mouse event is passed so that components can handle other things such
as scrolling with the mousewheel. The components themselves then perform
the necessary actions.

Clicking emails in the messagelist opens them in a new tab.

Textinputs can be clicked to position the cursor inside them.

Mouseevents are not forwarded to the terminal at the moment.

Elements which do not handle mouse events are not required to implement
the Mouseable interface.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the Mouseable interface. When this is implemented for a
component that item can accept and process mouseevents.

At the top level when a mouse event is received it is passed to the
grid's handler and then it trickles down until it reaches a component
that can actually handle it, such as the tablist, dirlist or msglist.

A mouse event is passed so that components can handle other things such
as scrolling with the mousewheel. The components themselves then perform
the necessary actions.

Clicking emails in the messagelist opens them in a new tab.

Textinputs can be clicked to position the cursor inside them.

Mouseevents are not forwarded to the terminal at the moment.

Elements which do not handle mouse events are not required to implement
the Mouseable interface.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add delete forward &lt;C-k&gt; and backward &lt;C-u&gt;</title>
<updated>2019-08-12T00:27:48+00:00</updated>
<author>
<name>Christopher Vittal</name>
<email>christopher.vittal@gmail.com</email>
</author>
<published>2019-08-10T14:26:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benburwell.com/mirrors/aerc/commit/?id=2b6ec504e536885a47db1e472c5f0de6388fb0ce'/>
<id>2b6ec504e536885a47db1e472c5f0de6388fb0ce</id>
<content type='text'>
Choose the readline defaults for the behavior of these two
functions/keybindings. Depending on the program, either of these can
delete the whole line.

Note that by default in [compose], &lt;C-k&gt; is bound to :prev-field&lt;Enter&gt;.
Leave it up to the user whether or not they want to rebind the key in
[compose].
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Choose the readline defaults for the behavior of these two
functions/keybindings. Depending on the program, either of these can
delete the whole line.

Note that by default in [compose], &lt;C-k&gt; is bound to :prev-field&lt;Enter&gt;.
Leave it up to the user whether or not they want to rebind the key in
[compose].
</pre>
</div>
</content>
</entry>
</feed>
