diff options
author | maniac <maniac@d7aaf104-2d23-0410-ae22-9d23157bf5a3> | 2007-02-15 17:44:43 +0000 |
---|---|---|
committer | maniac <maniac@d7aaf104-2d23-0410-ae22-9d23157bf5a3> | 2007-02-15 17:44:43 +0000 |
commit | 818c263a808e01f1d534aa1abdadda261e1c1457 (patch) | |
tree | 3b59e2243920af670333be24d0acd6c672a94b2f | |
parent | 8c8fbed4f2bd33ffadcecafe7037cef4d3ae62f1 (diff) | |
download | marex-dev-818c263a808e01f1d534aa1abdadda261e1c1457.tar.gz marex-dev-818c263a808e01f1d534aa1abdadda261e1c1457.tar.bz2 |
wall plugin:
- grab window for expo-mode DnD
- this enables wobbliness for those windows and makes it possible to move a window group in expo
group plugin:
- accept expo as a valid source of grouped window movements
git-svn-id: file:///beryl/trunk@4084 d7aaf104-2d23-0410-ae22-9d23157bf5a3
-rw-r--r-- | beryl-plugins/src/group/group.c | 2 | ||||
-rw-r--r-- | beryl-plugins/src/wall.c | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/beryl-plugins/src/group/group.c b/beryl-plugins/src/group/group.c index 85fe35e..efe4efb 100644 --- a/beryl-plugins/src/group/group.c +++ b/beryl-plugins/src/group/group.c @@ -1421,7 +1421,7 @@ groupWindowMoveNotify(CompWindow * w, int dx, int dy, Bool immediate) if (gw->group->doTabbing || gd->ignoreMode || (gw->group->grabWindow != w->id) || - !screenGrabExist (w->screen, "move", 0) || + !screenGrabExist (w->screen, "move", "expo", 0) || !gs->opt[GROUP_SCREEN_OPTION_MOVE].value.b) return; diff --git a/beryl-plugins/src/wall.c b/beryl-plugins/src/wall.c index 296b86f..6640b17 100644 --- a/beryl-plugins/src/wall.c +++ b/beryl-plugins/src/wall.c @@ -418,7 +418,10 @@ static void wallHandleEvent(CompDisplay * d, XEvent * event) if (ws->dndState == DnDDuring || ws->dndState == DnDStart) { if (ws->dndWindow) + { syncWindowPosition(ws->dndWindow); + (*s->windowUngrabNotify)(ws->dndWindow); + } ws->dndState = DnDNone; ws->dndWindow = NULL; @@ -1726,7 +1729,7 @@ static void wallDonePaintScreen(CompScreen * s) int dy = ws->newCursorY - ws->prevCursorY; if (ws->dndWindow && !ws->stickyWindow) - moveWindow(ws->dndWindow, dx, dy, TRUE, TRUE); + moveWindow(ws->dndWindow, dx, dy, TRUE, FALSE); ws->prevCursorX = ws->newCursorX; ws->prevCursorY = ws->newCursorY; @@ -1770,6 +1773,8 @@ static void wallDonePaintScreen(CompScreen * s) continue; ws->dndState = DnDDuring; ws->dndWindow = w; + (*w->screen->windowGrabNotify) (w, ws->newCursorX, ws->newCursorY, 0, + CompWindowGrabMoveMask | CompWindowGrabButtonMask); break; } } |