Fix pseudotrans updates.

SVN revision: 14675
This commit is contained in:
Kim Woelders 2005-05-08 20:26:49 +00:00
parent 129d6ab539
commit 11be6960a2
4 changed files with 30 additions and 10 deletions

View File

@ -82,7 +82,7 @@ BorderWinpartITclassApply(EWin * ewin, int i, int force)
return;
#if 0 /* Debug */
Eprintf("BorderWinpartITclassApply: %#lx %#lx %2d %d %s\n",
Eprintf("BorderWpITApply: %#lx %#lx %2d %d %s\n",
EwinGetClientWin(ewin), EoGetWin(ewin), i, force, EwinGetName(ewin));
#endif
@ -163,6 +163,12 @@ EwinBorderDraw(EWin * ewin, int do_shape, int do_paint, int queue_off)
if (!ewin)
return;
#if 0 /* Debug */
Eprintf("EwinBorderDraw %#lx %s d=%d s=%d p=%d q=%d\n",
EwinGetClientWin(ewin), EoGetName(ewin), EoGetDesk(ewin), do_shape,
do_paint, queue_off);
#endif
pq = Mode.queue_up;
if (queue_off)
Mode.queue_up = 0;

View File

@ -461,7 +461,8 @@ doMoveResizeEwin(EWin * ewin, int desk, int x, int y, int w, int h, int flags)
EwinDetermineArea(ewin);
if ((Mode.mode == MODE_NONE) /* && (move || resize) */ )
if ((Mode.mode == MODE_NONE ||
Mode.mode == MODE_DESKSWITCH) /* && (move || resize) */ )
{
if (TransparencyEnabled())
EwinBorderDraw(ewin, resize, 1, 0); /* Update the border */

View File

@ -1614,11 +1614,13 @@ EwinsEventsConfigure(int mode)
EwinEventsConfigure(lst[i], mode);
#if 0 /* FIXME - Remove? (obsoletes EwinRefresh) */
/* This is a hack. Maybe we should do something with expose events. */
if (mode)
if (Mode.mode == MODE_DESKSWITCH && EoIsSticky(ewin) &&
EoIsShown(ewin))
EwinRefresh(ewin);
#endif
}
}

View File

@ -759,18 +759,27 @@ ImagestateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
if (trans)
{
Window cr;
Pixmap bg;
Window cr, dummy;
Drawable bg;
int xx, yy;
XTranslateCoordinates(disp, win, VRoot.win, 0, 0, &xx, &yy, &cr);
/* Eprintf("ImagestateMakePmapMask %#lx %d %d %d %d\n", win, xx, yy, w, h); */
bg = BackgroundGetPixmap(DeskGetBackground(DesksGetCurrent()));
if ((flags & ICLASS_ATTR_GLASS) || (bg == None))
{
cr = VRoot.win;
bg = VRoot.win;
}
else
{
cr = DeskGetCurrentRoot();
}
XTranslateCoordinates(disp, win, cr, 0, 0, &xx, &yy, &dummy);
#if 0
Eprintf("ImagestateMakePmapMask %#lx %d %d %d %d\n", win, xx, yy, w, h);
#endif
if (xx < VRoot.w && yy < VRoot.h && xx + w >= 0 && yy + h >= 0)
{
/* Create the background base image */
bg = BackgroundGetPixmap(DeskGetBackground(DesksGetCurrent()));
if ((flags & ICLASS_ATTR_GLASS) || (bg == None))
bg = VRoot.win;
imlib_context_set_drawable(bg);
ii = imlib_create_image_from_drawable(0, xx, yy, w, h,
!EServerIsGrabbed());
@ -780,7 +789,9 @@ ImagestateMakePmapMask(ImageState * is, Drawable win, PmapMask * pmm,
}
else
{
/* Eprintf("ImagestateMakePmapMask %#lx %d %d\n", win, w, h); */
#if 0
Eprintf("ImagestateMakePmapMask %#lx %d %d\n", win, w, h);
#endif
}
#else
trans = 0;