Selecting a room in the conference room browser labelled the bookmark button
with the opposite of the room's actual state: an unbookmarked room offered
"Remove bookmark" with the delete icon, and a bookmarked one offered to
bookmark it again. Clicking still did the right thing, so the button simply
described the wrong action.
addBookmarkUI() means "the room is bookmarked, so offer to remove it" — which
is how bookmarkRoom() already calls it, passing the state that results from
the toggle it has just performed. Only the selection listener negated the
value. Drop the negation there, and pass false rather than true when nothing
is selected, so the disabled button rests on "Bookmark room" instead of
"Remove bookmark".
Rename the parameter to isBookmarked and correct its javadoc, which described
the inverted meaning.
This reverts the previous solution to show all resources for a user (which was displayed in the contactlist tooltip for each user - introducing confusing behavior in a very visible place).
Instead, the resources are now displayed in the 'view client version' menu item, which adds a descriptive disclaimer. This is a less visible place (which will lead to less confusion) and as a bonus, the functionality now no longer returns data from one client when multiple clients are online.
Improve the contact list hover popup by making its behavior more predictable and responsive.
- Cancel pending popup timers when the pointer leaves a contact or the list,
- suppress popups when hovering outside valid list cells,
- avoid unnecessary popup redisplay while remaining over the same contact,
- and ensure stale popups are hidden promptly when the hover target changes.
These changes provide a smoother and more consistent user experience.