summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2004-02-19 14:33:59 +0000
committerMikael Magnusson <mikachu@comhem.se>2004-02-19 14:33:59 +0000
commit77af27b8b23024231d3c013c45c7a9ce77aeda53 (patch)
tree20823b0dc06448fbdc8cb49e212f071417d1f035 /openbox
parent3c28739a0e816114826303f4b36501a7dd077574 (diff)
add setting <desktops><firstdesk>num<//> to set which desktop to start on, also fix a guint that should be gint. (used to let you say you want negative number of desktops)
Diffstat (limited to 'openbox')
-rw-r--r--openbox/config.c9
-rw-r--r--openbox/config.h2
-rw-r--r--openbox/screen.c2
3 files changed, 11 insertions, 2 deletions
diff --git a/openbox/config.c b/openbox/config.c
index a3c0034a..d362324c 100644
--- a/openbox/config.c
+++ b/openbox/config.c
@@ -37,6 +37,7 @@ gchar *config_title_layout;
gint config_desktops_num;
GSList *config_desktops_names;
+gint config_screen_firstdesk;
gboolean config_redraw_resize;
@@ -247,10 +248,15 @@ static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
node = node->children;
if ((n = parse_find_node("number", node))) {
- guint d = parse_int(doc, n);
+ gint d = parse_int(doc, n);
if (d > 0)
config_desktops_num = d;
}
+ if ((n = parse_find_node("firstdesk", node))) {
+ gint d = parse_int(doc, n);
+ if (d > 0)
+ config_screen_firstdesk = d;
+ }
if ((n = parse_find_node("names", node))) {
GSList *it;
xmlNodePtr nname;
@@ -502,6 +508,7 @@ void config_startup(ObParseInst *i)
parse_register(i, "theme", parse_theme, NULL);
config_desktops_num = 4;
+ config_screen_firstdesk = 1;
config_desktops_names = NULL;
parse_register(i, "desktops", parse_desktops, NULL);
diff --git a/openbox/config.h b/openbox/config.h
index 88127626..4d3f3e5e 100644
--- a/openbox/config.h
+++ b/openbox/config.h
@@ -74,6 +74,8 @@ extern gchar *config_title_layout;
/*! The number of desktops */
extern gint config_desktops_num;
+/*! Desktop to start on, put 5 to start in the center of a 3x3 grid */
+extern gint config_screen_firstdesk;
/*! Names for the desktops */
extern GSList *config_desktops_names;
diff --git a/openbox/screen.c b/openbox/screen.c
index 810d66b1..ef791bad 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -295,7 +295,7 @@ void screen_startup(gboolean reconfig)
screen_num_desktops = 0;
screen_set_num_desktops(config_desktops_num);
if (!reconfig) {
- screen_set_desktop(0);
+ screen_set_desktop(MIN(config_screen_firstdesk, screen_num_desktops) - 1);
/* don't start in showing-desktop mode */
screen_showing_desktop = FALSE;