This commit makes keep_pointer_in_view() less aggressive when
the pointer is toward the top of the screen. If the pointer is toward
the top of the screen, then as long as it's fully on the screen, we
don't pull the rug out from under the user and change the pointer.
An important benefit of this change is that we fix trac #1608,
which was a bug where autoscrolling interacted with
keep_pointer_in_view() to push messages past the top of the screen
before they were read.
(imported from commit e39926df99bfaedd5c0757f1241887ccd9b93fab)
The helper functions now return true when a message is on
screen, not when it's off screen, and the names have been
changed accordingly. I also eliminated the at_end parameter,
which was kind of abstract, by having message_is_far_enough_up
and message_is_far_enough_down handle those details.
(imported from commit cdb1543e430f49f23eb1b3a88d9aaff95ce7ca74)
* Move the state into a closure to duplicate it for multiple queues
* Use _.debounce instead of manual setTimeout fiddling
* Have it handle manipulating the message flags
(imported from commit 938f51fd666131a3cec5901d3f3fdd39e203b462)
Functions were supposed to check that messages were unread before
passing them to process_read_messages, but some didn't.
The `mark_messages_as_read` function was essentially that, so
take that name.
(imported from commit 2917fe30d2defb8a047ec32e1bc70d379779276b)
When you read messages in a narrow and then un-narrow, collapse
adjacent messages read in the narrow into a summary row that can
be clicked to expand those messages.
Scoped to staging with feature flags.
The implementation of this within our current MessageList is rather ugly.
(imported from commit bcb3a39d8c0c334136fe86318f18ead03f0f50bf)
Adding a span for CSS reasons in the presence list indicator
broke the click handler if you clicked the presence circle directly.
(imported from commit 1aa28755d849a1f2a5a06aeb4cc27ca368730c35)
If you entered "stream:Denmark " in the search box, we would show
you two suggestions for "stream Denmark", despite our duplicate
detection, because we didn't canonicalize the suggestion that is
literally based off the user typed query, and so the other way
of generating the "stream Denmark" suggestion created a duplicate.
Now all the suggestions we generate are canonicalized, so the
generalized duplicate detection can work.
(imported from commit 52bf08ccf9bb2e2260ca8c20690169aead3732ab)
This was introduced in a71867c2435790, intended to fix#1287.
Very subtle bug. The problem was that we were attaching a click handler
to two selectors, a link, and a div that the link is inside of.
Since the link was a descendant of the other selector, clicking the link
created TWO click events, and the second click on a stream box while
already narrowed to that stream jumped you to the end.
We should be careful of this in the future — never attach an event
handler to two selectors, one of which is contained in the other.
(imported from commit f428f593280e80c90b2665d1dfbff1df8a39bd35)
When you are narrowed and hit "New stream message", the topic
will autofill. This broke during the subject-to-topic
transition.
(imported from commit a9b471884c5cdae449e02ce7aa782add4a178077)
For now, we just get emails about referrals that we have to follow up
on manually.
I don't love using the name "referral" in some places and "invite" in
others, but we already use the verb "invite" to mean something else
and "invite" is a canonical noun.
(imported from commit 0814c18395952fcdef234c1584984f71ca1b6f37)
This restores the feature that hitting down when you are at the
last message automatically centers the last message. This is not
a pure revert, because some additional code now goes through
navigate.down.
(imported from commit 2db1f247692ba068613a2d6c93f18ca7c13a16b8)
We now only suggest "Home" if you have an empty search box (suggestion #1),
or if you are typing "Home". Before we'd show it as a way to get back
from various narrows. This is trac #1596.
(imported from commit 9228bf45e9aaf9912d83efdf70338abb4b7e054f)
Bug was introduced by 9152e6e128e0ac38d97d893cb8243e3b9185351b, which
requests gravatars at 2x size (for retina displays).
They are now 25px, which is a little on the small side, but will do for
now. Properly centered.
(imported from commit 769b71101d62206cde1341b9b6b11fbb7925ae28)
We always intended to move the pointer up when you were at the
top of the viewport and scrolling up, and we always intended to
move the pointer down when you were at the bottom of the viewport
and scrolling down. We didn't intend to move the pointer up
when you were at the bottom, or vice versa. This commit fixes
that bug, simplifies the code, and inlines the code into ui.js.
(imported from commit 77e2ace9d2fc1025e1349e3be13c76c3a397fd38)
We had a feature that if you hit the down arrow key when you
were at the last message, it would recenter you. Waseem has bought
into temporarily removing this feature. Justifications:
1) We can always put it back.
2) Autoscrolling makes it less relevant.
3) The feature complicated the code a bit.
4) The feature worked different for End than down arrow, due to
a FIXME.
5) It might have been a misfeature for users that want more
control over their own scrolling.
6) You can achieve the same essential effect by using PgDn
or space.
(imported from commit fa6874bb5d29d7057bb1601f0b6d577bac1272c7)