<theme>
<name>TheBear</name>
- <titlelayout>NLIMC</titlelayout>
+ <titleLayout>NLIMC</titlelayout>
+ <titleNumber>yes</titlenumber>
<!--
avaible characters are NDSLIMC, each can occur at most once.
N: client menu
<xs:complexType name="theme">
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string"/>
- <xs:element minOccurs="0" name="titlelayout" type="xs:string"/>
+ <xs:element minOccurs="0" name="titleLayout" type="xs:string"/>
+ <xs:element minOccurs="0" name="titleNumber" type="ob:bool"/>
<xs:element minOccurs="0" name="keepBorder" type="ob:bool"/>
<xs:element minOccurs="0" name="hideDisabled" type="ob:bool"/>
</xs:sequence>
if (old_title && 0 != strncmp(old_title, data, strlen(data)))
self->title_count = 1;
- /* look for duplicates and append a number */
- nums = 0;
- for (it = client_list; it; it = g_list_next(it))
- if (it->data != self) {
- ObClient *c = it->data;
- if (0 == strncmp(c->title, data, strlen(data)))
- nums |= 1 << c->title_count;
- }
- /* find first free number */
- for (i = 1; i <= 32; ++i)
- if (!(nums & (1 << i))) {
- if (self->title_count == 1 || i == 1)
- self->title_count = i;
- break;
+ if (config_title_number) {
+ /* look for duplicates and append a number */
+ nums = 0;
+ for (it = client_list; it; it = g_list_next(it))
+ if (it->data != self) {
+ ObClient *c = it->data;
+ if (0 == strncmp(c->title, data, strlen(data)))
+ nums |= 1 << c->title_count;
+ }
+ /* find first free number */
+ for (i = 1; i <= 32; ++i)
+ if (!(nums & (1 << i))) {
+ if (self->title_count == 1 || i == 1)
+ self->title_count = i;
+ break;
+ }
+ /* dont display the number for the first window */
+ if (self->title_count > 1) {
+ gchar *ndata;
+ ndata = g_strdup_printf("%s - [%u]", data, self->title_count);
+ g_free(data);
+ data = ndata;
}
- /* dont display the number for the first window */
- if (self->title_count > 1) {
- gchar *ndata;
- ndata = g_strdup_printf("%s - [%u]", data, self->title_count);
- g_free(data);
- data = ndata;
}
no_number:
read_title = FALSE;
}
- /* append the title count, dont display the number for the first window */
+ /* append the title count, dont display the number for the first window.
+ * We don't need to check for config_title_number here since title_count
+ * is not set above 1 then. */
if (read_title && self->title_count > 1) {
gchar *vdata, *ndata;
ndata = g_strdup_printf(" - [%u]", self->title_count);
gboolean config_theme_keepborder;
gboolean config_theme_hidedisabled;
-gchar *config_title_layout;
+gchar *config_title_layout;
+gboolean config_title_number;
gint config_desktops_num;
GSList *config_desktops_names;
g_free(config_title_layout);
config_title_layout = parse_string(doc, n);
}
+ if ((n = parse_find_node("titleNumber", node)))
+ config_theme_hidedisabled = parse_bool(doc, n);
if ((n = parse_find_node("keepBorder", node)))
config_theme_keepborder = parse_bool(doc, n);
if ((n = parse_find_node("hideDisabled", node)))
config_theme = NULL;
config_title_layout = g_strdup("NLIMC");
+ config_title_number = TRUE;
config_theme_keepborder = TRUE;
config_theme_hidedisabled = FALSE;
/*! The modifiers to be used with the button to move dock apps */
extern guint config_dock_app_move_modifiers;
-/* The name of the theme */
+/*! The name of the theme */
extern gchar *config_theme;
-/* Show the onepixel border after toggleDecor */
+/*! Show the one-pixel border after toggleDecor */
extern gboolean config_theme_keepborder;
-/* Hide window frame buttons that the window doesn't allow */
+/*! Hide window frame buttons that the window doesn't allow */
extern gboolean config_theme_hidedisabled;
-/* Titlebar button layout */
+/*! Titlebar button layout */
extern gchar *config_title_layout;
+/*! Append a unique number to windows with same titles */
+extern gboolean config_title_number;
/*! The number of desktops */
extern gint config_desktops_num;