summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/virt-viewer-session.c')
-rw-r--r--src/virt-viewer-session.c51
1 files changed, 1 insertions, 50 deletions
diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c
index d9c84a6..d050ba1 100644
--- a/src/virt-viewer-session.c
+++ b/src/virt-viewer-session.c
@@ -339,55 +339,6 @@ virt_viewer_session_init(VirtViewerSession *session)
session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
}
-/* simple sorting of monitors. Primary sort left-to-right, secondary sort from
- * top-to-bottom, finally by monitor id */
-static int
-displays_cmp(const void *p1, const void *p2, gpointer user_data)
-{
- guint diff;
- GdkRectangle *displays = user_data;
- guint i = *(guint*)p1;
- guint j = *(guint*)p2;
- GdkRectangle *m1 = &displays[i];
- GdkRectangle *m2 = &displays[j];
- diff = m1->x - m2->x;
- if (diff == 0)
- diff = m1->y - m2->y;
- if (diff == 0)
- diff = i - j;
-
- return diff;
-}
-
-static void
-virt_viewer_session_align_monitors_linear(GdkRectangle *displays, guint ndisplays)
-{
- gint i, x = 0;
- guint *sorted_displays;
-
- g_return_if_fail(displays != NULL);
-
- if (ndisplays == 0)
- return;
-
- sorted_displays = g_new0(guint, ndisplays);
- for (i = 0; i < ndisplays; i++)
- sorted_displays[i] = i;
- g_qsort_with_data(sorted_displays, ndisplays, sizeof(guint), displays_cmp, displays);
-
- /* adjust monitor positions so that there's no gaps or overlap between
- * monitors */
- for (i = 0; i < ndisplays; i++) {
- guint nth = sorted_displays[i];
- g_assert(nth < ndisplays);
- GdkRectangle *rect = &displays[nth];
- rect->x = x;
- rect->y = 0;
- x += rect->width;
- }
- g_free(sorted_displays);
-}
-
static void
virt_viewer_session_on_monitor_geometry_changed(VirtViewerSession* self,
VirtViewerDisplay* display G_GNUC_UNUSED)
@@ -428,7 +379,7 @@ virt_viewer_session_on_monitor_geometry_changed(VirtViewerSession* self,
}
if (!all_fullscreen)
- virt_viewer_session_align_monitors_linear(monitors, nmonitors);
+ virt_viewer_align_monitors_linear(monitors, nmonitors);
klass->apply_monitor_geometry(self, monitors, nmonitors);
g_free(monitors);