[fusion-commits] Plug-in for Metacity-like workarounds.: Changes to 'master' (7fb4969991be53f7df413a70be93966caf459c35)
griswold at server.beryl-project.org
griswold at server.beryl-project.org
Thu Aug 2 23:48:45 CEST 2007
New commits:
commit 7fb4969991be53f7df413a70be93966caf459c35
Author: Andrew Riedi <andrewriedi at gmail.com>
Date: Thu Aug 2 14:38:47 2007 -0700
Merge workaroundsDoLegacyFullscreen() into workaroundsDoFixes().
commit e3d2033d9c15241f73303b3ec60d6a3cafccd3d5
Author: Andrew Riedi <andrewriedi at gmail.com>
Date: Thu Aug 2 14:29:21 2007 -0700
Make workaroundsDoFixes() stand alone.
workarounds.c | 68 ++++++++++++++++++++++++++------------------------------
1 files changed, 32 insertions(+), 36 deletions(-)
Modified: fusion/plugins/workarounds/workarounds.c
===================================================================
--- fusion/plugins/workarounds/workarounds.c
+++ fusion/plugins/workarounds/workarounds.c
@@ -86,43 +86,12 @@ workaroundsGetWindowRoleAtom (CompWindow *w)
}
static void
-workaroundsDoLegacyFullscreen (CompWindow *w)
-{
- unsigned int type;
-
- type = w->type;
-
- /* Some code to make Wine and legacy applications work. */
- if (w->width == w->screen->width && w->height == w->screen->height &&
- !(type & CompWindowTypeDesktopMask))
- type = CompWindowTypeFullscreenMask;
-
- w->type = type;
-}
-
-static void
-workaroundsWindowResizeNotify (CompWindow *w, int dx, int dy,
- int dwidth, int dheight)
-{
- WORKAROUNDS_SCREEN (w->screen);
-
- if (workaroundsGetLegacyFullscreen (w->screen->display))
- {
- /* Fix up the window type. */
- recalcWindowType (w);
- workaroundsDoLegacyFullscreen (w);
- }
-
- UNWRAP (ws, w->screen, windowResizeNotify);
- (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
- WRAP (ws, w->screen, windowResizeNotify, workaroundsWindowResizeNotify);
-}
-
-static Bool
-workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
+workaroundsDoFixes (CompWindow *w)
{
Bool appliedFix = FALSE;
+ w->wmType = getWindowType (w->screen->display, w->id);
+
/* FIXME: Is this the best way to detect a notification type window? */
if (workaroundsGetNotificationDaemonFix (w->screen->display) && w->resName)
{
@@ -201,9 +170,28 @@ workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
recalcWindowType (w);
if (workaroundsGetLegacyFullscreen (w->screen->display))
- workaroundsDoLegacyFullscreen (w);
+ {
+ /* Some code to make Wine and legacy applications work. */
+ if (w->width == w->screen->width && w->height == w->screen->height &&
+ !(w->type & CompWindowTypeDesktopMask))
+ w->type = CompWindowTypeFullscreenMask;
+ }
+}
- return TRUE;
+static void
+workaroundsWindowResizeNotify (CompWindow *w, int dx, int dy,
+ int dwidth, int dheight)
+{
+ WORKAROUNDS_SCREEN (w->screen);
+
+ if (workaroundsGetLegacyFullscreen (w->screen->display))
+ {
+ workaroundsDoFixes (w);
+ }
+
+ UNWRAP (ws, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (ws, w->screen, windowResizeNotify, workaroundsWindowResizeNotify);
}
static Bool
@@ -267,6 +255,14 @@ workaroundsFiniScreen (CompPlugin *plugin, CompScreen *s)
free (ws);
}
+static Bool
+workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
+{
+ workaroundsDoFixes (w);
+
+ return TRUE;
+}
+
static void
workaroundsFiniWindow (CompPlugin *plugin, CompWindow *w)
{
More information about the commits
mailing list