GNOME Bugzilla – Bug 325019
Edge resistance is sure nice, but should be optional
Last modified: 2005-12-30 21:50:33 UTC
Edge resistance is a nice new feature, for people who love it. I don't, therefore I made it optional. Will attach a patch.
Created attachment 56402 [details] [review] Making edge resistance optional
Created attachment 56403 [details] [review] Making edge resistance optional
+ gconf_client_notify_add (default_client, KEY_GNOME_ACCESSIBILITY, + change_notify, + NULL, + NULL, + &err); Why does the patch do that ?
Oh, that should be KEY_EDGE_RESISTANCE. Strange ...
Created attachment 56410 [details] [review] Fixes the KEY_EDGE_RESISTANCE issue
Created attachment 56411 [details] [review] Fixes typo
I can only tell the window-edge resistance even exists if I try very very hard, it's so subtle... I can fully imagine not even noticing it if I didn't know about it in advance. Are you really objecting to that, or to the screen edge resistance (which is quite possibly too high, at least in metacity-2.13.5)
Yes, only screen edge resistance is problematic. The window edge resistance is very subtle.
<yet more verbose ramblings> I'm beginning to believe the screen edge resistance is much like spatilus (or whatever spatial nautilus is called). There's a large number of people who love the new stuff, and a large number of people who hate it. All you people who dislike the new screen edge resistance are on the wrong side ;-) Hehehehe. Anyway, I'm still fairly convinced that having a _large_ screen edge resistance as currently exists is better for new users as I feel that throwing windows to the sides of the screen is much more useful for beginners. Quickly throwing windows offscreen does allow for an efficiency of a much different type for users familiar with the old broken behavior, but that's mostly a (mis)learned behavior that could be retrained in people... Now, despite all that, being one of those that hates spatilus I fully understand there being value in not changing things too rapidly and allowing people to make use of their (mis)training. So, things are kind of a toss-up. </ramblings> Anyway, Havoc's question is spot on; why disable everything? Which parts actually bug you, Philip? Patch isn't relevant until that's answered. Also, in terms of disabling the feature, you've only disabled edge resistance for mouse movement actions. If it's going to be disabled, it also needs to be disabled for mouse resize actions, keyboard move actions, and keyboard resize actions. Marking as a duplicate of bug 321905; since that's the big meta-bug where we're tracking all this stuff. *** This bug has been marked as a duplicate of 321905 ***
Note that the screen edge edge resistance does not apply to resizing. When resizing it's already impossible to resize further than your screen width/height. Metacity does not allow me to grow my windows larger than the screen width/height. Anyway, working on a patch that also adds a schema to GConf. Will be ready in a few minutes . . .
Created attachment 56436 [details] [review] Adds a schema, also disables the edge resistance in update_resize This version adds a schema. If the gconf preference is set to false it disables the edge resistance in update_move and update_resize of window.c (disabled at the highest level). Another idea would be to create a little bit more powerfull preference that would allow a "geek" to set all the various edge resistance parameters in apply_edge_resistance of edge-resistance.c. It would introduce a lot more gconf preference values and schema's. So for now I opt for this high level disabling of everything, and using good values for people who want it (and by default enable it).
Oh damn, that attachment also includes this little change: -#include <pango/pangox.h> +#include <pango/pango.h> I had to do that to get metacity compiling. I forgot to remove it while creating the patch. Please ignore it, it doesn't belong to the patch.
Little idea from IRC: pvanhoof> pbor, About the edge resistance stuff. To get it fully configurable, one would have to add a lot more than one option to the gconf-schema's. Which is most likely going to confuse even the very brave geeks pvanhoof> Perhaps a better idea would be to have "a few" predefined settings. "Completely off", "Less snappy", "Normal", "Very snappy" pvanhoof> or replace snappy with the correct english word for that pbor> pvanhoof: well, may be an idea pvanhoof> And do it in the mouse preferences window pvanhoof> just like the mouse movement settings pbor> pvanhoof: I'd just leave the numeric value in GConf and is a ui is ever added it can just show a few predefined values
Well, I really simply want to disable it. This resistance stuff is causing repetitive strain injury :D. I need more mouse movements to get my windows correctly aligned on my screens. Perhaps I should, indeed, learn to use my keyboard more ;-).
(In reply to comment #10) > Note that the screen edge edge resistance does not apply to resizing. When > resizing it's already impossible to resize further than your screen > width/height. Metacity does not allow me to grow my windows larger than the > screen width/height. You are right that Metacity doesn't allow your window to be larger than the screen width/height, but that's not really relevant. For example, the left side of the window may be 3/4 of the way to the right side of the screen and the right side of the window could be almost touching the right side of the screen. Also, the screen resistance most certainly *does* apply to resizing. While you may not be aware of how to resize the window with the mouse other than with the window frame, others are aware of the ability and make heavy use of it.
If the screen edge resistance is what bothers you (as you claimed in bug 321905 comment 25; and note that it's also the part that bothers some other people), then the patch should just set the timeout resistances to 0 in metacity/src/edge-resistance.c:apply_edge_resistance() (and maybe also lowering the pixel thresholds, though I very doubt it affects much even for those that dislike the timeout resistance) instead of disabling everything.
I just commented on this at Ubuntu's forum http://www.ubuntuforums.org/showthread.php?p=614782&posted=1#post614782 --I use dual monitors on my system & find this feature annoying at best--I would like to see a variable timing spec (gconf?) so advanced users could modify it to their taste.