> On Sept. 23, 2014, 5:01 p.m., Thomas Lübking wrote: > > Qt cannot "distiguish" because there's nothing to distinguish - the driver > > generates synthetic wheel event for the inertia. > > You can btw. turn that <censored> off. > > > > Seems an issue with inertial scrolling on X11 as well > > https://bugs.freedesktop.org/show_bug.cgi?id=38909 > > Otherwise i'd have opted for "the driver shall please stop this when you > > hit a key". > > > > On a random note, I can't find that setting in systemsettings? > > If there's a config GUI for this, aligning to it seems reasonable, BUT does > > no way fix the actual issue w/ inertia (ie. "you don't have control over > > your input device") > > René J.V. Bertin wrote: > You may not believe it, but I actually prefer the UE with the feature on. > Probably because it saves me some movements, which is always good (less RSI). > > Yes, I imagine that the issue can occur on Linux as well if inertial > scrolling works the same way there. It just never bit me on Linux - and yet I > run that on underpowered machines ... > Might be a thought to define the modifier key to get wheelMouseZooms in > that case, or at least make that possible somewhere in systemsettings? > > You're right, I haven't been able to find the setting in systemsettings. > The setting *is* part of the standard settings, though, no idea why it > slipped through and remained a hidden setting. But because it's part of the > standard settings I went with aligning to it, instead of hacking in a new > switch as in Konsole. > NB, seems likely that Konsole offers its own switch because the authors > didn't go the length I did to find out about the one in `kdeglobalrc`? > > Thomas Lübking wrote: > UX isn't my concern - but doing that in the driver is simply idiotic. > (Sorry, but hey - Peter H. shares that opinion ;-) > What eg. happens when you reached the end of the document? The driver > keeps scrolling and you don't even notice that. > > Either the view provides inertic scrolling or you purchase a rodant that > can alter between swing and precise wheel (w/o trying to advertise here, eg. > Logitech M500 is an affordable device with this capability) > > Choosing another modifier won't help, but at best move the problem around > (ok, there's no META key on OSX, but it is indeed used for shortcuts on > linux/windows - often global ones. So instead of scaling the text, you end up > scaling the entire desktop ;-) > > While I personally don't use text scaling in kate (this way), if there's > no present UI for the global config, it can hardly be used and we can't (?) > introduce config GUI for the kate part in SC4, I assume (kate devs will know > better) > Also simply disabling a feature because it is *one* occasion of a driver > issue doesn't sound too reasonable - what if I'd in general like to scale the > text this way but am still annoyed by the driver behavior? > > One way to deal with this is to measure the time between the last > unmodified wheel event and the now modified wheel event. If that is too low > to be reasonably caused by a human being (ie. the scroll "started" unmodified > and suddenly a modifier kicks in) one could ignore the modifier. > That would however have to apply to all items. > Stupid question: how does (Qt)WebKit behave (eg. in qt-assistant?) in > this regard? > > René J.V. Bertin wrote: > I use Apple's Magic Trackpad, no spamming intended, but I wouldn't want > to change for anything else anymore... > > > ok, there's no META key on OSX > > There is. META is mapped to Ctrl by default on OS X (and CTRL to Command, > which is the real Meta key), but there is a setting to switch that back. I > presume the default is conceived to reflect the fact that OS X uses the > Command key in place of Ctrl for shortcuts. It apparently never occurred to > them to define a special code (`ACCEL`) for the standard accelerator "opcode" > ;) > > > Also simply disabling a feature because it is one occasion of a driver > issue doesn't sound too reasonable > > How do you think I found the global setting and how to read it out? It's > used exactly this way in KTextEdit (see `KTextEdit::wheelEvent`) which again > raises the question why the setting isn't exposed in systemsettings. > > > - what if I'd in general like to scale the text this way but am still > annoyed by the driver behavior? > > The only solution in that case would be to configure the feature to use > another key or key combination, one that works for you and your workflow and > doesn't risk to get triggered unexpectedly. > > > Stupid question: how does (Qt)WebKit behave (eg. in qt-assistant?) in > this regard? > > Not so stupid: Qt does exactly the same thing, and it doesn't appear to > be optional in any way there. This is probably why `KTextEdit` overrides the > `wheelEvent` it inherits from the parent Qt widget.
BTW: > What eg. happens when you reached the end of the document? The driver keeps > scrolling and you don't even notice that. But the view knows. On iOS and newer OS X versions it actually bounces when this happens. Which is why I learned that I prefer the inertial scrolling, because I tried switching it off to get rid of the bouncing and felt like handicapped. BTW, the OS X driver's inertial feature can be stopped very easily: swipe to get the view to scroll; place back 2 fingers and the scrolling stops at once. Exactly as it did with the big thumb trackball I had before. - René J.V. ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/120319/#review67302 ----------------------------------------------------------- On Sept. 22, 2014, 5:16 p.m., René J.V. Bertin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/120319/ > ----------------------------------------------------------- > > (Updated Sept. 22, 2014, 5:16 p.m.) > > > Review request for Kate, KDE Software on Mac OS X and kdelibs. > > > Repository: kate > > > Description > ------- > > KDE has a global text editor option that can be used to let Ctrl-MouseWheel > events zoom the text font being used. Kate does not respect this setting, > which is an omission that can lead to unexpected behaviour. > > On OS X, the feature works slightly differently in the sense that > `Qt::ControlModifier` does not designate the control key, but the command (?, > Apple) key. In addition, Qt's event handling does not appear to be able to > distinguish between scrolling under direct control, and residual scroll > movement that's due to simulated inertia. As a result, any attempt to use a > keyboard shortcut while a text view has not stopped moving completely will > lead to text zooming. > See https://bugreports.qt-project.org/browse/QTBUG-41475 . > > At first I thought to replace `Qt::ControlModifier` with `Qt::MetaModifier` > on OS X but that would probably require changes in many locations, and thus > best be preceded by a design decision if the standard shortcut modifier key > ought not be referenced via a symbolic platform constant not named after a > specific key, instead of being hardcoded (and using a key name). > > Therefore, I present a small patch that checks > `KGlobalSettings::wheelMouseZooms()` when the platform's `ControlModifier` is > held and a wheel event received. > > An alternative solution could introduce a Kate-specific setting (just like > Konsole has one), but that would require far more changes. > > > Diffs > ----- > > part/view/kateviewinternal.cpp a2906f3 > > Diff: https://git.reviewboard.kde.org/r/120319/diff/ > > > Testing > ------- > > On OS X against kdelibs 4.14.1 (git/kde4). The change consists of an > additional call to a standard kdelibs function which I do not expect to > introduce regressions on any platform. > > I looked at kate's git/master code, which lacks a `wheelEvent` handler > suggesting the feature works differently there. However, Qt 5.3.1 > applications (like Digia's own Qt Creator) still suffer from the phenomenon > described above, so a fix would be beneficial for KF5 too) > > > Thanks, > > René J.V. Bertin > >