virtual-monitor: Never reuse mode IDs
We'll change mode's on-demand so using IDs identical to the virtual monitor ID would mean IDs didn't change when changing mode, and that is rather unintuitive. IDs don't mean much anyhow, just make them grow within the realm of a 63 bit unsigned integer, as the 64th bit means its a virtual mode ID. Making sure the ID is in the virtual mode namespace is handled by meta_crtc_mode_virtual_new(). Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2270>
This commit is contained in:
parent
ee8de0dc83
commit
a97b6560d7
@ -33,6 +33,8 @@ struct _MetaVirtualMonitorNative
|
|||||||
uint64_t id;
|
uint64_t id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static uint64_t mode_id = 1;
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaVirtualMonitorNative, meta_virtual_monitor_native,
|
G_DEFINE_TYPE (MetaVirtualMonitorNative, meta_virtual_monitor_native,
|
||||||
META_TYPE_VIRTUAL_MONITOR)
|
META_TYPE_VIRTUAL_MONITOR)
|
||||||
|
|
||||||
@ -52,7 +54,7 @@ meta_virtual_monitor_native_new (uint64_t id,
|
|||||||
MetaOutputVirtual *output_virtual;
|
MetaOutputVirtual *output_virtual;
|
||||||
|
|
||||||
crtc_virtual = meta_crtc_virtual_new (id);
|
crtc_virtual = meta_crtc_virtual_new (id);
|
||||||
crtc_mode_virtual = meta_crtc_mode_virtual_new (id, &info->mode_info);
|
crtc_mode_virtual = meta_crtc_mode_virtual_new (mode_id++, &info->mode_info);
|
||||||
output_virtual = meta_output_virtual_new (id, info,
|
output_virtual = meta_output_virtual_new (id, info,
|
||||||
crtc_virtual,
|
crtc_virtual,
|
||||||
crtc_mode_virtual);
|
crtc_mode_virtual);
|
||||||
|
Loading…
Reference in New Issue
Block a user