summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Catherwood <jay.catherwood@gmail.com>2010-08-05 23:52:35 -0400
committerJay Catherwood <jay.catherwood@gmail.com>2010-08-05 23:52:35 -0400
commit79f11ed2cd71d2155a5e04aa8803c56633b212bb (patch)
tree8e4c6c1563817a9c8380a264bb1f40558d63b0df
parentf0a7eed9ac27afd08d503139bbeb63202b081367 (diff)
downloadworkarounds-79f11ed2cd71d2155a5e04aa8803c56633b212bb.tar.gz
workarounds-79f11ed2cd71d2155a5e04aa8803c56633b212bb.tar.bz2
Fix java windows disappearing from taskbar
Certain java applications set themselves to be transient when they open a modal dialog, causing them to disappear from the taskbar window list. This workaround notices when the transient property is unset and adds the window back to the taskbar.
-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>