[gnome-flashback] monitor-config-manager: respect layout mode when calculating CRTC layout
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] monitor-config-manager: respect layout mode when calculating CRTC layout
- Date: Thu, 12 Mar 2020 20:51:16 +0000 (UTC)
commit c837a2ba3dc2e7036b8be6950883f70a1dce99bf
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Thu Mar 12 20:42:00 2020 +0200
monitor-config-manager: respect layout mode when calculating CRTC layout
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/-/commit/531a195cf184b3d81e33
backends/gf-monitor-config-manager.c | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
---
diff --git a/backends/gf-monitor-config-manager.c b/backends/gf-monitor-config-manager.c
index 7edf448..c905771 100644
--- a/backends/gf-monitor-config-manager.c
+++ b/backends/gf-monitor-config-manager.c
@@ -37,6 +37,7 @@
typedef struct
{
GfMonitorManager *monitor_manager;
+ GfMonitorsConfig *config;
GfLogicalMonitorConfig *logical_monitor_config;
GfMonitorConfig *monitor_config;
GPtrArray *crtc_infos;
@@ -701,7 +702,19 @@ assign_monitor_crtc (GfMonitor *monitor,
x_offset = data->logical_monitor_config->layout.x;
y_offset = data->logical_monitor_config->layout.y;
- scale = data->logical_monitor_config->scale;
+
+ switch (data->config->layout_mode)
+ {
+ case GF_LOGICAL_MONITOR_LAYOUT_MODE_LOGICAL:
+ scale = data->logical_monitor_config->scale;
+ break;
+
+ case GF_LOGICAL_MONITOR_LAYOUT_MODE_PHYSICAL:
+ default:
+ scale = 1.0;
+ break;
+ }
+
crtc_mode = monitor_crtc_mode->crtc_mode;
if (gf_monitor_transform_is_rotated (crtc_transform))
@@ -764,6 +777,7 @@ assign_monitor_crtc (GfMonitor *monitor,
static gboolean
assign_monitor_crtcs (GfMonitorManager *manager,
+ GfMonitorsConfig *config,
GfLogicalMonitorConfig *logical_monitor_config,
GfMonitorConfig *monitor_config,
GPtrArray *crtc_infos,
@@ -801,6 +815,7 @@ assign_monitor_crtcs (GfMonitorManager *manager,
data = (MonitorAssignmentData) {
.monitor_manager = manager,
+ .config = config,
.logical_monitor_config = logical_monitor_config,
.monitor_config = monitor_config,
.crtc_infos = crtc_infos,
@@ -818,6 +833,7 @@ assign_monitor_crtcs (GfMonitorManager *manager,
static gboolean
assign_logical_monitor_crtcs (GfMonitorManager *manager,
+ GfMonitorsConfig *config,
GfLogicalMonitorConfig *logical_monitor_config,
GPtrArray *crtc_infos,
GPtrArray *output_infos,
@@ -831,6 +847,7 @@ assign_logical_monitor_crtcs (GfMonitorManager *manager,
GfMonitorConfig *monitor_config = l->data;
if (!assign_monitor_crtcs (manager,
+ config,
logical_monitor_config,
monitor_config,
crtc_infos, output_infos,
@@ -979,9 +996,13 @@ gf_monitor_config_manager_assign (GfMonitorManager *manager,
{
GfLogicalMonitorConfig *logical_monitor_config = l->data;
- if (!assign_logical_monitor_crtcs (manager, logical_monitor_config,
- crtc_infos, output_infos,
- reserved_crtcs, error))
+ if (!assign_logical_monitor_crtcs (manager,
+ config,
+ logical_monitor_config,
+ crtc_infos,
+ output_infos,
+ reserved_crtcs,
+ error))
{
g_ptr_array_free (crtc_infos, TRUE);
g_ptr_array_free (output_infos, TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]