]> git.decadent.org.uk Git - ion3.git/blobdiff - ioncore/conf.c
Imported Upstream version 20090110
[ion3.git] / ioncore / conf.c
index 62c91f117679ace71fd879314ecc7816058a7f36..35844c4e1600f7fffb93844a13255b9dcd40dd81 100644 (file)
@@ -1,12 +1,9 @@
 /*
  * ion/ioncore/conf.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2007
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
- * Ion is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
+ * See the included file LICENSE for details.
  */
 
 #include <stdlib.h>
@@ -61,7 +58,8 @@ static ExtlFn get_layout_fn;
  *                        for hidden workspaces with activity? \\
  *  \var{frame_default_index} & (string) Specifies where to add new regions
  *                        on the mutually exclusive list of a frame. One of
- *                        ''last'', ''next'' (for after current), ''next-act''
+ *                        \codestr{last}, \codestr{next}, (for after current),
+ *                        or \codestr{next-act}
  *                        (for after current and anything with activity right
  *                        after it). \\
  *  \var{dblclick_delay} & (integer) Delay between clicks of a double click.\\
@@ -72,10 +70,16 @@ static ExtlFn get_layout_fn;
  *  \var{kbresize_t_min} & (integer) See below. \\
  *  \var{kbresize_step} & (floating point) See below. \\
  *  \var{kbresize_maxacc} & (floating point) See below. \\
+ *  \var{edge_resistance} & (integer) Resize edge resistance in pixels. \\
  *  \var{framed_transients} & (boolean) Put transients in nested frames. \\
  *  \var{float_placement_method} & (string) How to place floating frames.
- *                          One of ''udlr'' (up-down, then left-right), 
- *                          ''lrud'' (left-right, then up-down) or ''random''. \\
+ *                          One of \codestr{udlr} (up-down, then left-right), 
+ *                          \codestr{lrud} (left-right, then up-down), or 
+ *                          \codestr{random}. \\
+ *  \var{mousefocus} & (string) Mouse focus mode: 
+ *                     \codestr{disabled} or \codestr{sloppy}. \\
+ *  \var{unsqueeze} & (boolean) Auto-unsqueeze transients/menus/queries/etc. \\
+ *  \var{autoraise} & (boolean) Autoraise regions in groups on goto. \\
  * \end{tabularx}
  * 
  * When a keyboard resize function is called, and at most \var{kbresize_t_max} 
@@ -99,6 +103,8 @@ void ioncore_set(ExtlTab tab)
     extl_table_gets_b(tab, "switchto", &(ioncore_g.switchto_new));
     extl_table_gets_b(tab, "screen_notify", &(ioncore_g.screen_notify));
     extl_table_gets_b(tab, "framed_transients", &(ioncore_g.framed_transients));
+    extl_table_gets_b(tab, "unsqueeze", &(ioncore_g.unsqueeze_enabled));
+    extl_table_gets_b(tab, "autoraise", &(ioncore_g.autoraise));
     
     if(extl_table_gets_s(tab, "frame_default_index", &tmp)){
         ioncore_g.frame_default_index=stringintmap_value(frame_idxs, 
@@ -106,6 +112,14 @@ void ioncore_set(ExtlTab tab)
                                                          ioncore_g.frame_default_index);
         free(tmp);
     }
+
+    if(extl_table_gets_s(tab, "mousefocus", &tmp)){
+        if(strcmp(tmp, "disabled")==0)
+            ioncore_g.no_mousefocus=TRUE;
+        else if(strcmp(tmp, "sloppy")==0)
+            ioncore_g.no_mousefocus=FALSE;
+        free(tmp);
+    }
     
     if(extl_table_gets_i(tab, "dblclick_delay", &dd))
         ioncore_g.dblclick_delay=maxof(0, dd);
@@ -146,12 +160,20 @@ ExtlTab ioncore_get()
     extl_table_sets_b(tab, "switchto", ioncore_g.switchto_new);
     extl_table_sets_i(tab, "dblclick_delay", ioncore_g.dblclick_delay);
     extl_table_sets_b(tab, "screen_notify", ioncore_g.screen_notify);
+    extl_table_sets_b(tab, "framed_transients", ioncore_g.framed_transients);
+    extl_table_sets_b(tab, "unsqueeze", ioncore_g.unsqueeze_enabled);
+    extl_table_sets_b(tab, "autoraise", ioncore_g.autoraise);
+    
 
     extl_table_sets_s(tab, "frame_default_index", 
                       stringintmap_key(frame_idxs, 
                                        ioncore_g.frame_default_index,
                                        NULL));
     
+    extl_table_sets_s(tab, "mousefocus", (ioncore_g.no_mousefocus
+                                          ? "disabled" 
+                                          : "sloppy"));
+
     ioncore_get_moveres_accel(tab);
     
     ioncore_groupws_get(tab);
@@ -189,7 +211,8 @@ ExtlTab ioncore_get_layout(const char *layout)
     
 
 /*EXTL_DOC
- * Get important directories (userdir, sessiondir, searchpath).
+ * Get important directories (the fields \var{userdir}, 
+ * \var{sessiondir}, \var{searchpath} in the returned table).
  */
 EXTL_SAFE
 EXTL_EXPORT
@@ -204,7 +227,8 @@ ExtlTab ioncore_get_paths(ExtlTab tab)
 
 
 /*EXTL_DOC
- * Set important directories (sessiondir, searchpath).
+ * Set important directories (the fields \var{sessiondir}, \var{searchpath}
+ * of \var{tab}).
  */
 EXTL_EXPORT
 bool ioncore_set_paths(ExtlTab tab)