Right now, zooming in with xfwm4 with Alt+[scroll wheel] causes the cursor size to remain unchanged. I know that you can resize the cursor globally, but a better feature would be to scale the cursor along with the rest of the screen. This iwould make the zooming feature truly useful as an accessibility feature, as right now I would either have to have the cursor be very big at all zoom levels or squint to see what I'm clicking on. I'd need the zoom feature because Iam visually impaired, so this enhancement would really help. Thanks!
+500. We need necessarily this feature too. PLZ!!! Thank you.
Marking this report major as it seems the purpose of the zoom feature would be partially defeated without the suggested course of action (and a11y support is rather major :-) ).
Created attachment 6102 Scale the cursor This is the patch file of the scale-cursor branch: http://git.xfce.org/users/peter/xfwm4/log/?h=scale-cursor
(In reply to Peter de Ridder from comment #3) > Created attachment 6102 > Scale the cursor > > This is the patch file of the scale-cursor branch: > http://git.xfce.org/users/peter/xfwm4/log/?h=scale-cursor Thanks Peter, that's awesome! A few comments: In zoom_timeout_cb () you seem to call XFixesGetCursorImage() every time, even if the cursor hasn;t changed, that doesn't seem right. The cursor should be kept and refreshed only when it actually changes. The location can be retrieved from motionNotify events (you need to set up an event handler for that in the compositor). + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + guint32 argb = cursor->pixels[y * width + x]; + + c.alpha = ((argb >> 16) & 0xff00) | ((argb >> 24) & 0xff); + c.red = ((argb >> 8) & 0xff00) | ((argb >> 16) & 0xff); + c.green = ((argb ) & 0xff00) | ((argb >> 8) & 0xff); + c.blue = ((argb << 8) & 0xff00) | ((argb ) & 0xff); + + XRenderFillRectangle (display_info->dpy, PictOpSrc, + picture, &c, x, y, 1, 1); + } + } + Err, why? Why looping on height/width filling 1x1 rectangles?
(In reply to Olivier Fourdan from comment #4) > In zoom_timeout_cb () you seem to call XFixesGetCursorImage() every time, > even if the cursor hasn;t changed, that doesn't seem right. This can be done with cursor notification indeed. > The cursor should be kept and refreshed only when it actually changes. But, we had the timer loop already, which was querying the mouse location so I replace the function. > The location can be retrieved from motionNotify events (you need to set up > an event handler for that in the compositor). That way we can drop the whole timer (I'm in favor). Does this work when any application takes a pointer grab? > Err, why? Why looping on height/width filling 1x1 rectangles? I hadn't found a way to load the image directly. I wanted to ask you, or anyone else, how to do that. The color information in an array of CARD32 with ARGB values.
(In reply to Peter de Ridder from comment #3) > Created attachment 6102 > Scale the cursor > > This is the patch file of the scale-cursor branch: > http://git.xfce.org/users/peter/xfwm4/log/?h=scale-cursor Wooooow! Wizard! It works within xfwm4-4.12.2. Great! Thank you very much.
pushed to git master along with some rework.