For example, clicking in the middle of the Accessed field would move the
cursor to the end, no matter where the click happened. Clicking and
dragging when the field wasn't already focused would select from the
beginning of the field to the drag position.
- hide tooltip on click and make sure it does not appear
for a bit to avoid race conditions (e.g. clicking
right after mousemove stopped)
- do not display a tooltip if a mouse key is being
held (e.g. during drag in itemTree)
Fixes: #4519
Unify richlistitem styling rules
- Fix richlistitem unwanted focus ring on Linux
fix: #4510
- Simplify richlistbox styling rules and do not follow Mozilla code
- Use --default-focusring-width for v-table
- added button to switch mode to creator rows
- removed that option from options menu
- extra tweak to avoid cursor flickering during re-render after
clicking on the button
- increased itemPane min-width to 320px
Fixes: #3959
Fix regression after 117197e11d
where space or enter would not trigger a click on
link outside of the main window.
".keyboard-clickable" is handled by listener in ZoteroPane,
so links outside of it (e.g. preferences) are not affected by it.
For now, just explicitly handle "keypress" event by the
zotero-text-link component.
Also, added a focus-ring around the link so it is visible
when it is focused.
Fixes: #4521
- minor refactoring to avoid deleting the first ("Custom") menuitem
of the resolver menulist. It is the first item that is selected when
popup opens and deleting it confuses keyboard navigation, so that
arrowDown/Up won't navigate the menu (unless the menu is hovered
over with a mouse)
- explicitly re-select the first item when the menulist closes.
Otherwise, in case of having navigated the menus with arrows
without changing selection and closing the popup, next time
resolver selector appears, arrowUp/Down will not navigate the list.
Only occurs on Windows.
- clear the resolver menus (except for the 1st item) when the popup closes
so that arrowUp/Down on focused dropdown don't select invalid
top-level menus (e.g. "North America").
- make sure that if the URL has been edited, the resolver dropdown's
value will switch to "Custom" even if the resolvers were not loaded
fixes: #4491
- set max-width on the actual citation properties popup
- refactor _buildItemDescription to construct item description
as an array of spans, instead of labels, so that the
text can properly wrap.
Do not use specific "#item-tree-main-default" selector to
find the itemTree node to focus since a different id
can be set for the table, e.g for the list of feeds.
Use a more general "zotero-items-tree .virtualized-table"
selector to focus the itemTree on tab from quickSearch
and on Escape keypress from an editable-text of itemPane.
Fixes: #4494
Previously, an empty value for the pref would be treated as matching
*every* MIME type, because s.startsWith('') is true for any string. That
meant that unchecking all the file type checkboxes would actually enable
renaming for all files.
- Don't import global Zotero SCSS
- I think this was always a mistake - preferences have their own
root SCSS file (preferences.scss) and don't need zotero.scss
- Don't add margins on radio or button labels
- Like above - I don't think this was correct even before the latest
button style tweaks!
- Don't add global margins
- Otherwise we start an arms race with all the other elements in the
pane - anything without a margin-inline-start will look like it's
sticking out to the left. Apply specific margins instead.
Tweak to the conditional to check if something is focused
via selection.count (instead of selection.focused which
defaults to 0 and fails on the first focused item).
Post: 40fd5efe05.
Fixes: #4444
* New `attachmentTitle` field, returns the title of the current attachment (or
the future title of the attachment being created)
* New function `match` to enable testing values with a regex.
* New function `start` to enable truncating from the beginning.
* Ignore new line characters in the template for easier editing.
* Avoid repeated characters when changing case (snake/dash)
* Increase the size of the template input field.
Closes#3252
After redesign, tab order became: quickSearch -> itemTree ->
cancel and accept buttons -> collectionTree.
This restores original tab sequence: quickSearch -> collectionTree ->
itemsTree -> cancel and accept buttons.
Instead of focusing the first condition, which ends up placing
focus in the middle of the new window or modal. It is best
to focus the first node, which is the general convention,
per https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/, and
what many screen reader users expect. When we focus a field in
the middle of the window/dialog, it makes it seem for some users
that this is the first node, which will make them miss all the
fields above it.
Also, linked search name input to its label in searchDialog.xhtml.
<panel> takes over Escape handling by just closing the popup via
what looks like a capturing listener on document, since Escape
keydown events never even reach the popup itself. When the popup
is just closed like that, tagsBox is blurred so all unwanted edits get saved.
To properly handle Escape, attach our own capturing listener that will
reset all edits before the popup is closed.
Fixes: #4398
- Mozilla's ActorManagerParent was only being imported when devtools
were initialized (either by opening the Error Console or by connecting
via remote debugging). Import it in our ActorManager so Mozilla
actors, including AutoScroll, are always registered.
- This may have other effects! I'm assuming most of us test with
the error console visible, though, so we would've had Mozilla
actors, while users running without devtools wouldn't have. We
definitely want those actors. (Most of them, at least.)
- Don't override autoscroller styles with our panel customizations.
After react 18 update, the tab node may not yet be rendered
by tabBar.jsx when we try to scroll it into view in Zotero_Tabs.select.
- To make sure scrolling happens when rendering is done, move scroll-related
logic into a useEffect of tabBar.jxs. It also makes sure that we'll scroll to
a selected tab if it is moved via context menu to the very beginning or the end.
- Added a small scroll-padding to tabs container to make sure the border
does not get cutoff after the tab is scrolled into view instead of
JS code accounting for the border.
- Fixed a glitch where the pinned library tab would not get selected
on shift-tab from opened tabs menu.
Fixes: #4382