From b8f1df776b09386d753d495bfd89d89ce731fec1 Mon Sep 17 00:00:00 2001 From: Seraphima Zykova Date: Wed, 16 Nov 2022 12:00:22 +0100 Subject: [PATCH] [AlwaysOnTop]Pinning/unpinning telemetry (#21970) --- .../alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp | 8 +++++++- src/modules/alwaysontop/AlwaysOnTop/trace.cpp | 20 +++++++++++++++++++ src/modules/alwaysontop/AlwaysOnTop/trace.h | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/modules/alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp b/src/modules/alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp index 45dba91232..9f9db964f5 100644 --- a/src/modules/alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp +++ b/src/modules/alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp @@ -8,9 +8,12 @@ #include #include -#include #include +#include +#include + + namespace NonLocalizable { const static wchar_t* TOOL_WINDOW_CLASS_NAME = L"AlwaysOnTopWindow"; @@ -180,6 +183,8 @@ void AlwaysOnTop::ProcessCommand(HWND window) { m_topmostWindows.erase(iter); } + + Trace::AlwaysOnTop::UnpinWindow(); } } else @@ -188,6 +193,7 @@ void AlwaysOnTop::ProcessCommand(HWND window) { soundType = Sound::Type::On; AssignBorder(window); + Trace::AlwaysOnTop::PinWindow(); } } diff --git a/src/modules/alwaysontop/AlwaysOnTop/trace.cpp b/src/modules/alwaysontop/AlwaysOnTop/trace.cpp index f4f21b2e84..591f56d7f7 100644 --- a/src/modules/alwaysontop/AlwaysOnTop/trace.cpp +++ b/src/modules/alwaysontop/AlwaysOnTop/trace.cpp @@ -5,6 +5,8 @@ #define LoggingProviderKey "Microsoft.PowerToys" #define EventEnableAlwaysOnTopKey "AlwaysOnTop_EnableAlwaysOnTop" +#define EventPinWindowKey "AlwaysOnTop_PinWindow" +#define EventUnpinWindowKey "AlwaysOnTop_UnpinWindow" #define EventEnabledKey "Enabled" TRACELOGGING_DEFINE_PROVIDER( @@ -33,3 +35,21 @@ void Trace::AlwaysOnTop::Enable(bool enabled) noexcept TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE), TraceLoggingBoolean(enabled, EventEnabledKey)); } + +void Trace::AlwaysOnTop::PinWindow() noexcept +{ + TraceLoggingWrite( + g_hProvider, + EventPinWindowKey, + ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance), + TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE)); +} + +void Trace::AlwaysOnTop::UnpinWindow() noexcept +{ + TraceLoggingWrite( + g_hProvider, + EventUnpinWindowKey, + ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance), + TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE)); +} \ No newline at end of file diff --git a/src/modules/alwaysontop/AlwaysOnTop/trace.h b/src/modules/alwaysontop/AlwaysOnTop/trace.h index 4c18060a8a..23c88d3c01 100644 --- a/src/modules/alwaysontop/AlwaysOnTop/trace.h +++ b/src/modules/alwaysontop/AlwaysOnTop/trace.h @@ -10,5 +10,7 @@ public: { public: static void Enable(bool enabled) noexcept; + static void PinWindow() noexcept; + static void UnpinWindow() noexcept; }; };