summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/config.c4
-rw-r--r--openbox/config.h2
-rw-r--r--openbox/screen.c6
3 files changed, 9 insertions, 3 deletions
diff --git a/openbox/config.c b/openbox/config.c
index 867dfb51..56e625d4 100644
--- a/openbox/config.c
+++ b/openbox/config.c
@@ -55,7 +55,7 @@ RrFont *config_font_menuitem;
RrFont *config_font_menutitle;
RrFont *config_font_osd;
-gint config_desktops_num;
+guint config_desktops_num;
GSList *config_desktops_names;
guint config_screen_firstdesk;
guint config_desktop_popup_time;
@@ -605,7 +605,7 @@ static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
if ((n = parse_find_node("number", node))) {
gint d = parse_int(doc, n);
if (d > 0)
- config_desktops_num = d;
+ config_desktops_num = (unsigned) d;
}
if ((n = parse_find_node("firstdesk", node))) {
gint d = parse_int(doc, n);
diff --git a/openbox/config.h b/openbox/config.h
index 240b04f1..50e7dfe3 100644
--- a/openbox/config.h
+++ b/openbox/config.h
@@ -143,7 +143,7 @@ extern RrFont *config_font_menuitem;
extern RrFont *config_font_osd;
/*! The number of desktops */
-extern gint config_desktops_num;
+extern guint config_desktops_num;
/*! Desktop to start on, put 5 to start in the center of a 3x3 grid */
extern guint config_screen_firstdesk;
/*! Names for the desktops */
diff --git a/openbox/screen.c b/openbox/screen.c
index e008ffe5..932b157e 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -402,7 +402,13 @@ void screen_startup(gboolean reconfig)
screen_num_desktops = 0;
if (PROP_GET32(RootWindow(ob_display, ob_screen),
net_number_of_desktops, cardinal, &d))
+ {
+ if (d != config_desktops_num) {
+ g_warning(_("Openbox is configured for %d desktops, but the current session has %d. Overriding the Openbox configuration."),
+ config_desktops_num, d);
+ }
screen_set_num_desktops(d);
+ }
/* restore from session if possible */
else if (session_num_desktops)
screen_set_num_desktops(session_num_desktops);