set the current theme in a root property

This commit is contained in:
Dana Jansens 2007-05-28 13:37:32 +00:00
parent 9d8e1da42a
commit c726a1f709
6 changed files with 10 additions and 0 deletions

View file

@ -273,6 +273,9 @@ gint main(gint argc, gchar **argv)
} }
if (ob_rr_theme == NULL) if (ob_rr_theme == NULL)
ob_exit_with_error(_("Unable to load a theme.")); ob_exit_with_error(_("Unable to load a theme."));
PROP_SETS(RootWindow(ob_display, ob_screen),
ob_theme, theme->name);
} }
if (reconfigure) { if (reconfigure) {

View file

@ -171,6 +171,7 @@ void prop_startup()
*/ */
CREATE(openbox_pid, "_OPENBOX_PID"); CREATE(openbox_pid, "_OPENBOX_PID");
CREATE(ob_theme, "_OB_THEME");
CREATE(ob_wm_action_undecorate, "_OB_WM_ACTION_UNDECORATE"); CREATE(ob_wm_action_undecorate, "_OB_WM_ACTION_UNDECORATE");
CREATE(ob_wm_state_undecorated, "_OB_WM_STATE_UNDECORATED"); CREATE(ob_wm_state_undecorated, "_OB_WM_STATE_UNDECORATED");
CREATE(ob_control, "_OB_CONTROL"); CREATE(ob_control, "_OB_CONTROL");

View file

@ -193,6 +193,7 @@ typedef struct Atoms {
Atom ob_wm_action_undecorate; Atom ob_wm_action_undecorate;
Atom ob_wm_state_undecorated; Atom ob_wm_state_undecorated;
Atom openbox_pid; /* this is depreecated in favour of ob_control */ Atom openbox_pid; /* this is depreecated in favour of ob_control */
Atom ob_theme;
Atom ob_control; Atom ob_control;
} Atoms; } Atoms;
Atoms prop_atoms; Atoms prop_atoms;

View file

@ -294,6 +294,7 @@ gboolean screen_annex()
supported[i++] = prop_atoms.ob_wm_action_undecorate; supported[i++] = prop_atoms.ob_wm_action_undecorate;
supported[i++] = prop_atoms.ob_wm_state_undecorated; supported[i++] = prop_atoms.ob_wm_state_undecorated;
supported[i++] = prop_atoms.openbox_pid; supported[i++] = prop_atoms.openbox_pid;
supported[i++] = prop_atoms.ob_theme;
supported[i++] = prop_atoms.ob_control; supported[i++] = prop_atoms.ob_control;
g_assert(i == num_support); g_assert(i == num_support);

View file

@ -95,6 +95,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
theme = g_new0(RrTheme, 1); theme = g_new0(RrTheme, 1);
theme->inst = inst; theme->inst = inst;
theme->name = g_strdup(name);
theme->a_disabled_focused_max = RrAppearanceNew(inst, 1); theme->a_disabled_focused_max = RrAppearanceNew(inst, 1);
theme->a_disabled_unfocused_max = RrAppearanceNew(inst, 1); theme->a_disabled_unfocused_max = RrAppearanceNew(inst, 1);
@ -1192,6 +1193,8 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
void RrThemeFree(RrTheme *theme) void RrThemeFree(RrTheme *theme)
{ {
if (theme) { if (theme) {
g_free(theme->name);
RrColorFree(theme->menu_border_color); RrColorFree(theme->menu_border_color);
RrColorFree(theme->frame_focused_border_color); RrColorFree(theme->frame_focused_border_color);
RrColorFree(theme->frame_unfocused_border_color); RrColorFree(theme->frame_unfocused_border_color);

View file

@ -230,6 +230,7 @@ struct _RrTheme {
RrAppearance *osd_hilite_label; /* can be parent relative */ RrAppearance *osd_hilite_label; /* can be parent relative */
RrAppearance *osd_unhilite_fg; /* can never be parent relative */ RrAppearance *osd_unhilite_fg; /* can never be parent relative */
gchar *name;
}; };
/*! The font values are all optional. If a NULL is used for any of them, then /*! The font values are all optional. If a NULL is used for any of them, then