Caching the zero represenation sounds like a good idea, until the
precision gets changed and then e.g. 01:40:23.13 returns -00:00:00.0
because it has the same amount of characters, messing up our width
estimation and pseudo monospace thingy.
Clearing the cache on options change avoids such conflicts.
Fixes#834
There's a lot of `title-bar` interaction weirdness on windows. When disabling it on newer mpv versions, one version hides borders, other doesn't. So let's just pretend this setting does what it's supposed to and what everyone would expect, and only hides the title bar without touching the border. People can always disable uosc's window border with other options if they need to.
This is useful when running on a platform builds of `ziggy` aren't provided for
... or when using a distro-provided build.
The idea for this patch originated in NixOS/nixpkgs#270962,
as it needed a way to point `uosc` at the nix-managed build of `ziggy`.
The element id didn't match the id in the constructors table or the
description in the config. Consequently it was possible to disable the
indicator at startup, but once it was instantiated it wasn't possible to
remove it again.
Fixes#808
On Windows trying to open a path that contains a comma fails unless there's a space anywhere in the path, adding a trailing space to the end of it doesn't seem to bother explorer /select, and forces proper quotations.
Here's a bit more detail about this https://github.com/mpvnet-player/mpv.net/issues/580#issuecomment-1819365741
The # operator produces different results on luajit to the
interpreter for lists like `{1, nil, 3}`.
The interpreter gives a size of 3, while luajit says it's 1.
That caused `table_assign` and `itable_join` to behave differently depending
on the lua environment they're running in.
To get the total number of vararg arguments, `select('#', ...)`` can be
used, which doesn't stop counting when it encounters `nil`.
Any error return nil.
I don't think there is currently a use case for this, but maybe there
will be at some point and it doesn't hurt.
This would enable scrolling to some item on menu open even with
`mouse_nav` set, but currently any place that can open a menu with
`selected_index` set doesn't have `mouse_nav` set.
The cursor isn't allowed to autohide while hovering elements, so the UI
shouldn't autohide either. Otherwise this leads to the situation where
the UI autohides while e.g. hovering the timeline, and then the
cursor autohides afterwards because it's not hovering anything anymore.
Element:update_proximity() checks for cursor.hidden, which is why we have
to update that before updating the proximities.
Also it doesn't make sense to not record the first cursor position on
enter.