Created attachment 84079 [details] screenshot Apologies if this bug has been filed somewhere already. I have not posted here before so I may have missed it in my search of current bugs. $ kmag --version Qt: 4.8.4 KDE Development Platform: 4.11.2 KMagnifier: 1.0
*** This bug has been marked as a duplicate of bug 108068 ***
Sorry, but that bug has nothing to do with this one.
What do you kmag expect to do when you zoom in the part of the screen that is covered by kmag?
That is quite a big question. The question implies we know that the user wants to see the part of the screen blocked by kmag which is a fair assumption, since the tool should not block parts of the screen. However, I suspect we cannot assume that this part of the screen is what they user will want to magnify since kmag preferences themselves are likely to be too small to read for a low vision user to make out without the aid of a magnifier, but that is something which seems to be an issue in itself (i.e. a seperate bug to this one) Ultimately the recursive 'magnification' is not a duplicate of the bug though it may well be a symptom of it I think this because the magnified desktop view recursively shrinks inside itself which seems more due to the magnifiers inability to determine whether it is magnifying a view which has already been magnified or not (I suspect so anyway.) rather than because it struggles to magnify a part of the desktop blocked by itself. Hope that clarifies.
So what do you suggest to resolve this bug? Should it replace its own content with a static grey (window background) color in the zoomed view?
In case you can test a patch: diff --git a/kmagzoomview.cpp b/kmagzoomview.cpp index 25b0088..5f2209b 100644 --- a/kmagzoomview.cpp +++ b/kmagzoomview.cpp @@ -970,6 +970,15 @@ void KMagZoomView::grabFrame() if (m_colormode != 0) m_coloredPixmap = QPixmap::fromImage(ColorSim::recolor(m_coloredPixmap.toImage(), m_colormode)); + // erase background covered by kmag view + QPainter p(&m_coloredPixmap); + QRect viewRect = rect(); + viewRect.translate(mapTo(window(), QPoint(0, 0))); + viewRect.translate(-selRect.topLeft()); + viewRect.translate(window()->geometry().topLeft()); + p.fillRect(viewRect, palette().dark()); + p.end(); + QRect r = m_zoomMatrix.mapRect(m_coloredPixmap.rect()); // call repaint to display the newly grabbed image horizontalScrollBar()->setPageStep(r.width());
Patch has issues with pull-down and pop-up menus (or even other windows) that overlap the view; they will not be zoomed. This will be not easy to fix, do not expect me to do it. It is not really a bug to begin with. You can use the KWin compositor zoom effects, which avoids this and bug 108068, but they do not offer all options of KMag.
The reason I got here is I was looking for a way to zoom a program designed for much lower DPI than modern monitors have and don't know how to upscale themselves. Essentially I would run with the magnifier maximized and the window beneath it would appear at 2x zoom. It would work even better if I could stop mouse tracking. As far as I can tell, KWin zoom doesn't work either.
Joshua, please report the KWin zoom bugs separately. The KWin zoom effect works fine here.
OK it had something to do with desktop composting being off, in which case kwin zoom can't work. Bug will have to stand as only kmag can be used with failsafe drivers.
Git commit ec921f0a8b62660ec8c5ccdcd1d198b51272d2de by Christoph Feck. Committed on 03/10/2014 at 00:25. Pushed by cfeck into branch 'KDE/4.14'. Prevent recursive zooming FIXED-IN: 4.14.2 M +23 -0 kmagzoomview.cpp http://commits.kde.org/kmag/ec921f0a8b62660ec8c5ccdcd1d198b51272d2de
*** Bug 347875 has been marked as a duplicate of this bug. ***