[mutter/gnome-3-14] monitor-manager: Don't try to match the outputs on hotplug



commit 21d8c4b0325855e767ee597a668c27ff8573fb47
Author: Rui Matos <tiagomatos gmail com>
Date:   Thu Oct 16 11:13:47 2014 +0200

    monitor-manager: Don't try to match the outputs on hotplug
    
    meta_monitor_config_match_current() only matches the number of outputs
    and if the output connector, vendor, product and serial match.
    
    This means that we can't use it to bypass doing any
    work because it won't detect cases where we actually want to update
    ourselves like e.g. an output being turned off either by us or by
    another X client (e.g. xrandr).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=738630

 src/backends/meta-monitor-config.c             |   21 ---------------------
 src/backends/meta-monitor-config.h             |    3 ---
 src/backends/x11/meta-monitor-manager-xrandr.c |    2 +-
 3 files changed, 1 insertions(+), 25 deletions(-)
---
diff --git a/src/backends/meta-monitor-config.c b/src/backends/meta-monitor-config.c
index 8dc6b50..399e9f0 100644
--- a/src/backends/meta-monitor-config.c
+++ b/src/backends/meta-monitor-config.c
@@ -797,27 +797,6 @@ make_config_key (MetaConfiguration *key,
 }
 
 gboolean
-meta_monitor_config_match_current (MetaMonitorConfig  *self,
-                                   MetaMonitorManager *manager)
-{
-  MetaOutput *outputs;
-  unsigned n_outputs;
-  MetaConfiguration key;
-  gboolean ok;
-
-  if (self->current == NULL)
-    return FALSE;
-
-  outputs = meta_monitor_manager_get_outputs (manager, &n_outputs);
-
-  make_config_key (&key, outputs, n_outputs, -1);
-  ok = config_equal (&key, self->current);
-
-  config_clear (&key);
-  return ok;
-}
-
-gboolean
 meta_monitor_manager_has_hotplug_mode_update (MetaMonitorManager *manager)
 {
   MetaOutput *outputs;
diff --git a/src/backends/meta-monitor-config.h b/src/backends/meta-monitor-config.h
index 8401569..5599b6a 100644
--- a/src/backends/meta-monitor-config.h
+++ b/src/backends/meta-monitor-config.h
@@ -36,9 +36,6 @@ GType meta_monitor_config_get_type (void) G_GNUC_CONST;
 
 MetaMonitorConfig *meta_monitor_config_new (void);
 
-gboolean           meta_monitor_config_match_current (MetaMonitorConfig  *config,
-                                                      MetaMonitorManager *manager);
-
 gboolean           meta_monitor_config_apply_stored (MetaMonitorConfig  *config,
                                                      MetaMonitorManager *manager);
 
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c
index 9555007..21b9567 100644
--- a/src/backends/x11/meta-monitor-manager-xrandr.c
+++ b/src/backends/x11/meta-monitor-manager-xrandr.c
@@ -1097,7 +1097,7 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManagerXrandr *manager_xra
   /* If this is the X server telling us we set a new configuration,
    * we can simply short-cut to rebuilding our logical configuration.
    */
-  if (new_config || meta_monitor_config_match_current (manager->config, manager))
+  if (new_config)
     {
       meta_monitor_manager_xrandr_rebuild_derived (manager);
       goto out;


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