From 85b223128f21c5df59f5aff25ef47af14d75d7af Mon Sep 17 00:00:00 2001 From: Terry Katz Date: Thu, 11 Jul 2019 12:02:36 -0400 Subject: [PATCH] Add status item to show when keyboard grouping is enabled. --- src/ConEmu/Options.cpp | 1 + src/ConEmu/Status.cpp | 24 ++++++++++++++++++++++++ src/ConEmu/Status.h | 5 +++++ 3 files changed, 30 insertions(+) mode change 100644 => 100755 src/ConEmu/Options.cpp mode change 100644 => 100755 src/ConEmu/Status.cpp mode change 100644 => 100755 src/ConEmu/Status.h diff --git a/src/ConEmu/Options.cpp b/src/ConEmu/Options.cpp old mode 100644 new mode 100755 index 503187c15d..3ce8600b01 --- a/src/ConEmu/Options.cpp +++ b/src/ConEmu/Options.cpp @@ -816,6 +816,7 @@ void Settings::InitSettings() isStatusColumnHidden[csi_ConEmuView] = true; isStatusColumnHidden[csi_ServerHWND] = true; isStatusColumnHidden[csi_Time] = true; + isStatusColumnHidden[csi_InputGrouping] = true; isTabs = 1; nTabsLocation = 0; isTabIcons = true; isOneTabPerGroup = false; bActivateSplitMouseOver = 1; // 1 - always, 2 - Regarding Windows settings (Active window tracking) diff --git a/src/ConEmu/Status.cpp b/src/ConEmu/Status.cpp old mode 100644 new mode 100755 index 07f74d80c7..d43f3977ab --- a/src/ConEmu/Status.cpp +++ b/src/ConEmu/Status.cpp @@ -239,6 +239,11 @@ static StatusColInfo gStatusCols[] = L"System time", L"System time"}, + { csi_InputGrouping,L"StatusBar.Hide.InputGrouping", + L"Input Grouping Status", + L"Input Grouping Status" }, + + {csi_SizeGrip, L"StatusBar.Hide.Resize", L"Size grip", L"Click and drag size grip to resize ConEmu window"}, @@ -449,6 +454,8 @@ void CStatus::PaintStatus(HDC hPaint, LPRECT prcStatus /*= NULL*/) IsWindowChanged(); // Время, если показано IsTimeChanged(); + // + IsInputGroupingChanged(); if (!mh_MemDC || (nStatusWidth != mn_BmpSize.cx) || (nStatusHeight != mn_BmpSize.cy)) { @@ -1138,6 +1145,9 @@ void CStatus::OnTimer() if (!mb_DataChanged && IsTimeChanged()) mb_DataChanged = true; // Обновить время на статусе + if (!mb_DataChanged && IsInputGroupingChanged()) + mb_DataChanged = true; + if (mb_DataChanged /*&& !mb_Invalidated*/) UpdateStatusBar(true); } @@ -1923,6 +1933,20 @@ LPCWSTR CStatus::GetSettingName(CEStatusItems nID) return m_Values[nID].sSettingName; } +bool CStatus::IsInputGroupingChanged() { + if (mb_LastGrouped != mp_ConEmu->isInputGrouped()) { + mb_LastGrouped = mp_ConEmu->isInputGrouped(); + if (mb_LastGrouped) { + swprintf_c(m_Values[csi_InputGrouping].sText, L"Grouping"); + } + else { + swprintf_c(m_Values[csi_InputGrouping].sText, L""); + } + return true; + } + return false; +} + bool CStatus::IsTimeChanged() { if (gpSet->isStatusColumnHidden[csi_Time]) diff --git a/src/ConEmu/Status.h b/src/ConEmu/Status.h old mode 100644 new mode 100755 index d827e9e30c..7086191e35 --- a/src/ConEmu/Status.h +++ b/src/ConEmu/Status.h @@ -91,6 +91,8 @@ enum CEStatusItems csi_Time, + csi_InputGrouping, + csi_SizeGrip, // @@ -201,6 +203,9 @@ class CStatus bool isSettingsOpened(UINT nOpenPageID = 0); + bool mb_LastGrouped; + bool IsInputGroupingChanged(); + public: CStatus(CConEmuMain* _owner); virtual ~CStatus();