summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--workarounds.c12
-rw-r--r--workarounds.xml.in5
2 files changed, 17 insertions, 0 deletions
diff --git a/workarounds.c b/workarounds.c
index f987fa0..3fa308e 100644
--- a/workarounds.c
+++ b/workarounds.c
@@ -543,6 +543,7 @@ static void
workaroundsHandleEvent (CompDisplay *d,
XEvent *event)
{
+ CompScreen *s;
CompWindow *w;
WORKAROUNDS_DISPLAY (d);
@@ -622,6 +623,17 @@ workaroundsHandleEvent (CompDisplay *d,
updateUrgencyState (w);
}
}
+ else if (event->xproperty.atom == d->clientListAtom) {
+ if (workaroundsGetJavaTaskbarFix (d)) {
+ for (s = d->screens; s; s = s->next) {
+ for (w = s->windows; w; w = w->next) {
+ if (w->managed) {
+ setWindowState(d,w->state,w->id);
+ }
+ }
+ }
+ }
+ }
break;
default:
break;
diff --git a/workarounds.xml.in b/workarounds.xml.in
index 6f997c8..83099ae 100644
--- a/workarounds.xml.in
+++ b/workarounds.xml.in
@@ -33,6 +33,11 @@
<_long>Fix window type of various Java windows.</_long>
<default>true</default>
</option>
+ <option type="bool" name="java_taskbar_fix">
+ <_short>Java Taskbar Fix</_short>
+ <_long>Fix Java windows disappearing from the taskbar.</_long>
+ <default>false</default>
+ </option>
<option type="bool" name="qt_fix">
<_short>Qt Window Fix</_short>
<_long>Fix window type of various Qt windows.</_long>