Finding when keyUp actually happens is difficult because you have to store state to tell if a key is up on modifier or it's optional non-modifier. The current implementation is good enough for masking events, but not accurate enough for generating them
Fixes#4513
- Instead of packing frame first and then resizing and revalidating it,
pack it at the end so there is no overhead of resize and repaint events.
This save another like 200ms from startup time.
- Validate screen bounds after setting them to minimum size
- Update frame config after window custom chrome is set
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Instead of using providers in classes that should not be even used when
the optional dependencies are not present, move all Provider<> injects
to RuneLite (and to other top-level classes in other cases).
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Because of new isTab property there is no need to separate the toolbars
anymore as it can be decided which one to add where based on it.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
In order to differentiate between title and sidebar buttons in sidebar
add isTab property that will place them after separator.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
In addition to creating `colorTag`, `prependColorTag`, and
`wrapWithColorTag` functions, this commit moves
`SwingUtil::toHexColor` and `SwingUtil::colorLerp` to this new class.
Use same API for ordering title and sidebar and order them in the swing
components and not in events as that is unreliable.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
ConfigChanged is no longer propagated on startup, so colors need to be
loaded explictly for first time.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This simplfies the code and improves performance by only needing to loop
over the menu entries instead of the inventory and checking all types of
inventories.
- Fix exceptions being thrown when losing focus on the client when
searching. There is still an exception when spam clicking, but that was
always there to begin with.
- Fix searching while using the GE window and while using a shop window.