diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2005-07-14 13:44:33 +0000 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@comhem.se> | 2005-07-14 13:44:33 +0000 |
| commit | 1cfb65bc401ee8f44103a1a74404d191106a7535 (patch) | |
| tree | 8da8885e28dec7487a71d2d13798fec725e91236 /openbox | |
| parent | 6ec1881579c8b4499399ed25026f1e5376d0c04b (diff) | |
add a config option hideDisabled in the theme section that hides disabled buttons instead of showing them as disabled, based on patch in bug #2310
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/config.c | 4 | ||||
| -rw-r--r-- | openbox/config.h | 2 | ||||
| -rw-r--r-- | openbox/frame.c | 10 |
3 files changed, 16 insertions, 0 deletions
diff --git a/openbox/config.c b/openbox/config.c index 8c86b973..c43db935 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -35,6 +35,7 @@ ObPlacePolicy config_place_policy; gchar *config_theme; gboolean config_theme_keepborder; +gboolean config_theme_hidedisabled; gchar *config_title_layout; @@ -256,6 +257,8 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } if ((n = parse_find_node("keepBorder", node))) config_theme_keepborder = parse_bool(doc, n); + if ((n = parse_find_node("hideDisabled", node))) + config_theme_hidedisabled = parse_bool(doc, n); } static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, @@ -556,6 +559,7 @@ void config_startup(ObParseInst *i) config_title_layout = g_strdup("NLIMC"); config_theme_keepborder = TRUE; + config_theme_hidedisabled = FALSE; parse_register(i, "theme", parse_theme, NULL); diff --git a/openbox/config.h b/openbox/config.h index b04d06af..5be26ef4 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -84,6 +84,8 @@ extern gchar *config_theme; /* Show the onepixel border after toggleDecor */ extern gboolean config_theme_keepborder; +/* Hide window frame buttons that the window doesn't allow */ +extern gboolean config_theme_hidedisabled; /* Titlebar button layout */ extern gchar *config_title_layout; diff --git a/openbox/frame.c b/openbox/frame.c index fcad427b..f390887a 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -579,18 +579,24 @@ static void layout_title(ObFrame *self) break; case 'D': if (d) { *lc = ' '; break; } + if (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) && config_theme_hidedisabled) + break; d = TRUE; self->label_width -= (ob_rr_theme->button_size + ob_rr_theme->padding + 1); break; case 'S': if (s) { *lc = ' '; break; } + if (!(self->decorations & OB_FRAME_DECOR_SHADE) && config_theme_hidedisabled) + break; s = TRUE; self->label_width -= (ob_rr_theme->button_size + ob_rr_theme->padding + 1); break; case 'I': if (i) { *lc = ' '; break; } + if (!(self->decorations & OB_FRAME_DECOR_ICONIFY) && config_theme_hidedisabled) + break; i = TRUE; self->label_width -= (ob_rr_theme->button_size + ob_rr_theme->padding + 1); @@ -601,12 +607,16 @@ static void layout_title(ObFrame *self) break; case 'M': if (m) { *lc = ' '; break; } + if (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) && config_theme_hidedisabled) + break; m = TRUE; self->label_width -= (ob_rr_theme->button_size + ob_rr_theme->padding + 1); break; case 'C': if (c) { *lc = ' '; break; } + if (!(self->decorations & OB_FRAME_DECOR_CLOSE) && config_theme_hidedisabled) + break; c = TRUE; self->label_width -= (ob_rr_theme->button_size + ob_rr_theme->padding + 1); |
