2021-02-28 00:57:20 +01:00
|
|
|
import autosize from "autosize";
|
2021-03-11 05:43:45 +01:00
|
|
|
import $ from "jquery";
|
2020-08-01 03:43:15 +02:00
|
|
|
|
2021-03-16 23:38:59 +01:00
|
|
|
import * as blueslip from "./blueslip";
|
2022-05-03 15:31:14 +02:00
|
|
|
import * as compose_state from "./compose_state";
|
2021-02-28 00:57:20 +01:00
|
|
|
import * as condense from "./condense";
|
2021-03-30 02:21:21 +02:00
|
|
|
import * as message_lists from "./message_lists";
|
2021-02-28 00:57:20 +01:00
|
|
|
import * as message_viewport from "./message_viewport";
|
2021-05-17 10:01:02 +02:00
|
|
|
import * as navbar_alerts from "./navbar_alerts";
|
2021-02-28 01:05:26 +01:00
|
|
|
import * as navigate from "./navigate";
|
2021-02-28 01:03:09 +01:00
|
|
|
import * as popovers from "./popovers";
|
2021-02-28 00:57:20 +01:00
|
|
|
import * as util from "./util";
|
2020-07-24 06:02:07 +02:00
|
|
|
|
2014-03-13 19:03:31 +01:00
|
|
|
function get_new_heights() {
|
2019-11-02 00:06:25 +01:00
|
|
|
const res = {};
|
|
|
|
const viewport_height = message_viewport.height();
|
|
|
|
const top_navbar_height = $("#top_navbar").safeOuterHeight(true);
|
2021-05-10 18:05:35 +02:00
|
|
|
const right_sidebar_shorcuts_height = $(".right-sidebar-shortcuts").safeOuterHeight(true) || 0;
|
2014-03-13 19:03:31 +01:00
|
|
|
|
|
|
|
res.bottom_whitespace_height = viewport_height * 0.4;
|
|
|
|
|
|
|
|
res.main_div_min_height = viewport_height - top_navbar_height;
|
|
|
|
|
2020-07-15 00:34:28 +02:00
|
|
|
res.stream_filters_max_height =
|
|
|
|
viewport_height -
|
2020-10-07 09:17:30 +02:00
|
|
|
Number.parseInt($("#left-sidebar").css("marginTop"), 10) -
|
|
|
|
Number.parseInt($(".narrows_panel").css("marginTop"), 10) -
|
|
|
|
Number.parseInt($(".narrows_panel").css("marginBottom"), 10) -
|
2022-10-04 23:33:51 +02:00
|
|
|
$("#global_filters").safeOuterHeight(true) -
|
|
|
|
$("#private_messages_sticky_header").safeOuterHeight(true);
|
2014-03-13 19:03:31 +01:00
|
|
|
|
|
|
|
// Don't let us crush the stream sidebar completely out of view
|
2017-01-09 11:38:38 +01:00
|
|
|
res.stream_filters_max_height = Math.max(80, res.stream_filters_max_height);
|
2014-03-13 19:03:31 +01:00
|
|
|
|
|
|
|
// RIGHT SIDEBAR
|
|
|
|
|
2020-07-15 00:34:28 +02:00
|
|
|
const usable_height =
|
|
|
|
viewport_height -
|
2020-10-07 09:17:30 +02:00
|
|
|
Number.parseInt($("#right-sidebar").css("marginTop"), 10) -
|
2020-07-15 00:34:28 +02:00
|
|
|
$("#userlist-header").safeOuterHeight(true) -
|
|
|
|
$("#user_search_section").safeOuterHeight(true) -
|
2021-05-10 18:05:35 +02:00
|
|
|
right_sidebar_shorcuts_height;
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2020-05-26 13:58:18 +02:00
|
|
|
res.buddy_list_wrapper_max_height = Math.max(80, usable_height);
|
2014-03-13 19:03:31 +01:00
|
|
|
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
|
2021-02-28 00:57:20 +01:00
|
|
|
export function watch_manual_resize(element) {
|
2021-05-06 21:49:45 +02:00
|
|
|
const box = document.querySelector(element);
|
2017-05-11 18:28:33 +02:00
|
|
|
|
2021-05-06 21:49:45 +02:00
|
|
|
if (!box) {
|
|
|
|
blueslip.error("Bad selector in watch_manual_resize: " + element);
|
|
|
|
return undefined;
|
|
|
|
}
|
2017-05-11 18:28:33 +02:00
|
|
|
|
2021-05-06 21:49:45 +02:00
|
|
|
const meta = {
|
|
|
|
box,
|
|
|
|
height: null,
|
|
|
|
mousedown: false,
|
|
|
|
};
|
|
|
|
|
|
|
|
const box_handler = function () {
|
|
|
|
meta.mousedown = true;
|
|
|
|
meta.height = meta.box.clientHeight;
|
|
|
|
};
|
|
|
|
meta.box.addEventListener("mousedown", box_handler);
|
|
|
|
|
|
|
|
// If the user resizes the textarea manually, we use the
|
|
|
|
// callback to stop autosize from adjusting the height.
|
|
|
|
// It will be re-enabled when this component is next opened.
|
|
|
|
const body_handler = function () {
|
|
|
|
if (meta.mousedown === true) {
|
|
|
|
meta.mousedown = false;
|
|
|
|
if (meta.height !== meta.box.clientHeight) {
|
|
|
|
meta.height = meta.box.clientHeight;
|
|
|
|
autosize.destroy($(element)).height(meta.height + "px");
|
2017-04-22 22:34:18 +02:00
|
|
|
}
|
2021-05-06 21:49:45 +02:00
|
|
|
}
|
|
|
|
};
|
|
|
|
document.body.addEventListener("mouseup", body_handler);
|
|
|
|
|
|
|
|
return [box_handler, body_handler];
|
2021-02-28 00:57:20 +01:00
|
|
|
}
|
2017-04-22 22:34:18 +02:00
|
|
|
|
2022-02-02 06:06:56 +01:00
|
|
|
export function reset_compose_message_max_height(bottom_whitespace_height) {
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
// If the compose-box is open, we set the `max-height` property of
|
2022-01-31 11:27:54 +01:00
|
|
|
// `compose-textarea` and `preview-textarea`, so that the
|
|
|
|
// compose-box's maximum extent does not overlap the last message
|
|
|
|
// in the current stream. We also leave a tiny bit of space after
|
|
|
|
// the last message of the current stream.
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
|
|
|
|
// Compute bottom_whitespace_height if not provided by caller.
|
|
|
|
if (bottom_whitespace_height === undefined) {
|
2022-11-10 12:32:37 +01:00
|
|
|
const h = get_new_heights();
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
bottom_whitespace_height = h.bottom_whitespace_height;
|
|
|
|
}
|
|
|
|
|
2022-10-24 20:35:19 +02:00
|
|
|
const compose_height = $("#compose").get(0).getBoundingClientRect().height;
|
|
|
|
const compose_textarea_height = Math.max(
|
|
|
|
$("#compose-textarea").get(0).getBoundingClientRect().height,
|
|
|
|
$("#preview_message_area").get(0).getBoundingClientRect().height,
|
|
|
|
);
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
const compose_non_textarea_height = compose_height - compose_textarea_height;
|
|
|
|
|
2022-10-24 20:35:19 +02:00
|
|
|
// We ensure that the last message is not overlapped by compose box.
|
|
|
|
$("#compose-textarea").css(
|
|
|
|
"max-height",
|
|
|
|
// Because <textarea> max-height includes padding, we subtract
|
|
|
|
// 10 for the padding and 10 for the selected message border.
|
|
|
|
bottom_whitespace_height - compose_non_textarea_height - 20,
|
|
|
|
);
|
|
|
|
$("#preview_message_area").css(
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
"max-height",
|
2022-10-24 20:35:19 +02:00
|
|
|
// Because <div> max-height doesn't include padding, we only
|
|
|
|
// subtract 10 for the selected message border.
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
bottom_whitespace_height - compose_non_textarea_height - 10,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2021-02-28 00:57:20 +01:00
|
|
|
export function resize_bottom_whitespace(h) {
|
2020-05-27 21:08:13 +02:00
|
|
|
$("#bottom_whitespace").height(h.bottom_whitespace_height);
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
|
|
|
|
// The height of the compose box is tied to that of
|
|
|
|
// bottom_whitespace, so update it if necessary.
|
|
|
|
//
|
2022-02-02 06:06:56 +01:00
|
|
|
// reset_compose_message_max_height cannot compute the right
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
// height correctly while compose is hidden. This is OK, because
|
|
|
|
// we also resize compose every time it is opened.
|
2022-05-03 15:31:14 +02:00
|
|
|
if (compose_state.composing()) {
|
2022-02-02 06:06:56 +01:00
|
|
|
reset_compose_message_max_height(h.bottom_whitespace_height);
|
compose-box: Fix compose-box from covering last messages of stream.
While writing a long message in compose-box, the last few messages of
the current stream gets covered by the compose-box and it gets pretty
annoying sometimes trying to figure out a way to read the last message
of the stream while writing. Right now, the only way to get past this
is to resize `compose-textarea` by using the resize tool at the
bottom-right corner of the `compose-textarea`. But, that small resize
tool is not always readily visible to the user.
The proposed solution in this commit is to reset the `max-height`
property of `#compose-textarea` everytime `bottom_whitespace_height`
is resized such that the total height of `#compose` is always less
than or equal to the height of `bottom_whitespace_height`. Doing
this, the compose-box never covers the last message of the current
stream.
The only problem with this is that if the compose-box is closed at the
time of bottom-whitespace resize, we cannot find the
`compose_non_textarea_height` and so, we cannot reset the max-height
of `#compose-textarea`. To solve this, max-height of
`compose-textarea` is also reset everytime a new compose-box is opened
according to the value of `bottom_whitespace_height` at that time.
Thus, if the compose-box is already open at the time of
bottom-whitespace resize, the max-height of `#compose-textarea` will
also get reset at the same time, whereas, if the compose-box is closed
at the time of bottom-whitespace resize, the max-height of
`#compose-textarea` won't get reset at that time, but it will surely
get reset whenever the user will open the compose-box.
Tested on my Ubuntu Development Environment on Chrome and Firefox browsers.
Fixes: #16038.
2021-01-18 14:23:29 +01:00
|
|
|
}
|
2021-02-28 00:57:20 +01:00
|
|
|
}
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2022-11-10 12:30:38 +01:00
|
|
|
export function resize_stream_filters_container() {
|
2022-11-10 12:32:37 +01:00
|
|
|
const h = get_new_heights();
|
2021-02-28 00:57:20 +01:00
|
|
|
resize_bottom_whitespace(h);
|
2022-09-13 13:15:57 +02:00
|
|
|
$("#left_sidebar_scroll_container").css("max-height", h.stream_filters_max_height);
|
2021-02-28 00:57:20 +01:00
|
|
|
}
|
2015-11-25 18:41:32 +01:00
|
|
|
|
2021-02-28 00:57:20 +01:00
|
|
|
export function resize_sidebars() {
|
2022-11-10 12:32:37 +01:00
|
|
|
const h = get_new_heights();
|
2020-07-15 01:29:15 +02:00
|
|
|
$("#buddy_list_wrapper").css("max-height", h.buddy_list_wrapper_max_height);
|
2022-09-13 13:15:57 +02:00
|
|
|
$("#left_sidebar_scroll_container").css("max-height", h.stream_filters_max_height);
|
2020-05-27 21:37:01 +02:00
|
|
|
return h;
|
2021-02-28 00:57:20 +01:00
|
|
|
}
|
2020-05-27 21:37:01 +02:00
|
|
|
|
2021-02-28 00:57:20 +01:00
|
|
|
export function resize_page_components() {
|
2021-05-17 10:01:02 +02:00
|
|
|
navbar_alerts.resize_app();
|
2021-02-28 00:57:20 +01:00
|
|
|
const h = resize_sidebars();
|
|
|
|
resize_bottom_whitespace(h);
|
|
|
|
}
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2019-11-02 00:06:25 +01:00
|
|
|
let _old_width = $(window).width();
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2021-02-28 00:57:20 +01:00
|
|
|
export function handler() {
|
2019-11-02 00:06:25 +01:00
|
|
|
const new_width = $(window).width();
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2021-12-04 13:28:31 +01:00
|
|
|
// On mobile web, we want to avoid hiding a popover here on height change,
|
2019-03-15 04:02:27 +01:00
|
|
|
// especially if this resize was triggered by a virtual keyboard
|
|
|
|
// popping up when the user opened that very popover.
|
2019-11-02 00:06:25 +01:00
|
|
|
const mobile = util.is_mobile();
|
2021-12-04 13:28:31 +01:00
|
|
|
if (!mobile || new_width !== _old_width) {
|
2019-03-15 04:02:27 +01:00
|
|
|
popovers.hide_all();
|
|
|
|
}
|
2021-12-04 13:28:31 +01:00
|
|
|
|
|
|
|
if (new_width !== _old_width) {
|
|
|
|
_old_width = new_width;
|
|
|
|
condense.clear_message_content_height_cache();
|
|
|
|
}
|
2021-02-28 00:57:20 +01:00
|
|
|
resize_page_components();
|
2014-03-13 19:03:31 +01:00
|
|
|
|
2018-03-26 19:26:24 +02:00
|
|
|
// Re-compute and display/remove [More] links to messages
|
2020-04-02 15:20:24 +02:00
|
|
|
condense.condense_and_collapse($(".message_table .message_row"));
|
2018-03-26 19:26:24 +02:00
|
|
|
|
2014-03-13 19:03:31 +01:00
|
|
|
// This function might run onReady (if we're in a narrow window),
|
|
|
|
// but before we've loaded in the messages; in that case, don't
|
|
|
|
// try to scroll to one.
|
2021-03-30 02:21:21 +02:00
|
|
|
if (message_lists.current.selected_id() !== -1) {
|
2019-03-15 04:02:27 +01:00
|
|
|
if (mobile) {
|
|
|
|
popovers.set_suppress_scroll_hide();
|
|
|
|
}
|
|
|
|
|
2016-05-25 13:26:57 +02:00
|
|
|
navigate.scroll_to_selected();
|
2014-03-13 19:03:31 +01:00
|
|
|
}
|
2021-02-28 00:57:20 +01:00
|
|
|
}
|