all repos — openbox @ 506c1aa005d0328d4d32e123d437c6afe92b8ea4

openbox fork - make it a bit more like ryudo

change buttons masks so that there are masks for max and desktop buttons when their state changes but not for all buttons just when they are pressed
Dana Jansens danakj@orodu.net
commit

506c1aa005d0328d4d32e123d437c6afe92b8ea4

parent

0327c5a77894a9a8a325631c9e18fa223e5406d0

M engines/openbox/obengine.cengines/openbox/obengine.c

@@ -37,28 +37,30 @@ int ob_s_winfont_shadow;

int ob_s_winfont_shadow_offset; ObFont *ob_s_winfont; /* style settings - masks */ -pixmap_mask *ob_s_max_pressed_mask; -pixmap_mask *ob_s_max_unpressed_mask; -pixmap_mask *ob_s_iconify_pressed_mask; -pixmap_mask *ob_s_iconify_unpressed_mask; -pixmap_mask *ob_s_desk_pressed_mask; -pixmap_mask *ob_s_desk_unpressed_mask; -pixmap_mask *ob_s_close_pressed_mask; -pixmap_mask *ob_s_close_unpressed_mask; +pixmap_mask *ob_s_max_set_mask; +pixmap_mask *ob_s_max_unset_mask; +pixmap_mask *ob_s_iconify_mask; +pixmap_mask *ob_s_desk_set_mask; +pixmap_mask *ob_s_desk_unset_mask; +pixmap_mask *ob_s_close_mask; /* global appearances */ Appearance *ob_a_focused_unpressed_max; Appearance *ob_a_focused_pressed_max; +Appearance *ob_a_focused_pressed_set_max; Appearance *ob_a_unfocused_unpressed_max; Appearance *ob_a_unfocused_pressed_max; +Appearance *ob_a_unfocused_pressed_set_max; Appearance *ob_a_focused_unpressed_close; Appearance *ob_a_focused_pressed_close; Appearance *ob_a_unfocused_unpressed_close; Appearance *ob_a_unfocused_pressed_close; Appearance *ob_a_focused_unpressed_desk; Appearance *ob_a_focused_pressed_desk; +Appearance *ob_a_focused_pressed_set_desk; Appearance *ob_a_unfocused_unpressed_desk; Appearance *ob_a_unfocused_pressed_desk; +Appearance *ob_a_unfocused_pressed_set_desk; Appearance *ob_a_focused_unpressed_iconify; Appearance *ob_a_focused_pressed_iconify; Appearance *ob_a_unfocused_unpressed_iconify;

@@ -105,23 +107,26 @@ ob_s_b_color = ob_s_cb_unfocused_color = ob_s_cb_focused_color =

ob_s_title_unfocused_color = ob_s_title_focused_color = ob_s_titlebut_unfocused_color = ob_s_titlebut_focused_color = NULL; ob_s_winfont = NULL; - ob_s_max_pressed_mask = ob_s_max_unpressed_mask = NULL; - ob_s_iconify_pressed_mask = ob_s_iconify_unpressed_mask = NULL; - ob_s_desk_pressed_mask = ob_s_desk_unpressed_mask = NULL; - ob_s_close_pressed_mask = ob_s_close_unpressed_mask = NULL; + ob_s_max_set_mask = ob_s_max_unset_mask = NULL; + ob_s_desk_set_mask = ob_s_desk_unset_mask = NULL; + ob_s_iconify_mask = ob_s_close_mask = NULL; ob_a_focused_unpressed_max = appearance_new(Surface_Planar, 1); ob_a_focused_pressed_max = appearance_new(Surface_Planar, 1); + ob_a_focused_pressed_set_max = appearance_new(Surface_Planar, 1); ob_a_unfocused_unpressed_max = appearance_new(Surface_Planar, 1); ob_a_unfocused_pressed_max = appearance_new(Surface_Planar, 1); + ob_a_unfocused_pressed_set_max = appearance_new(Surface_Planar, 1); ob_a_focused_unpressed_close = NULL; ob_a_focused_pressed_close = NULL; ob_a_unfocused_unpressed_close = NULL; ob_a_unfocused_pressed_close = NULL; ob_a_focused_unpressed_desk = NULL; ob_a_focused_pressed_desk = NULL; + ob_a_focused_pressed_set_desk = NULL; ob_a_unfocused_unpressed_desk = NULL; ob_a_unfocused_pressed_desk = NULL; + ob_a_unfocused_pressed_set_desk = NULL; ob_a_focused_unpressed_iconify = NULL; ob_a_focused_pressed_iconify = NULL; ob_a_unfocused_unpressed_iconify = NULL;

@@ -139,9 +144,13 @@

if (obtheme_load()) { RECT_SET(ob_a_focused_pressed_desk->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); + RECT_SET(ob_a_focused_pressed_set_desk->area, 0, 0, + BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_focused_unpressed_desk->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_unfocused_pressed_desk->area, 0, 0, + BUTTON_SIZE, BUTTON_SIZE); + RECT_SET(ob_a_unfocused_pressed_set_desk->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_unfocused_unpressed_desk->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE);

@@ -157,9 +166,13 @@ RECT_SET(ob_a_unfocused_unpressed_iconify->area, 0, 0,

BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_focused_pressed_max->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); + RECT_SET(ob_a_focused_pressed_set_max->area, 0, 0, + BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_focused_unpressed_max->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_unfocused_pressed_max->area, 0, 0, + BUTTON_SIZE, BUTTON_SIZE); + RECT_SET(ob_a_unfocused_pressed_set_max->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE); RECT_SET(ob_a_unfocused_unpressed_max->area, 0, 0, BUTTON_SIZE, BUTTON_SIZE);

@@ -193,29 +206,27 @@ color_free(ob_s_titlebut_unfocused_color);

if (ob_s_titlebut_focused_color != NULL) color_free(ob_s_titlebut_focused_color); - if (ob_s_max_pressed_mask != NULL) - pixmap_mask_free(ob_s_max_pressed_mask); - if (ob_s_max_unpressed_mask != NULL) - pixmap_mask_free(ob_s_max_unpressed_mask); - if (ob_s_desk_pressed_mask != NULL) - pixmap_mask_free(ob_s_desk_pressed_mask); - if (ob_s_desk_unpressed_mask != NULL) - pixmap_mask_free(ob_s_desk_unpressed_mask); - if (ob_s_iconify_pressed_mask != NULL) - pixmap_mask_free(ob_s_iconify_pressed_mask); - if (ob_s_iconify_unpressed_mask != NULL) - pixmap_mask_free(ob_s_iconify_unpressed_mask); - if (ob_s_close_pressed_mask != NULL) - pixmap_mask_free(ob_s_close_pressed_mask); - if (ob_s_close_unpressed_mask != NULL) - pixmap_mask_free(ob_s_close_unpressed_mask); + if (ob_s_max_set_mask != NULL) + pixmap_mask_free(ob_s_max_set_mask); + if (ob_s_max_unset_mask != NULL) + pixmap_mask_free(ob_s_max_unset_mask); + if (ob_s_desk_set_mask != NULL) + pixmap_mask_free(ob_s_desk_set_mask); + if (ob_s_desk_unset_mask != NULL) + pixmap_mask_free(ob_s_desk_unset_mask); + if (ob_s_iconify_mask != NULL) + pixmap_mask_free(ob_s_iconify_mask); + if (ob_s_close_mask != NULL) + pixmap_mask_free(ob_s_close_mask); if (ob_s_winfont != NULL) font_close(ob_s_winfont); appearance_free(ob_a_focused_unpressed_max); appearance_free(ob_a_focused_pressed_max); + appearance_free(ob_a_focused_pressed_set_max); appearance_free(ob_a_unfocused_unpressed_max); appearance_free(ob_a_unfocused_pressed_max); + appearance_free(ob_a_unfocused_pressed_set_max); if (ob_a_focused_unpressed_close != NULL) appearance_free(ob_a_focused_unpressed_close); if (ob_a_focused_pressed_close != NULL)
M engines/openbox/obengine.hengines/openbox/obengine.h

@@ -32,27 +32,29 @@ extern int ob_s_winfont_shadow;

extern int ob_s_winfont_shadow_offset; extern ObFont *ob_s_winfont; -extern pixmap_mask *ob_s_max_pressed_mask; -extern pixmap_mask *ob_s_max_unpressed_mask; -extern pixmap_mask *ob_s_iconify_pressed_mask; -extern pixmap_mask *ob_s_iconify_unpressed_mask; -extern pixmap_mask *ob_s_desk_pressed_mask; -extern pixmap_mask *ob_s_desk_unpressed_mask; -extern pixmap_mask *ob_s_close_pressed_mask; -extern pixmap_mask *ob_s_close_unpressed_mask; +extern pixmap_mask *ob_s_max_set_mask; +extern pixmap_mask *ob_s_max_unset_mask; +extern pixmap_mask *ob_s_iconify_mask; +extern pixmap_mask *ob_s_desk_set_mask; +extern pixmap_mask *ob_s_desk_unset_mask; +extern pixmap_mask *ob_s_close_mask; extern Appearance *ob_a_focused_unpressed_max; extern Appearance *ob_a_focused_pressed_max; +extern Appearance *ob_a_focused_pressed_set_max; extern Appearance *ob_a_unfocused_unpressed_max; extern Appearance *ob_a_unfocused_pressed_max; +extern Appearance *ob_a_unfocused_pressed_set_max; extern Appearance *ob_a_focused_unpressed_close; extern Appearance *ob_a_focused_pressed_close; extern Appearance *ob_a_unfocused_unpressed_close; extern Appearance *ob_a_unfocused_pressed_close; extern Appearance *ob_a_focused_unpressed_desk; extern Appearance *ob_a_focused_pressed_desk; +extern Appearance *ob_a_focused_pressed_set_desk; extern Appearance *ob_a_unfocused_unpressed_desk; extern Appearance *ob_a_unfocused_pressed_desk; +extern Appearance *ob_a_unfocused_pressed_set_desk; extern Appearance *ob_a_focused_unpressed_iconify; extern Appearance *ob_a_focused_pressed_iconify; extern Appearance *ob_a_unfocused_unpressed_iconify;
M engines/openbox/obrender.cengines/openbox/obrender.c

@@ -27,12 +27,14 @@ self->a_focused_title : self->a_unfocused_title);

l = (client_focused(self->frame.client) ? self->a_focused_label : self->a_unfocused_label); m = (client_focused(self->frame.client) ? - ((self->max_press || - self->frame.client->max_vert || self->frame.client->max_horz) ? - ob_a_focused_pressed_max : ob_a_focused_unpressed_max) : - ((self->max_press || - self->frame.client->max_vert || self->frame.client->max_horz) ? - ob_a_unfocused_pressed_max : ob_a_unfocused_unpressed_max)); + (self->frame.client->max_vert || self->frame.client->max_horz ? + ob_a_focused_pressed_set_max : + (self->max_press ? + ob_a_focused_pressed_max : ob_a_focused_unpressed_max)) : + (self->frame.client->max_vert || self->frame.client->max_horz ? + ob_a_unfocused_pressed_set_max : + (self->max_press ? + ob_a_unfocused_pressed_max : ob_a_unfocused_unpressed_max))); n = self->a_icon; i = (client_focused(self->frame.client) ? (self->iconify_press ?

@@ -41,10 +43,14 @@ (self->iconify_press ?

ob_a_unfocused_pressed_iconify : ob_a_unfocused_unpressed_iconify)); d = (client_focused(self->frame.client) ? - (self->desk_press || self->frame.client->desktop == DESKTOP_ALL ? - ob_a_focused_pressed_desk : ob_a_focused_unpressed_desk) : - (self->desk_press || self->frame.client->desktop == DESKTOP_ALL ? - ob_a_unfocused_pressed_desk : ob_a_unfocused_unpressed_desk)); + (self->frame.client->desktop == DESKTOP_ALL ? + ob_a_focused_pressed_set_desk : + (self->desk_press ? + ob_a_focused_pressed_desk : ob_a_focused_unpressed_desk)) : + (self->frame.client->desktop == DESKTOP_ALL ? + ob_a_unfocused_pressed_set_desk : + (self->desk_press ? + ob_a_unfocused_pressed_desk : ob_a_unfocused_unpressed_desk))); c = (client_focused(self->frame.client) ? (self->close_press ? ob_a_focused_pressed_close : ob_a_focused_unpressed_close) :
M engines/openbox/obtheme.cengines/openbox/obtheme.c

@@ -355,44 +355,50 @@ if (!read_color(db, "window.button.unfocus.picColor",

&ob_s_titlebut_unfocused_color)) ob_s_titlebut_unfocused_color = color_new(0xff, 0xff, 0xff); - if (!read_mask(db, "window.button.max.mask", &ob_s_max_unpressed_mask)) { - char data[] = { 0x7c, 0x44, 0x47, 0x47, 0x7f, 0x1f, 0x1f }; - ob_s_max_unpressed_mask = pixmap_mask_new(7, 7, data); - } - if (!read_mask(db, "window.button.max.pressed.mask", - &ob_s_max_pressed_mask)) { - ob_s_max_pressed_mask = pixmap_mask_copy(ob_s_max_unpressed_mask); + if (read_mask(db, "window.button.max.mask", &ob_s_max_unset_mask)) { + if (!read_mask(db, "window.button.max.pressed.mask", + &ob_s_max_set_mask)) { + ob_s_max_set_mask = pixmap_mask_copy(ob_s_max_unset_mask); + } + } else { + { + char data[] = { 0x3f, 0x3f, 0x21, 0x21, 0x21, 0x3f }; + ob_s_max_unset_mask = pixmap_mask_new(6, 6, data); + } + { + char data[] = { 0x3c, 0x24, 0x27, 0x3f, 0x0f, 0x0f }; + ob_s_max_set_mask = pixmap_mask_new(6, 6, data); + } } if (!read_mask(db, "window.button.icon.mask", - &ob_s_iconify_unpressed_mask)) { - char data[] = { 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3e }; - ob_s_iconify_unpressed_mask = pixmap_mask_new(7, 7, data); - } - if (!read_mask(db, "window.button.icon.pressed.mask", - &ob_s_iconify_pressed_mask)) { - ob_s_iconify_pressed_mask = - pixmap_mask_copy(ob_s_iconify_unpressed_mask); + &ob_s_iconify_mask)) { + char data[] = { 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f }; + ob_s_iconify_mask = pixmap_mask_new(6, 6, data); } - if (!read_mask(db, "window.button.stick.mask", - &ob_s_desk_unpressed_mask)) { - char data[] = { 0x00, 0x36, 0x36, 0x00, 0x36, 0x36, 0x00 }; - ob_s_desk_unpressed_mask = pixmap_mask_new(7, 7, data); - } - if (!read_mask(db, "window.button.stick.pressed.mask", - &ob_s_desk_pressed_mask)) { - ob_s_desk_pressed_mask = pixmap_mask_copy(ob_s_desk_unpressed_mask); + if (read_mask(db, "window.button.stick.mask", + &ob_s_desk_unset_mask)) { + if (!read_mask(db, "window.button.stick.pressed.mask", + &ob_s_desk_set_mask)) { + ob_s_desk_set_mask = + pixmap_mask_copy(ob_s_desk_unset_mask); + } + } else { + { + char data[] = { 0x33, 0x33, 0x00, 0x00, 0x33, 0x33 }; + ob_s_desk_unset_mask = pixmap_mask_new(6, 6, data); + } + { + char data[] = { 0x0c, 0x0c, 0x3f, 0x3f, 0x0c, 0x0c }; + ob_s_desk_set_mask = pixmap_mask_new(6, 6, data); + } } if (!read_mask(db, "window.button.close.mask", - &ob_s_close_unpressed_mask)) { - char data[] = { 0x22, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x22 }; - ob_s_close_unpressed_mask = pixmap_mask_new(7, 7, data); - } - if (!read_mask(db, "window.button.close.pressed.mask", - &ob_s_close_pressed_mask)) { - ob_s_close_pressed_mask = pixmap_mask_copy(ob_s_close_unpressed_mask); + &ob_s_close_mask)) { + char data[] = { 0x33, 0x3f, 0x1e, 0x1e, 0x3f, 0x33 }; + ob_s_close_mask = pixmap_mask_new(6, 6, data); } if (!read_appearance(db, "window.title.focus", ob_a_focused_title))

@@ -437,8 +443,11 @@ ob_a_focused_pressed_close = appearance_copy(ob_a_focused_pressed_max);

ob_a_unfocused_unpressed_desk = appearance_copy(ob_a_unfocused_unpressed_max); ob_a_unfocused_pressed_desk = appearance_copy(ob_a_unfocused_pressed_max); + ob_a_unfocused_pressed_set_desk = + appearance_copy(ob_a_unfocused_pressed_max); ob_a_focused_unpressed_desk = appearance_copy(ob_a_focused_unpressed_max); ob_a_focused_pressed_desk = appearance_copy(ob_a_focused_pressed_max); + ob_a_focused_pressed_set_desk = appearance_copy(ob_a_focused_pressed_max); ob_a_unfocused_unpressed_iconify = appearance_copy(ob_a_unfocused_unpressed_max); ob_a_unfocused_pressed_iconify =

@@ -446,6 +455,9 @@ appearance_copy(ob_a_unfocused_pressed_max);

ob_a_focused_unpressed_iconify = appearance_copy(ob_a_focused_unpressed_max); ob_a_focused_pressed_iconify = appearance_copy(ob_a_focused_pressed_max); + ob_a_unfocused_pressed_set_max = + appearance_copy(ob_a_unfocused_pressed_max); + ob_a_focused_pressed_set_max = appearance_copy(ob_a_focused_pressed_max); ob_a_icon->surface.data.planar.grad = Background_ParentRelative;

@@ -469,59 +481,69 @@ ob_s_title_unfocused_color;

ob_a_focused_unpressed_max->texture[0].type = ob_a_focused_pressed_max->texture[0].type = + ob_a_focused_pressed_set_max->texture[0].type = ob_a_unfocused_unpressed_max->texture[0].type = ob_a_unfocused_pressed_max->texture[0].type = + ob_a_unfocused_pressed_set_max->texture[0].type = ob_a_focused_unpressed_close->texture[0].type = ob_a_focused_pressed_close->texture[0].type = ob_a_unfocused_unpressed_close->texture[0].type = ob_a_unfocused_pressed_close->texture[0].type = ob_a_focused_unpressed_desk->texture[0].type = ob_a_focused_pressed_desk->texture[0].type = + ob_a_focused_pressed_set_desk->texture[0].type = ob_a_unfocused_unpressed_desk->texture[0].type = ob_a_unfocused_pressed_desk->texture[0].type = + ob_a_unfocused_pressed_set_desk->texture[0].type = ob_a_focused_unpressed_iconify->texture[0].type = ob_a_focused_pressed_iconify->texture[0].type = ob_a_unfocused_unpressed_iconify->texture[0].type = ob_a_unfocused_pressed_iconify->texture[0].type = Bitmask; ob_a_focused_unpressed_max->texture[0].data.mask.mask = ob_a_unfocused_unpressed_max->texture[0].data.mask.mask = - ob_s_max_unpressed_mask; - ob_a_focused_pressed_max->texture[0].data.mask.mask = + ob_a_focused_pressed_max->texture[0].data.mask.mask = ob_a_unfocused_pressed_max->texture[0].data.mask.mask = - ob_s_max_pressed_mask; - ob_a_focused_unpressed_close->texture[0].data.mask.mask = - ob_a_unfocused_unpressed_close->texture[0].data.mask.mask = - ob_s_close_unpressed_mask; + ob_s_max_unset_mask; + ob_a_focused_pressed_set_max->texture[0].data.mask.mask = + ob_a_unfocused_pressed_set_max->texture[0].data.mask.mask = + ob_s_max_set_mask; ob_a_focused_pressed_close->texture[0].data.mask.mask = ob_a_unfocused_pressed_close->texture[0].data.mask.mask = - ob_s_close_pressed_mask; + ob_a_focused_unpressed_close->texture[0].data.mask.mask = + ob_a_unfocused_unpressed_close->texture[0].data.mask.mask = + ob_s_close_mask; ob_a_focused_unpressed_desk->texture[0].data.mask.mask = ob_a_unfocused_unpressed_desk->texture[0].data.mask.mask = - ob_s_desk_unpressed_mask; - ob_a_focused_pressed_desk->texture[0].data.mask.mask = + ob_a_focused_pressed_desk->texture[0].data.mask.mask = ob_a_unfocused_pressed_desk->texture[0].data.mask.mask = - ob_s_desk_pressed_mask; + ob_s_desk_unset_mask; + ob_a_focused_pressed_set_desk->texture[0].data.mask.mask = + ob_a_unfocused_pressed_set_desk->texture[0].data.mask.mask = + ob_s_desk_set_mask; ob_a_focused_unpressed_iconify->texture[0].data.mask.mask = ob_a_unfocused_unpressed_iconify->texture[0].data.mask.mask = - ob_s_iconify_unpressed_mask; - ob_a_focused_pressed_iconify->texture[0].data.mask.mask = + ob_a_focused_pressed_iconify->texture[0].data.mask.mask = ob_a_unfocused_pressed_iconify->texture[0].data.mask.mask = - ob_s_iconify_pressed_mask; + ob_s_iconify_mask; ob_a_focused_unpressed_max->texture[0].data.mask.color = ob_a_focused_pressed_max->texture[0].data.mask.color = + ob_a_focused_pressed_set_max->texture[0].data.mask.color = ob_a_focused_unpressed_close->texture[0].data.mask.color = ob_a_focused_pressed_close->texture[0].data.mask.color = ob_a_focused_unpressed_desk->texture[0].data.mask.color = ob_a_focused_pressed_desk->texture[0].data.mask.color = + ob_a_focused_pressed_set_desk->texture[0].data.mask.color = ob_a_focused_unpressed_iconify->texture[0].data.mask.color = ob_a_focused_pressed_iconify->texture[0].data.mask.color = ob_s_titlebut_focused_color; ob_a_unfocused_unpressed_max->texture[0].data.mask.color = ob_a_unfocused_pressed_max->texture[0].data.mask.color = + ob_a_unfocused_pressed_set_max->texture[0].data.mask.color = ob_a_unfocused_unpressed_close->texture[0].data.mask.color = ob_a_unfocused_pressed_close->texture[0].data.mask.color = ob_a_unfocused_unpressed_desk->texture[0].data.mask.color = ob_a_unfocused_pressed_desk->texture[0].data.mask.color = + ob_a_unfocused_pressed_set_desk->texture[0].data.mask.color = ob_a_unfocused_unpressed_iconify->texture[0].data.mask.color = ob_a_unfocused_pressed_iconify->texture[0].data.mask.color = ob_s_titlebut_unfocused_color;