aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src')
-rw-r--r--alacritty/src/config/window.rs30
1 files changed, 25 insertions, 5 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs
index 813c0f3a..08f38b57 100644
--- a/alacritty/src/config/window.rs
+++ b/alacritty/src/config/window.rs
@@ -2,7 +2,7 @@ use std::fmt::{self, Formatter};
use std::os::raw::c_ulong;
use glutin::window::Fullscreen;
-use log::error;
+use log::{error, warn};
use serde::de::{self, MapAccess, Visitor};
use serde::{Deserialize, Deserializer, Serialize};
@@ -74,11 +74,31 @@ impl Default for WindowConfig {
impl WindowConfig {
#[inline]
pub fn dimensions(&self) -> Option<Dimensions> {
- if self.dimensions.columns.0 != 0
- && self.dimensions.lines != 0
- && self.startup_mode != StartupMode::Maximized
- {
+ let (lines, columns) = (self.dimensions.lines, self.dimensions.columns.0);
+ let (lines_is_non_zero, columns_is_non_zero) = (lines != 0, columns != 0);
+
+ if lines_is_non_zero && columns_is_non_zero {
+ // Return dimensions if both `lines` and `columns` are non-zero.
Some(self.dimensions)
+ } else if lines_is_non_zero || columns_is_non_zero {
+ // Warn if either `columns` or `lines` is non-zero.
+
+ let (zero_key, non_zero_key, non_zero_value) = if lines_is_non_zero {
+ ("columns", "lines", lines)
+ } else {
+ ("lines", "columns", columns)
+ };
+
+ warn!(
+ target: LOG_TARGET_CONFIG,
+ "Both `lines` and `columns` must be non-zero for `window.dimensions` to take \
+ effect. Configured value of `{}` is 0 while that of `{}` is {}",
+ zero_key,
+ non_zero_key,
+ non_zero_value,
+ );
+
+ None
} else {
None
}