Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 582481 Details for
Bug 819247
Xorg 1.11.4 scale and panning does'nt work
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Patch to fix problem
xorg-x11-server_panning-and-scalling-fix.patch (text/plain), 5.82 KB, created by
Egor Zakharov
on 2012-05-06 18:07:35 UTC
(
hide
)
Description:
Patch to fix problem
Filename:
MIME Type:
Creator:
Egor Zakharov
Created:
2012-05-06 18:07:35 UTC
Size:
5.82 KB
patch
obsolete
>diff -ru xorg-server-1.11.4.orig/randr/randr.c xorg-server-1.11.4/randr/randr.c >--- xorg-server-1.11.4.orig/randr/randr.c 2011-04-03 23:19:50.000000000 -0400 >+++ xorg-server-1.11.4/randr/randr.c 2012-01-31 14:51:35.000000000 -0500 >@@ -270,8 +270,6 @@ > > wrap (pScrPriv, pScreen, CloseScreen, RRCloseScreen); > >- pScreen->ConstrainCursorHarder = RRConstrainCursorHarder; >- > pScrPriv->numOutputs = 0; > pScrPriv->outputs = NULL; > pScrPriv->numCrtcs = 0; >diff -ru xorg-server-1.11.4.orig/randr/randrstr.h xorg-server-1.11.4/randr/randrstr.h >--- xorg-server-1.11.4.orig/randr/randrstr.h 2011-04-03 23:19:50.000000000 -0400 >+++ xorg-server-1.11.4/randr/randrstr.h 2012-01-31 14:51:35.000000000 -0500 >@@ -297,7 +297,6 @@ > int rate; > int size; > #endif >- Bool discontiguous; > } rrScrPrivRec, *rrScrPrivPtr; > > extern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec; >@@ -701,9 +700,6 @@ > int > ProcRRSetPanning (ClientPtr client); > >-void >-RRConstrainCursorHarder (DeviceIntPtr, ScreenPtr, int, int *, int *); >- > /* rrdispatch.c */ > extern _X_EXPORT Bool > RRClientKnowsRates (ClientPtr pClient); >diff -ru xorg-server-1.11.4.orig/randr/rrcrtc.c xorg-server-1.11.4/randr/rrcrtc.c >--- xorg-server-1.11.4.orig/randr/rrcrtc.c 2011-12-17 23:44:54.000000000 -0500 >+++ xorg-server-1.11.4/randr/rrcrtc.c 2012-01-31 14:51:46.000000000 -0500 >@@ -1,6 +1,5 @@ > /* > * Copyright © 2006 Keith Packard >- * Copyright 2010 Red Hat, Inc > * > * Permission to use, copy, modify, distribute, and sell this software and its > * documentation for any purpose is hereby granted without fee, provided that >@@ -23,7 +22,6 @@ > > #include "randrstr.h" > #include "swaprep.h" >-#include "mipointer.h" > > RESTYPE RRCrtcType; > >@@ -294,92 +292,6 @@ > return FALSE; > } > >-static void >-crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) >-{ >- *left = crtc->x; >- *top = crtc->y; >- >- switch (crtc->rotation) { >- case RR_Rotate_0: >- case RR_Rotate_180: >- default: >- *right = crtc->x + crtc->mode->mode.width; >- *bottom = crtc->y + crtc->mode->mode.height; >- return; >- case RR_Rotate_90: >- case RR_Rotate_270: >- *right = crtc->x + crtc->mode->mode.height; >- *bottom = crtc->y + crtc->mode->mode.width; >- return; >- } >-} >- >-/* overlapping counts as adjacent */ >-static Bool >-crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b) >-{ >- /* left, right, top, bottom... */ >- int al, ar, at, ab; >- int bl, br, bt, bb; >- int cl, cr, ct, cb; /* the overlap, if any */ >- >- crtc_bounds(a, &al, &ar, &at, &ab); >- crtc_bounds(b, &bl, &br, &bt, &bb); >- >- cl = max(al, bl); >- cr = min(ar, br); >- ct = max(at, bt); >- cb = min(ab, bb); >- >- return (cl <= cr) && (ct <= cb); >-} >- >-/* Depth-first search and mark all CRTCs reachable from cur */ >-static void >-mark_crtcs (rrScrPrivPtr pScrPriv, int *reachable, int cur) >-{ >- int i; >- reachable[cur] = TRUE; >- for (i = 0; i < pScrPriv->numCrtcs; ++i) { >- if (reachable[i] || !pScrPriv->crtcs[i]->mode) >- continue; >- if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i])) >- mark_crtcs(pScrPriv, reachable, i); >- } >-} >- >-static void >-RRComputeContiguity (ScreenPtr pScreen) >-{ >- rrScrPriv(pScreen); >- Bool discontiguous = TRUE; >- int i, n = pScrPriv->numCrtcs; >- >- int *reachable = calloc(n, sizeof(int)); >- if (!reachable) >- goto out; >- >- /* Find first enabled CRTC and start search for reachable CRTCs from it */ >- for (i = 0; i < n; ++i) { >- if (pScrPriv->crtcs[i]->mode) { >- mark_crtcs(pScrPriv, reachable, i); >- break; >- } >- } >- >- /* Check that all enabled CRTCs were marked as reachable */ >- for (i = 0; i < n; ++i) >- if (pScrPriv->crtcs[i]->mode && !reachable[i]) >- goto out; >- >- discontiguous = FALSE; >- >-out: >- free(reachable); >- pScrPriv->discontiguous = discontiguous; >-} >- > /* > * Request that the Crtc be reconfigured > */ >@@ -394,7 +306,6 @@ > { > ScreenPtr pScreen = crtc->pScreen; > Bool ret = FALSE; >- Bool recompute = TRUE; > rrScrPriv(pScreen); > > /* See if nothing changed */ >@@ -407,7 +318,6 @@ > !RRCrtcPendingProperties (crtc) && > !RRCrtcPendingTransform (crtc)) > { >- recompute = FALSE; > ret = TRUE; > } > else >@@ -471,10 +381,6 @@ > RRPostPendingProperties (outputs[o]); > } > } >- >- if (recompute) >- RRComputeContiguity(pScreen); >- > return ret; > } > >@@ -1443,55 +1349,3 @@ > free(reply); > return Success; > } >- >-void >-RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, int *y) >-{ >- rrScrPriv (pScreen); >- int i; >- >- /* intentional dead space -> let it float */ >- if (pScrPriv->discontiguous) >- return; >- >- /* if we're moving inside a crtc, we're fine */ >- for (i = 0; i < pScrPriv->numCrtcs; i++) { >- RRCrtcPtr crtc = pScrPriv->crtcs[i]; >- >- int left, right, top, bottom; >- >- if (!crtc->mode) >- continue; >- >- crtc_bounds(crtc, &left, &right, &top, &bottom); >- >- if ((*x >= left) && (*x < right) && (*y >= top) && (*y < bottom)) >- return; >- } >- >- /* if we're trying to escape, clamp to the CRTC we're coming from */ >- for (i = 0; i < pScrPriv->numCrtcs; i++) { >- RRCrtcPtr crtc = pScrPriv->crtcs[i]; >- int nx, ny; >- int left, right, top, bottom; >- >- if (!crtc->mode) >- continue; >- >- crtc_bounds(crtc, &left, &right, &top, &bottom); >- miPointerGetPosition(pDev, &nx, &ny); >- >- if ((nx >= left) && (nx < right) && (ny >= top) && (ny < bottom)) { >- if (*x < left) >- *x = left; >- if (*x >= right) >- *x = right - 1; >- if (*y < top) >- *y = top; >- if (*y >= bottom) >- *y = bottom - 1; >- >- return; >- } >- } >-}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 819247
:
582335
|
582336
|
582339
|
582340
|
582341
|
582342
|
582343
|
582344
| 582481