summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaniac <maniac@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2007-02-15 17:44:43 +0000
committermaniac <maniac@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2007-02-15 17:44:43 +0000
commit818c263a808e01f1d534aa1abdadda261e1c1457 (patch)
tree3b59e2243920af670333be24d0acd6c672a94b2f
parent8c8fbed4f2bd33ffadcecafe7037cef4d3ae62f1 (diff)
downloadmarex-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.c2
-rw-r--r--beryl-plugins/src/wall.c7
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;
}
}