Make monitor boundaries visible in fake Xinerama mode.
Fri Nov 21 01:57:21 2003 Matthias Clasen <maclas@gmx.de> * gdk/x11/gdkscreen-x11.c (init_xinerama_support): Make monitor boundaries visible in fake Xinerama mode.
This commit is contained in:
committed by
Matthias Clasen
parent
d263d0bcc0
commit
cc84041751
@ -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
|
||||
|
||||
Reference in New Issue
Block a user