all repos — openbox @ 80117db6c4f39af1cff247de5a3eb19e2f07c21b

openbox fork - make it a bit more like ryudo

turn on demands_attention when urgent gets set, and turn it off when urgent is removed, for those apps that think it is 1917 or something
Dana Jansens danakj@orodu.net
commit

80117db6c4f39af1cff247de5a3eb19e2f07c21b

parent

1d9c0e8b87e853a49dadc90c4c1ae12e77c63360

2 files changed, 19 insertions(+), 5 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -1622,6 +1622,8 @@ /* assume a window takes input if it doesnt specify */

self->can_focus = TRUE; if ((hints = XGetWMHints(ob_display, self->window)) != NULL) { + gboolean ur; + if (hints->flags & InputHint) self->can_focus = hints->input;

@@ -1630,6 +1632,13 @@ starting up! */

if (ob_state() != OB_STATE_STARTING && self->frame == NULL) if (hints->flags & StateHint) self->iconic = hints->initial_state == IconicState; + + ur = self->urgent; + self->urgent = (hints->flags & XUrgencyHint); + if (self->urgent && !ur) + client_hilite(self, TRUE); + else if (!self->urgent && ur && self->demands_attention) + client_hilite(self, FALSE); if (!(hints->flags & WindowGroupHint)) hints->window_group = None;

@@ -2775,11 +2784,13 @@ return; /* no change */

/* don't allow focused windows to hilite */ self->demands_attention = hilite && !client_focused(self); - if (self->demands_attention) - frame_flash_start(self->frame); - else - frame_flash_stop(self->frame); - client_change_state(self); + if (self->frame != NULL) { /* if we're mapping, just set the state */ + if (self->demands_attention) + frame_flash_start(self->frame); + else + frame_flash_stop(self->frame); + client_change_state(self); + } } void client_set_desktop_recursive(ObClient *self,
M openbox/client.hopenbox/client.h

@@ -258,6 +258,9 @@ gboolean below;

/*! Demands attention flag */ gboolean demands_attention; + /*! The urgent flag */ + gboolean urgent; + /*! The layer in which the window will be stacked, windows in lower layers are always below windows in higher layers. */ ObStackingLayer layer;