From 5a3154df0878e37d0af8fdd9077133283879b38f Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 14 May 2007 00:28:16 +0000 Subject: [PATCH] add --debug-xinerama --- doc/openbox.1.in | 8 ++++++-- doc/openbox.1.sgml | 9 +++++++++ openbox/extensions.c | 10 +++++++++- openbox/openbox.c | 5 +++++ openbox/openbox.h | 1 + 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/doc/openbox.1.in b/doc/openbox.1.in index a715afe1..99196d44 100644 --- a/doc/openbox.1.in +++ b/doc/openbox.1.in @@ -4,7 +4,7 @@ openbox \(em Next generation, highly configurable window manager .SH "SYNOPSIS" .PP -\fBopenbox\fR [\fB\-\-help\fP] [\fB\-\-version\fP] [\fB\-\-replace\fP] [\fB\-\-reconfigure\fP] [\fB\-\-sm-disable\fP] [\fB\-\-sync\fP] [\fB\-\-debug\fP] [\fB\-\-debug-focus\fP] +\fBopenbox\fR [\fB\-\-help\fP] [\fB\-\-version\fP] [\fB\-\-replace\fP] [\fB\-\-reconfigure\fP] [\fB\-\-sm-disable\fP] [\fB\-\-sync\fP] [\fB\-\-debug\fP] [\fB\-\-debug-focus\fP] [\fB\-\-debug-xinerama\fP] .SH "DESCRIPTION" .PP Openbox is a next generation, highly @@ -72,6 +72,10 @@ Run in synchronous mode (for debugging). Display debugging output. .IP "\fB\-\-debug-focus\fP" 10 Display debugging output for focus handling. +.IP "\fB\-\-debug-xinerama\fP" 10 +Split the display into two fake xinerama regions, if +xinerama is not already enabled. This is for debugging +xinerama support. .SH "SEE ALSO" .PP obconf (1), openbox-gnome-session (1), openbox-kde-session (1). @@ -82,4 +86,4 @@ The program's full documentation is available on the website: .PP Please report bugs to: \fBhttp://bugzilla.icculus.org/ \fP -.\" created by instant / docbook-to-man, Sun 13 May 2007, 19:06 +.\" created by instant / docbook-to-man, Sun 13 May 2007, 20:29 diff --git a/doc/openbox.1.sgml b/doc/openbox.1.sgml index 2a619526..4ed2139e 100644 --- a/doc/openbox.1.sgml +++ b/doc/openbox.1.sgml @@ -44,6 +44,7 @@ manpage.1: manpage.sgml + @@ -147,6 +148,14 @@ manpage.1: manpage.sgml Display debugging output for focus handling. + + + + Split the display into two fake xinerama regions, if + xinerama is not already enabled. This is for debugging + xinerama support. + + diff --git a/openbox/extensions.c b/openbox/extensions.c index d57b8357..b7d8e73a 100644 --- a/openbox/extensions.c +++ b/openbox/extensions.c @@ -99,7 +99,15 @@ void extensions_xinerama_screens(Rect **xin_areas, guint *nxin) XFree(info); } else #endif - { + if (ob_debug_xinerama) { + gint w = WidthOfScreen(ScreenOfDisplay(ob_display, ob_screen)); + gint h = HeightOfScreen(ScreenOfDisplay(ob_display, ob_screen)); + *nxin = 2; + *xin_areas = g_new(Rect, *nxin + 1); + RECT_SET((*xin_areas)[0], 0, 0, w/2, h); + RECT_SET((*xin_areas)[1], w/2, 0, w-(w/2), h); + } + else { *nxin = 1; *xin_areas = g_new(Rect, *nxin + 1); RECT_SET((*xin_areas)[0], 0, 0, diff --git a/openbox/openbox.c b/openbox/openbox.c index 0f2ba923..1b8aef43 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -90,6 +90,7 @@ gboolean ob_sm_use = TRUE; gchar *ob_sm_id = NULL; gchar *ob_sm_save_file = NULL; gchar *ob_config_type = NULL; +gboolean ob_debug_xinerama = FALSE; static ObState state; static gboolean xsync = FALSE; @@ -474,6 +475,7 @@ static void print_help() g_print(_(" --sync Run in synchronous mode\n")); g_print(_(" --debug Display debugging output\n")); g_print(_(" --debug-focus Display debugging output for focus handling\n")); + g_print(_(" --debug-xinerama Split the display into fake xinerama screens\n")); g_print(_("\nPlease report bugs at %s\n"), PACKAGE_BUGREPORT); } @@ -532,6 +534,9 @@ static void parse_args(gint *argc, gchar **argv) ob_debug_enable(OB_DEBUG_APP_BUGS, TRUE); ob_debug_enable(OB_DEBUG_FOCUS, TRUE); } + else if (!strcmp(argv[i], "--debug-xinerama")) { + ob_debug_xinerama = TRUE; + } else if (!strcmp(argv[i], "--reconfigure")) { remote_control = 1; /* don't make this do anything if it's not in --help .. diff --git a/openbox/openbox.h b/openbox/openbox.h index b5d722e9..673826a4 100644 --- a/openbox/openbox.h +++ b/openbox/openbox.h @@ -47,6 +47,7 @@ extern gchar *ob_sm_id; extern gchar *ob_sm_save_file; extern gboolean ob_replace_wm; extern gchar *ob_config_type; +extern gboolean ob_debug_xinerama; /* The state of execution of the window manager */ ObState ob_state();