X-Git-Url: http://gitweb.opencompositing.org/?p=fusion%2Fplugins-main;a=blobdiff_plain;f=src%2Fworkarounds%2Fworkarounds.c;fp=src%2Fworkarounds%2Fworkarounds.c;h=feaf3badf0596b98700fcdb08382c91cba9e2e89;hp=30707010fed1671a8378837b6e3a2e3e77134eab;hb=f6c2f52156aaaf5bc3fc4718de85e1befc92dca1;hpb=66a85d9165ef37f7c49a230a07d2b47e570577ac diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c index 3070701..feaf3ba 100644 --- a/src/workarounds/workarounds.c +++ b/src/workarounds/workarounds.c @@ -226,46 +226,64 @@ workaroundsDoFixes (CompWindow *w) /* FIXME: Is this the best way to detect a notification type window? */ if (workaroundsGetNotificationDaemonFix (d)) { - if (w->wmType == CompWindowTypeNormalMask && + if (newWmType == CompWindowTypeNormalMask && w->attrib.override_redirect && w->resName && strcmp (w->resName, "notification-daemon") == 0) { newWmType = CompWindowTypeNotificationMask; + goto AppliedFix; } } - if ((w->wmType == newWmType) && workaroundsGetFirefoxMenuFix (d)) + if (workaroundsGetFirefoxMenuFix (d)) { - if (w->wmType == CompWindowTypeNormalMask && + if (newWmType == CompWindowTypeNormalMask && w->attrib.override_redirect && w->resName) { if ((strcasecmp (w->resName, "gecko") == 0) || (strcasecmp (w->resName, "popup") == 0)) { newWmType = CompWindowTypeDropdownMenuMask; + goto AppliedFix; + } + } + } + + if (workaroundsGetOooMenuFix (d)) + { + if (newWmType == CompWindowTypeNormalMask && + w->attrib.override_redirect && w->resName) + { + if (strcasecmp (w->resName, "VCLSalFrame") == 0) + { + newWmType = CompWindowTypeDropdownMenuMask; + goto AppliedFix; } } } /* FIXME: Basic hack to get Java windows working correctly. */ - if ((w->wmType == newWmType) && workaroundsGetJavaFix (d) && w->resName) + if (workaroundsGetJavaFix (d) && w->resName) { if ((strcmp (w->resName, "sun-awt-X11-XMenuWindow") == 0) || (strcmp (w->resName, "sun-awt-X11-XWindowPeer") == 0)) { newWmType = CompWindowTypeDropdownMenuMask; + goto AppliedFix; } else if (strcmp (w->resName, "sun-awt-X11-XDialogPeer") == 0) { newWmType = CompWindowTypeDialogMask; + goto AppliedFix; } else if (strcmp (w->resName, "sun-awt-X11-XFramePeer") == 0) { newWmType = CompWindowTypeNormalMask; + goto AppliedFix; } } - if ((newWmType == w->wmType) && workaroundsGetQtFix (d)) + if (workaroundsGetQtFix (d)) { char *windowRole; @@ -276,24 +294,27 @@ workaroundsDoFixes (CompWindow *w) if ((strcmp (windowRole, "toolTipTip") == 0) || (strcmp (windowRole, "qtooltip_label") == 0)) { + free (windowRole); newWmType = CompWindowTypeTooltipMask; + goto AppliedFix; } - - free (windowRole); + else + { + free (windowRole); + } } /* fix Qt transients - FIXME: is there a better way to detect them? */ - if (w->wmType == newWmType) - { - if (!w->resName && w->attrib.override_redirect && - (w->attrib.class == InputOutput) && - (w->wmType == CompWindowTypeUnknownMask)) - { - newWmType = CompWindowTypeDropdownMenuMask; - } + if (!w->resName && w->attrib.override_redirect && + (w->attrib.class == InputOutput) && + (w->wmType == CompWindowTypeUnknownMask)) + { + newWmType = CompWindowTypeDropdownMenuMask; + goto AppliedFix; } } +AppliedFix: if (newWmType != w->wmType) { WORKAROUNDS_WINDOW (w); X-Git-Url: http://gitweb.opencompositing.org/?p=fusion%2Fplugins-main;a=blobdiff_plain;f=src%2Fworkarounds%2Fworkarounds.c;fp=src%2Fworkarounds%2Fworkarounds.c;h=c2eaebe5acb3ddc381979f3cf6763d0826d3dfb2;hp=feaf3badf0596b98700fcdb08382c91cba9e2e89;hb=fcf7c3f00d02e141973939afacf587364715ecdd;hpb=f6c2f52156aaaf5bc3fc4718de85e1befc92dca1 diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c index feaf3ba..c2eaebe 100644 --- a/src/workarounds/workarounds.c +++ b/src/workarounds/workarounds.c @@ -249,19 +249,6 @@ workaroundsDoFixes (CompWindow *w) } } - if (workaroundsGetOooMenuFix (d)) - { - if (newWmType == CompWindowTypeNormalMask && - w->attrib.override_redirect && w->resName) - { - if (strcasecmp (w->resName, "VCLSalFrame") == 0) - { - newWmType = CompWindowTypeDropdownMenuMask; - goto AppliedFix; - } - } - } - /* FIXME: Basic hack to get Java windows working correctly. */ if (workaroundsGetJavaFix (d) && w->resName) {