diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index c37c79afc..6ee1ae141 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2820,6 +2820,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ktg_settings_disable_up_edit" = "Disable edit by Up key"; +"ktg_settings_auto_scroll_unfocused" = "Unfocused auto-scroll"; + "ktg_settings_always_show_scheduled" = "Always show scheduled"; "ktg_settings_chat_list_compact" = "Compact chat list"; diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 8c828daa4..d361f8c37 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -40,6 +40,7 @@ "ktg_settings_sticker_scale_both_about": "When enabled, sticker maximum width will be changed along with sticker height.", "ktg_settings_emoji_outline": "Big emoji outline", "ktg_settings_disable_up_edit": "Disable edit by Up key", + "ktg_settings_auto_scroll_unfocused": "Unfocused auto-scroll", "ktg_settings_always_show_scheduled": "Always show scheduled", "ktg_settings_chat_list_compact": "Compact chat list", "ktg_fonts_title": "Fonts", diff --git a/Telegram/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index 96c961099..13c86ed2a 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -40,6 +40,7 @@ "ktg_settings_sticker_scale_both_about": "При включении максимальная ширина стикера будет изменяться вместе с высотой.", "ktg_settings_emoji_outline": "Обводка у больших эмодзи", "ktg_settings_disable_up_edit": "Отключить редактирование по «Вверх»", + "ktg_settings_auto_scroll_unfocused": "Прокрутка, когда окно неактивно", "ktg_settings_always_show_scheduled": "Всегда показывать отложенные", "ktg_settings_chat_list_compact": "Компактный список чатов", "ktg_fonts_title": "Шрифты", diff --git a/Telegram/SourceFiles/kotato/json_settings.cpp b/Telegram/SourceFiles/kotato/json_settings.cpp index 9a6c8099a..121cdc622 100644 --- a/Telegram/SourceFiles/kotato/json_settings.cpp +++ b/Telegram/SourceFiles/kotato/json_settings.cpp @@ -369,6 +369,7 @@ QByteArray GenerateSettingsJson(bool areDefault = false) { settings.insert(qsl("show_phone_in_drawer"), cShowPhoneInDrawer()); settings.insert(qsl("chat_list_lines"), DialogListLines()); settings.insert(qsl("disable_up_edit"), cDisableUpEdit()); + settings.insert(qsl("auto_scroll_unfocused"), cAutoScrollUnfocused()); settings.insert(qsl("confirm_before_calls"), cConfirmBeforeCall()); settings.insert(qsl("native_decorations"), cUseNativeDecorations()); settings.insert(qsl("recent_stickers_limit"), RecentStickersLimit()); @@ -581,6 +582,10 @@ bool Manager::readCustomFile() { cSetDisableUpEdit(v); }); + ReadBoolOption(settings, "auto_scroll_unfocused", [&](auto v) { + cSetAutoScrollUnfocused(v); + }); + ReadArrayOption(settings, "replaces", [&](auto v) { for (auto i = v.constBegin(), e = v.constEnd(); i != e; ++i) { if (!(*i).isArray()) { diff --git a/Telegram/SourceFiles/kotato/settings.cpp b/Telegram/SourceFiles/kotato/settings.cpp index 0ae54a121..641c6ed2a 100644 --- a/Telegram/SourceFiles/kotato/settings.cpp +++ b/Telegram/SourceFiles/kotato/settings.cpp @@ -246,4 +246,6 @@ bool gForwardCaptioned = true; bool gForwardAlbumsAsIs = true; bool gForwardGrouped = false; +bool gAutoScrollUnfocused = false; + LocalFolderVector gLocalFolders; diff --git a/Telegram/SourceFiles/kotato/settings.h b/Telegram/SourceFiles/kotato/settings.h index 6624bc9b2..4cd27aaec 100644 --- a/Telegram/SourceFiles/kotato/settings.h +++ b/Telegram/SourceFiles/kotato/settings.h @@ -146,6 +146,8 @@ DeclareSetting(bool, ForwardCaptioned); DeclareSetting(bool, ForwardAlbumsAsIs); DeclareSetting(bool, ForwardGrouped); +DeclareSetting(bool, AutoScrollUnfocused); + struct LocalFolder { int id = 0; uint64 ownerId = 0; diff --git a/Telegram/SourceFiles/kotato/settings_menu.cpp b/Telegram/SourceFiles/kotato/settings_menu.cpp index 2c836018c..87ff3b82d 100644 --- a/Telegram/SourceFiles/kotato/settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/settings_menu.cpp @@ -224,6 +224,7 @@ void SetupKotatoChats( SettingsMenuCSwitch(ktg_settings_top_bar_mute, ProfileTopBarNotifications); SettingsMenuCSwitch(ktg_settings_disable_up_edit, DisableUpEdit); + SettingsMenuCSwitch(ktg_settings_auto_scroll_unfocused, AutoScrollUnfocused); AddButton( container, diff --git a/Telegram/SourceFiles/mainwindow.cpp b/Telegram/SourceFiles/mainwindow.cpp index 6049c026d..d36d499d4 100644 --- a/Telegram/SourceFiles/mainwindow.cpp +++ b/Telegram/SourceFiles/mainwindow.cpp @@ -556,6 +556,15 @@ bool MainWindow::doWeMarkAsRead() { if (!_main || Ui::isLayerShown()) { return false; } + if (cAutoScrollUnfocused()) { + // for tile grid in case other windows have shadows + // i've seen some windows with >70px shadow margins + const auto margin = style::ConvertScale(100); + return Ui::IsContentVisible( + this, + inner().marginsRemoved(QMargins(margin, margin, margin, margin))) + && _main->doWeMarkAsRead(); + } updateIsActive(); return isActive() && _main->doWeMarkAsRead(); }