Fix kompmgr failing to move windows in opaque mode

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1252373 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 13 years ago
parent f69216c644
commit 9fe53a2a43

@ -117,6 +117,7 @@ typedef struct _win {
Pixmap pixmap; Pixmap pixmap;
#endif #endif
XWindowAttributes a; XWindowAttributes a;
XWindowAttributes a_prev;
#if CAN_DO_USABLE #if CAN_DO_USABLE
Bool usable; /* mapped and all damaged at one point */ Bool usable; /* mapped and all damaged at one point */
XRectangle damage_bounds; /* bounds of damage */ XRectangle damage_bounds; /* bounds of damage */
@ -1773,16 +1774,19 @@ map_win (Display *dpy, Window id, unsigned long sequence, Bool fade)
w->damaged = 0; w->damaged = 0;
#if WORK_AROUND_FGLRX #if WORK_AROUND_FGLRX
XserverRegion extents = win_extents (dpy, w); if (w->a.x != 0) {
XDamageNotifyEvent de; XserverRegion extents = win_extents (dpy, w);
de.drawable = w->id; XDamageNotifyEvent de;
de.area.x = 0; de.drawable = w->id;
de.area.y = 0; de.area.x = 0;
de.area.width = w->a.width + w->a.border_width * 2; de.area.y = 0;
de.area.height = w->a.height + w->a.border_width * 2; de.area.width = w->a.width + w->a.border_width * 2;
damage_win(dpy, &de); de.area.height = w->a.height + w->a.border_width * 2;
XFixesDestroyRegion (dpy, extents); damage_win(dpy, &de);
XFixesDestroyRegion (dpy, extents);
}
#endif #endif
w->a_prev = w->a;
if (fade && winTypeFade[w->windowType]) if (fade && winTypeFade[w->windowType])
set_fade (dpy, w, 0, get_opacity_prop(dpy, w, OPAQUE)*1.0/OPAQUE, fade_in_step, 0, False, True, True, True); set_fade (dpy, w, 0, get_opacity_prop(dpy, w, OPAQUE)*1.0/OPAQUE, fade_in_step, 0, False, True, True, True);
@ -2228,6 +2232,7 @@ add_win (Display *dpy, Window id, Window prev)
new->shape_bounds_prev = new->shape_bounds; new->shape_bounds_prev = new->shape_bounds;
new->shape_bounds.width = new->a.width; new->shape_bounds.width = new->a.width;
new->shape_bounds.height = new->a.height; new->shape_bounds.height = new->a.height;
new->a_prev = new->a;
new->damaged = 0; new->damaged = 0;
#if CAN_DO_USABLE #if CAN_DO_USABLE
new->usable = False; new->usable = False;

Loading…
Cancel
Save