compiz team mailing list archive
-
compiz team
-
Mailing list archive
-
Message #13242
[Merge] lp:~dbarth/compiz/packaging.fix into lp:compiz
David Barth has proposed merging lp:~dbarth/compiz/packaging.fix into lp:compiz.
Requested reviews:
compiz packagers (compiz)
For more details, see:
https://code.launchpad.net/~dbarth/compiz/packaging.fix/+merge/55298
Drop 090_git_fix_new_invisible_windows since the patch is now on trunk
--
https://code.launchpad.net/~dbarth/compiz/packaging.fix/+merge/55298
Your team compiz packagers is requested to review the proposed merge of lp:~dbarth/compiz/packaging.fix into lp:compiz.
=== removed file 'debian/patches/090_git_fix_new_invisible_windows.patch'
--- debian/patches/090_git_fix_new_invisible_windows.patch 2011-03-23 16:36:04 +0000
+++ debian/patches/090_git_fix_new_invisible_windows.patch 1970-01-01 00:00:00 +0000
@@ -1,125 +0,0 @@
-From e4489612952606501869d63b8119bed61d8ee4ed Mon Sep 17 00:00:00 2001
-From: Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>
-Date: Wed, 23 Mar 2011 22:36:30 +0800
-Subject: [PATCH] Don't treat synthetic UnmapNotify the same as the real UnmapNotify
-
-ICCCM section 4.1.4 says that applications need to send us a synthetic
-UnmapNotify to tell us that the window has been withdrawn in all cases
-to cover the case where a window is already unmapped and then withdrawn.
-
-In this case we should handle the UnmapNotify as a request to withdraw
-the window, but we should only handle the *real* UnmapNotify request
-as a request to actually process the window being unmapped and withdraw
-it there, rather than processing both twice and withdrawing the window
-twice
----
- src/event.cpp | 38 ++++++++++++++++++++++++--------------
- src/privatewindow.h | 2 ++
- src/window.cpp | 11 +++++++++++
- 3 files changed, 37 insertions(+), 14 deletions(-)
-
-diff --git a/src/event.cpp b/src/event.cpp
-index 5c0769d..b27e8b5 100644
---- a/src/event.cpp
-+++ b/src/event.cpp
-@@ -1122,7 +1122,7 @@ CompScreen::handleEvent (XEvent *event)
- * and then bypassing MapRequest because it *is* override-redirect
- * at XMapWindow time, so we need to catch this case and make
- * sure that windows are tracked here */
--
-+
- foreach (CoreWindow *cw, priv->createdWindows)
- {
- if (cw->priv->id == event->xmap.window)
-@@ -1184,30 +1184,40 @@ CompScreen::handleEvent (XEvent *event)
- }
- else /* X -> Withdrawn */
- {
-- /* Iconic -> Withdrawn */
-+ /* Iconic -> Withdrawn:
-+ *
-+ * The window is already unmapped so we need to check the
-+ * synthetic UnmapNotify that comes and withdraw the window here */
- if (w->state () & CompWindowStateHiddenMask)
- {
- w->priv->minimized = false;
--
- w->changeState (w->state () & ~CompWindowStateHiddenMask);
-
- priv->updateClientList ();
-+ w->priv->withdraw ();
- }
-- else /* Closing */
-+ /* Closing:
-+ *
-+ * ICCCM Section 4.1.4 says that clients need to send
-+ * a synthetic UnmapNotify for every real unmap
-+ * in order to reflect the change in state, but
-+ * since we already withdraw the window on the real
-+ * UnmapNotify, no need to do it again on the synthetic
-+ * one. */
-+ else if (!event->xunmap.send_event)
-+ {
- w->windowNotify (CompWindowNotifyClose);
--
-- if (!w->overrideRedirect ())
-- priv->setWmState (WithdrawnState, w->id ());
--
-- w->priv->placed = false;
-- w->priv->unmanaging = w->priv->managed;
-- w->priv->managed = false;
-+ w->priv->withdraw ();
-+ }
- }
-
-- w->unmap ();
-+ if (!event->xunmap.send_event)
-+ {
-+ w->unmap ();
-
-- if (!w->shaded () && !w->priv->pendingMaps)
-- w->moveInputFocusToOtherWindow ();
-+ if (!w->shaded () && !w->priv->pendingMaps)
-+ w->moveInputFocusToOtherWindow ();
-+ }
- }
- break;
- case ReparentNotify:
-diff --git a/src/privatewindow.h b/src/privatewindow.h
-index 4bed1bc..2b2d6a4 100644
---- a/src/privatewindow.h
-+++ b/src/privatewindow.h
-@@ -137,6 +137,8 @@ class PrivateWindow {
-
- void show ();
-
-+ void withdraw ();
-+
- bool handlePingTimeout (unsigned int lastPing);
-
- void handlePing (int lastPing);
-diff --git a/src/window.cpp b/src/window.cpp
-index 53fe4d8..7ea63ba 100644
---- a/src/window.cpp
-+++ b/src/window.cpp
-@@ -1365,6 +1365,17 @@ CompWindow::unmap ()
- windowNotify (CompWindowNotifyUnmap);
- }
-
-+void
-+PrivateWindow::withdraw ()
-+{
-+ if (!attrib.override_redirect)
-+ screen->priv->setWmState (WithdrawnState, id);
-+
-+ placed = false;
-+ unmanaging = managed;
-+ managed = false;
-+}
-+
- bool
- PrivateWindow::restack (Window aboveId)
- {
---
-1.7.4.1
-
=== modified file 'debian/patches/series'
--- debian/patches/series 2011-03-24 11:03:37 +0000
+++ debian/patches/series 2011-03-29 09:40:56 +0000
@@ -7,5 +7,4 @@
065_add_bailer_and_detection_plugins.patch
085_add_grid_plugin.patch
086_new_grid_defaults.patch
-090_git_fix_new_invisible_windows.patch
100_bump_core.h.patch
Follow ups