add option titleNumber in theme section to disable the little [x] that you get after identical window titles
Mikael Magnusson mikachu@comhem.se
5 files changed,
40 insertions(+),
28 deletions(-)
M
data/rc.xml.in
→
data/rc.xml.in
@@ -29,7 +29,8 @@ </placement>
<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
M
data/rc.xsd
→
data/rc.xsd
@@ -103,7 +103,8 @@ </xs:complexType>
<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>
M
openbox/client.c
→
openbox/client.c
@@ -1550,27 +1550,29 @@ /* did the title change? then reset the title_count */
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:@@ -1596,7 +1598,9 @@ data = g_strdup(self->title);
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);
M
openbox/config.c
→
openbox/config.c
@@ -39,7 +39,8 @@ gchar *config_theme;
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;@@ -430,6 +431,8 @@ if ((n = parse_find_node("titleLayout", node))) {
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)))@@ -739,6 +742,7 @@
config_theme = NULL; config_title_layout = g_strdup("NLIMC"); + config_title_number = TRUE; config_theme_keepborder = TRUE; config_theme_hidedisabled = FALSE;
M
openbox/config.h
→
openbox/config.h
@@ -81,15 +81,17 @@ extern guint config_dock_app_move_button;
/*! 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;