all repos — openbox @ 83a0303dd75ef0487fdd53e810914f21fdd3e459

openbox fork - make it a bit more like ryudo

add option titleNumber in theme section to disable the little [x] that you get after identical window titles
Mikael Magnusson mikachu@comhem.se
commit

83a0303dd75ef0487fdd53e810914f21fdd3e459

parent

2f4cd02a69b5fb71f011b0cc0a3a054dda1a175f

5 files changed, 40 insertions(+), 28 deletions(-)

jump to
M data/rc.xml.indata/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.xsddata/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.copenbox/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.copenbox/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.hopenbox/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;