Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create the 'input' module to replace 'lifecycle' #604

Merged
merged 14 commits into from
May 8, 2020
Merged

Conversation

ryanisaacg
Copy link
Owner

@ryanisaacg ryanisaacg commented Apr 28, 2020

First, the 'lifecycle' concept is less important than in previous
versions. There is just a single 'run' function that takes a Settings
instance and a closure, instead of a whole mess of behind-the-scenes
work. Most of the 'lifecycle' module (with the exception of a few Window
functions) is just about receiving input from the user. The new name
makes this more clear.

Additionally, there were some ergonomic issues with re-exporting blinds
structures rather than wrapping them in new code. Primarily, this
required understanding "what is the mint crate" and "why do I care" and
"how do I use it." End users of Quicksilver shouldn't have to concern
themselves with this, so these parts of the blinds API have been wrapped
over.

The Settings struct also needed to be decoupled from blinds. There are
more settings than just window management (for example, disable
searching for 'static/' assets) so there are now Quicksilver-specific
Settings.

The old module and its members have been left around for convenience,
because the alpha frequently requires updating for new features or
critical bugfixes. However, they are strongly deprecated and will be
subject to removal before beta.

Motivation and Context

See #552 for some individual fixes.
Resolves #586

Checks

  • Fix up documentation of new module, including fixing broken doc links
  • Add an example for processing events
  • Add an example for reading from the input state
  • I have updated CHANGES.md, with [BREAKING] next to all breaking changes
  • I have updated the documentation if necessary
  • The example found in README.md compiles and functions like expected

First, the 'lifecycle' concept is less important than in previous
versions. There is just a single 'run' function that takes a Settings
instance and a closure, instead of a whole mess of behind-the-scenes
work. Most of the 'lifecycle' module (with the exception of a few Window
functions) is just about receiving input from the user. The new name
makes this more clear.

Additionally, there were some ergonomic issues with re-exporting blinds
structures rather than wrapping them in new code. Primarily, this
required understanding "what is the mint crate" and "why do I care" and
"how do I use it." End users of Quicksilver shouldn't have to concern
themselves with this, so these parts of the blinds API have been wrapped
over.

The Settings struct also needed to be decoupled from blinds. There are
more settings than just window management (for example, disable
searching for 'static/' assets) so there are now Quicksilver-specific
Settings.

The old module and its members have been left around for convenience,
because the alpha frequently requires updating for new features or
critical bugfixes. However, they are strongly deprecated and will be
subject to removal before beta.
@ryanisaacg ryanisaacg marked this pull request as ready for review May 5, 2020 19:27
@ryanisaacg ryanisaacg merged commit d105757 into master May 8, 2020
@ryanisaacg ryanisaacg deleted the wrap-blinds branch May 8, 2020 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Please remove requirement of static directory
1 participant