diff --git a/src/Tinter.js b/src/Tinter.js
index b258930425..a83ccdce74 100644
--- a/src/Tinter.js
+++ b/src/Tinter.js
@@ -64,6 +64,7 @@ var cssAttrs = [
"borderColor",
"borderTopColor",
"borderBottomColor",
+ "borderLeftColor",
];
var svgAttrs = [
diff --git a/src/components/structures/RoomStatusBar.js b/src/components/structures/RoomStatusBar.js
index a8f0de3e92..75cb06daf6 100644
--- a/src/components/structures/RoomStatusBar.js
+++ b/src/components/structures/RoomStatusBar.js
@@ -111,6 +111,10 @@ module.exports = React.createClass({
);
}
+ if (this.state.syncState === "ERROR") {
+ return null;
+ }
+
if (wantPlaceholder) {
return (
...
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 934f6b6b51..de3e10c00c 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -947,9 +947,14 @@ module.exports = React.createClass({
if (auxPanelMaxHeight < 50) auxPanelMaxHeight = 50;
if (this.refs.callView) {
- var video = this.refs.callView.getVideoView().getRemoteVideoElement();
-
- video.style.maxHeight = auxPanelMaxHeight + "px";
+ var fullscreenElement =
+ (document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.webkitFullscreenElement);
+ if (!fullscreenElement) {
+ var video = this.refs.callView.getVideoView().getRemoteVideoElement();
+ video.style.maxHeight = auxPanelMaxHeight + "px";
+ }
}
// we need to do this for general auxPanels too
@@ -993,6 +998,11 @@ module.exports = React.createClass({
});
},
+ onCallViewResize: function() {
+ this.onChildResize();
+ this.onResize();
+ },
+
onChildResize: function() {
// When the video or the message composer resizes, the scroll panel
// also changes size. Work around GeminiScrollBar fail by telling it
@@ -1285,7 +1295,7 @@ module.exports = React.createClass({
{ fileDropTarget }
+ onResize={this.onCallViewResize} />
{ conferenceCallNotification }
{ aux }
diff --git a/src/components/views/messages/MImageBody.js b/src/components/views/messages/MImageBody.js
index 691380d678..b54a51c45b 100644
--- a/src/components/views/messages/MImageBody.js
+++ b/src/components/views/messages/MImageBody.js
@@ -94,7 +94,7 @@ module.exports = React.createClass({
_getThumbUrl: function() {
var content = this.props.mxEvent.getContent();
- return MatrixClientPeg.get().mxcUrlToHttp(content.url, 480, 360);
+ return MatrixClientPeg.get().mxcUrlToHttp(content.url, 800, 600);
},
render: function() {
@@ -103,10 +103,10 @@ module.exports = React.createClass({
var cli = MatrixClientPeg.get();
var thumbHeight = null;
- if (content.info) thumbHeight = this.thumbHeight(content.info.w, content.info.h, 480, 360);
+ if (content.info) thumbHeight = this.thumbHeight(content.info.w, content.info.h, 800, 600);
var imgStyle = {};
- if (thumbHeight) imgStyle['height'] = thumbHeight;
+ if (thumbHeight) imgStyle['maxHeight'] = thumbHeight;
var thumbUrl = this._getThumbUrl();
if (thumbUrl) {
diff --git a/src/components/views/voip/CallView.js b/src/components/views/voip/CallView.js
index ed44313b9e..5958c2b278 100644
--- a/src/components/views/voip/CallView.js
+++ b/src/components/views/voip/CallView.js
@@ -85,9 +85,9 @@ module.exports = React.createClass({
// if this call is a conf call, don't display local video as the
// conference will have us in it
this.getVideoView().getLocalVideoElement().style.display = (
- call.confUserId ? "none" : "initial"
+ call.confUserId ? "none" : "block"
);
- this.getVideoView().getRemoteVideoElement().style.display = "initial";
+ this.getVideoView().getRemoteVideoElement().style.display = "block";
}
else {
this.getVideoView().getLocalVideoElement().style.display = "none";
diff --git a/src/components/views/voip/VideoView.js b/src/components/views/voip/VideoView.js
index 08e587f47f..6b4b546270 100644
--- a/src/components/views/voip/VideoView.js
+++ b/src/components/views/voip/VideoView.js
@@ -64,6 +64,7 @@ module.exports = React.createClass({
element.msRequestFullscreen
);
requestMethod.call(element);
+ this.getRemoteVideoElement().style.maxHeight = "inherit";
}
else {
var exitMethod = (