[mutter] monitor-manager: Fall back to minimum screen size of 640 x 480



commit 0aa7405a2a895719fb7365d563cfbc1da69536ff
Author: Jonas Ådahl <jadahl gmail com>
Date:   Wed Apr 12 14:15:33 2017 +0800

    monitor-manager: Fall back to minimum screen size of 640 x 480
    
    When headless, we don't have any logical monitors to derive a screen
    size from, but we can't set it to empty as that will cause issues with
    the clutter stage, UI widget layout and other things. To avoid such
    issues, just fall back to a 640 x 480 screen size when headless.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730551

 src/backends/meta-monitor-manager-dummy.c      |    5 +++--
 src/backends/meta-monitor-manager-private.h    |    3 +++
 src/backends/native/meta-monitor-manager-kms.c |    4 ++--
 src/tests/meta-monitor-manager-test.c          |    5 ++---
 src/tests/monitor-unit-tests.c                 |    5 ++---
 5 files changed, 12 insertions(+), 10 deletions(-)
---
diff --git a/src/backends/meta-monitor-manager-dummy.c b/src/backends/meta-monitor-manager-dummy.c
index b45922b..004374a 100644
--- a/src/backends/meta-monitor-manager-dummy.c
+++ b/src/backends/meta-monitor-manager-dummy.c
@@ -506,10 +506,11 @@ meta_monitor_manager_dummy_apply_monitors_config (MetaMonitorManager      *manag
 
   if (!config)
     {
-      manager->screen_width = 0;
-      manager->screen_height = 0;
+      manager->screen_width = META_MONITOR_MANAGER_MIN_SCREEN_WIDTH;
+      manager->screen_height = META_MONITOR_MANAGER_MIN_SCREEN_HEIGHT;
 
       meta_monitor_manager_rebuild (manager, NULL);
+      return TRUE;
     }
 
   if (!meta_monitor_config_manager_assign (manager, config,
diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h
index 563bf92..707d639 100644
--- a/src/backends/meta-monitor-manager-private.h
+++ b/src/backends/meta-monitor-manager-private.h
@@ -67,6 +67,9 @@ typedef struct _MetaCrtcInfo MetaCrtcInfo;
 typedef struct _MetaOutputInfo MetaOutputInfo;
 typedef struct _MetaTileInfo MetaTileInfo;
 
+#define META_MONITOR_MANAGER_MIN_SCREEN_WIDTH 640
+#define META_MONITOR_MANAGER_MIN_SCREEN_HEIGHT 480
+
 typedef enum _MetaMonitorManagerCapability
 {
   META_MONITOR_MANAGER_CAPABILITY_NONE = 0,
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index 1105dc5..6507e51 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -1425,8 +1425,8 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager      *manager
 
   if (!config)
     {
-      manager->screen_width = 0;
-      manager->screen_height = 0;
+      manager->screen_width = META_MONITOR_MANAGER_MIN_SCREEN_WIDTH;
+      manager->screen_height = META_MONITOR_MANAGER_MIN_SCREEN_HEIGHT;
       meta_monitor_manager_rebuild (manager, NULL);
       return TRUE;
     }
diff --git a/src/tests/meta-monitor-manager-test.c b/src/tests/meta-monitor-manager-test.c
index c407ed0..4b0634e 100644
--- a/src/tests/meta-monitor-manager-test.c
+++ b/src/tests/meta-monitor-manager-test.c
@@ -276,9 +276,8 @@ meta_monitor_manager_test_apply_monitors_config (MetaMonitorManager      *manage
 
   if (!config)
     {
-      /* The screen is made 1x1, as clutter stage used cannot be empty. */
-      manager->screen_width = 1;
-      manager->screen_height = 1;
+      manager->screen_width = META_MONITOR_MANAGER_MIN_SCREEN_WIDTH;
+      manager->screen_height = META_MONITOR_MANAGER_MIN_SCREEN_HEIGHT;
 
       if (meta_is_stage_views_enabled ())
         {
diff --git a/src/tests/monitor-unit-tests.c b/src/tests/monitor-unit-tests.c
index 53455c1..e2dcdc5 100644
--- a/src/tests/monitor-unit-tests.c
+++ b/src/tests/monitor-unit-tests.c
@@ -2563,9 +2563,8 @@ meta_test_monitor_no_outputs (void)
       .n_outputs = 0,
       .n_crtcs = 0,
       .n_tiled_monitors = 0,
-      /* The screen is made 1x1, as clutter stage used cannot be empty. */
-      .screen_width = 1,
-      .screen_height = 1
+      .screen_width = META_MONITOR_MANAGER_MIN_SCREEN_WIDTH,
+      .screen_height = META_MONITOR_MANAGER_MIN_SCREEN_HEIGHT
     }
   };
   MetaMonitorTestSetup *test_setup;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]