add --debug-xinerama
authorDana Jansens <danakj@orodu.net>
Mon, 14 May 2007 00:28:16 +0000 (00:28 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 14 May 2007 00:28:16 +0000 (00:28 +0000)
doc/openbox.1.in
doc/openbox.1.sgml
openbox/extensions.c
openbox/openbox.c
openbox/openbox.h

index a715afe..99196d4 100644 (file)
@@ -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 
index 2a61952..4ed2139 100644 (file)
@@ -44,6 +44,7 @@ manpage.1: manpage.sgml
       <arg><option>--sync</option></arg>
       <arg><option>--debug</option></arg>
       <arg><option>--debug-focus</option></arg>
+      <arg><option>--debug-xinerama</option></arg>
     </cmdsynopsis>
   </refsynopsisdiv>
   <refsect1>
@@ -147,6 +148,14 @@ manpage.1: manpage.sgml
           <para>Display debugging output for focus handling.</para>
         </listitem>
       </varlistentry>
+      <varlistentry>
+        <term><option>--debug-xinerama</option></term>
+        <listitem>
+          <para>Split the display into two fake xinerama regions, if
+           xinerama is not already enabled. This is for debugging
+           xinerama support.</para>
+        </listitem>
+      </varlistentry>
     </variablelist>
   </refsect1>
   <refsect1>
index d57b835..b7d8e73 100644 (file)
@@ -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,
index 0f2ba92..1b8aef4 100644 (file)
@@ -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 ..
index b5d722e..673826a 100644 (file)
@@ -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();