From cc84041751bdf43aa8d0cbe9f849abb498ca5ae6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 21 Nov 2003 01:02:45 +0000 Subject: [PATCH] Make monitor boundaries visible in fake Xinerama mode. Fri Nov 21 01:57:21 2003 Matthias Clasen * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor boundaries visible in fake Xinerama mode. --- ChangeLog | 5 ++++ ChangeLog.pre-2-10 | 5 ++++ ChangeLog.pre-2-4 | 5 ++++ ChangeLog.pre-2-6 | 5 ++++ ChangeLog.pre-2-8 | 5 ++++ gdk/x11/gdkscreen-x11.c | 57 +++++++++++++++++++++++++++++++---------- 6 files changed, 69 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index f1541312fa..934427cb64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Nov 21 01:57:21 2003 Matthias Clasen + + * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor + boundaries visible in fake Xinerama mode. + Thu Nov 20 15:41:56 2003 Manish Singh * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): cast to GTK_WIDGET() diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f1541312fa..934427cb64 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Fri Nov 21 01:57:21 2003 Matthias Clasen + + * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor + boundaries visible in fake Xinerama mode. + Thu Nov 20 15:41:56 2003 Manish Singh * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): cast to GTK_WIDGET() diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f1541312fa..934427cb64 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Fri Nov 21 01:57:21 2003 Matthias Clasen + + * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor + boundaries visible in fake Xinerama mode. + Thu Nov 20 15:41:56 2003 Manish Singh * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): cast to GTK_WIDGET() diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f1541312fa..934427cb64 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Fri Nov 21 01:57:21 2003 Matthias Clasen + + * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor + boundaries visible in fake Xinerama mode. + Thu Nov 20 15:41:56 2003 Manish Singh * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): cast to GTK_WIDGET() diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f1541312fa..934427cb64 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Fri Nov 21 01:57:21 2003 Matthias Clasen + + * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor + boundaries visible in fake Xinerama mode. + Thu Nov 20 15:41:56 2003 Manish Singh * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): cast to GTK_WIDGET() diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index f43f299765..7bd7fcc951 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -540,25 +540,56 @@ init_xinerama_support (GdkScreen * screen) #ifdef G_ENABLE_DEBUG if (_gdk_debug_flags & GDK_DEBUG_XINERAMA) { - /* Fake Xinerama mode by splitting the screen into 4 monitors */ + /* Fake Xinerama mode by splitting the screen into 4 monitors. + * Also draw a little cross to make the monitor boundaries visible. + */ + XSetWindowAttributes atts; + Window win; + gint w, h; + + w = WidthOfScreen (screen_x11->xscreen); + h = HeightOfScreen (screen_x11->xscreen); screen_x11->num_monitors = 4; screen_x11->monitors = g_new0 (GdkRectangle, 4); screen_x11->monitors[0].x = 0; screen_x11->monitors[0].y = 0; - screen_x11->monitors[0].width = WidthOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[0].height = HeightOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[1].x = WidthOfScreen (screen_x11->xscreen) / 2; + screen_x11->monitors[0].width = w / 2; + screen_x11->monitors[0].height = h / 2; + screen_x11->monitors[1].x = w / 2; screen_x11->monitors[1].y = 0; - screen_x11->monitors[1].width = WidthOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[1].height = HeightOfScreen (screen_x11->xscreen) / 2; + screen_x11->monitors[1].width = w / 2; + screen_x11->monitors[1].height = h / 2; screen_x11->monitors[2].x = 0; - screen_x11->monitors[2].y = HeightOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[2].width = WidthOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[2].height = HeightOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[3].x = WidthOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[3].y = HeightOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[3].width = WidthOfScreen (screen_x11->xscreen) / 2; - screen_x11->monitors[3].height = HeightOfScreen (screen_x11->xscreen) / 2; + screen_x11->monitors[2].y = h / 2; + screen_x11->monitors[2].width = w / 2; + screen_x11->monitors[2].height = h / 2; + screen_x11->monitors[3].x = w / 2; + screen_x11->monitors[3].y = h / 2; + screen_x11->monitors[3].width = w / 2; + screen_x11->monitors[3].height = h / 2; + atts.override_redirect = 1; + atts.background_pixel = WhitePixel(GDK_SCREEN_XDISPLAY (screen), + screen_x11->screen_num); + win = XCreateWindow(GDK_SCREEN_XDISPLAY (screen), + screen_x11->xroot_window, 0, h / 2, w, 1, 0, + DefaultDepth(GDK_SCREEN_XDISPLAY (screen), + screen_x11->screen_num), + InputOutput, + DefaultVisual(GDK_SCREEN_XDISPLAY (screen), + screen_x11->screen_num), + CWOverrideRedirect|CWBackPixel, + &atts); + XMapRaised(GDK_SCREEN_XDISPLAY (screen), win); + win = XCreateWindow(GDK_SCREEN_XDISPLAY (screen), + screen_x11->xroot_window, w/2 , 0, 1, h, 0, + DefaultDepth(GDK_SCREEN_XDISPLAY (screen), + screen_x11->screen_num), + InputOutput, + DefaultVisual(GDK_SCREEN_XDISPLAY (screen), + screen_x11->screen_num), + CWOverrideRedirect|CWBackPixel, + &atts); + XMapRaised(GDK_SCREEN_XDISPLAY (screen), win); } else #endif