[TTVD] Report proper suspend-resume state in portrait mode 62/321662/3
authorMichal Jurkiewicz <m.jurkiewicz@samsung.com>
Thu, 20 Mar 2025 10:59:12 +0000 (11:59 +0100)
committerm.jurkiewicz <m.jurkiewicz@samsung.com>
Wed, 26 Mar 2025 07:46:13 +0000 (07:46 +0000)
[Problem]
When widget is starting in display portrait mode, partial view is
set as suspend-resume state.

[Cause]
Widget size in portrait mode is 1080x1920, which incorrectly
satisfies condition:
  widget_size.width() < screen_resolution.width() ||
  widget_size.height() < screen_resolution.height()

[Solution]
Rewrite condition - enter "RESUME" suspend-resume state only when
widget_size or transposed widget_size equals screen size,
making check resistant to screen orientation.

Bug: https://jira-eu.sec.samsung.net/browse/VDWASM-2295
Change-Id: Ib718744128d55eaec6ed93ec9022d787972e7e48
Signed-off-by: Michal Jurkiewicz <m.jurkiewicz@samsung.com>
wrt/src/browser/tv/wrt_native_window_tv.cc

index eb6d56f8f91a2865f03adc11900f30e008ae6e12..63486e5ea492f1e227deb6fcc2957759855bc24a 100644 (file)
@@ -1472,12 +1472,14 @@ void WRTNativeWindowTV::UpdateSuspendResumeState() {
     widget_size.SetSize(1920, 1080);
   }
 
+  const auto transposed_widget_size = gfx::TransposeSize(widget_size);
+
   if (visible) {
-    if (widget_size.width() < screen_resolution.width() ||
-        widget_size.height() < screen_resolution.height()) {
-      suspend_resume::NotifyStateChange(suspend_resume::State::PARTIAL);
-    } else {
+    if (screen_resolution == widget_size ||
+        screen_resolution == transposed_widget_size) {
       suspend_resume::NotifyStateChange(suspend_resume::State::RESUMED);
+    } else {
+      suspend_resume::NotifyStateChange(suspend_resume::State::PARTIAL);
     }
   } else {
     suspend_resume::NotifyStateChange(suspend_resume::State::SUSPENDED);