tests/utils: Add helper for waiting for monitor reconfigurations
This is useful after having removed a virtual monitor, which will soon reconfigure in an idle callback. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3307>
This commit is contained in:
parent
5dc0824ea9
commit
822ea67358
@ -780,6 +780,31 @@ meta_set_custom_monitor_config_full (MetaBackend *backend,
|
|||||||
g_warning ("Failed to set custom config: %s", error->message);
|
g_warning ("Failed to set custom config: %s", error->message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
set_true_cb (gpointer user_data)
|
||||||
|
{
|
||||||
|
gboolean *value = user_data;
|
||||||
|
|
||||||
|
*value = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_wait_for_monitors_changed (MetaContext *context)
|
||||||
|
{
|
||||||
|
MetaBackend *backend = meta_context_get_backend (context);
|
||||||
|
MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend);
|
||||||
|
gulong monitors_changed_handler_id;
|
||||||
|
gboolean monitors_changed = FALSE;
|
||||||
|
|
||||||
|
monitors_changed_handler_id =
|
||||||
|
g_signal_connect_swapped (monitor_manager, "monitors-changed",
|
||||||
|
G_CALLBACK (set_true_cb), &monitors_changed);
|
||||||
|
while (!monitors_changed)
|
||||||
|
g_main_context_iteration (NULL, TRUE);
|
||||||
|
|
||||||
|
g_signal_handler_disconnect (monitor_manager, monitors_changed_handler_id);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_view_presented (ClutterStage *stage,
|
on_view_presented (ClutterStage *stage,
|
||||||
ClutterStageView *view,
|
ClutterStageView *view,
|
||||||
|
@ -114,6 +114,9 @@ void meta_set_custom_monitor_config_full (MetaBackend *backend,
|
|||||||
const char *filename,
|
const char *filename,
|
||||||
MetaMonitorsConfigFlag configs_flags);
|
MetaMonitorsConfigFlag configs_flags);
|
||||||
|
|
||||||
|
META_EXPORT
|
||||||
|
void meta_wait_for_monitors_changed (MetaContext *context);
|
||||||
|
|
||||||
META_EXPORT
|
META_EXPORT
|
||||||
void meta_wait_for_paint (MetaContext *context);
|
void meta_wait_for_paint (MetaContext *context);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user