| Summary: | Implement switch_mode for devices with absolute axies | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | xorg | Reporter: | Andrej Gelenberg <andrej.gelenberg> | ||||||||||
| Component: | Input/evdev | Assignee: | Peter Hutterer <peter.hutterer> | ||||||||||
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||||||
| Severity: | normal | ||||||||||||
| Priority: | medium | Keywords: | patch | ||||||||||
| Version: | unspecified | ||||||||||||
| Hardware: | Other | ||||||||||||
| OS: | All | ||||||||||||
| Whiteboard: | |||||||||||||
| i915 platform: | i915 features: | ||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Andrej Gelenberg
2010-01-06 07:45:45 UTC
Thanks for the patch, a few comments:
- coding style is incoherent with the rest of the driver. 4 spaces indent,
no space after (, etc.
- 2 typos in the second hunk
- don't bother including XI2.h, just XI.h is enough. If that hunk is added,
inputproto is required in configure.ac (see 6f4634111a83808bc52e7e53733cf2d3bab0cccd)
- the matching man page entry is missing from the patch
- please resubmit as signed-off, git formatted patch with a descriptive
commit message about how the patch works.
+#define EVDEV_RELATIVE_MODE (1 << 11) /* Force absplute events, if
device suporrt it */
huh? RELATIVE_MODE forces absolute events? this comment is confusing.
+ xf86Msg(X_INFO, "%s: force absolute mode\n", pInfo->name);
not really necessary, we expect the device to do what we tell it to, no
extra log message is necessary here. same for the relative one of course.
+ mode = xf86SetStrOption(pInfo->options, "Mode", "auto");
please don't add an "auto" mode. auto should be implicit if the option isn't
set.
+ if ( !strcmp("absolute", mode) )
+ {
+ xf86Msg(X_INFO, "%s: force absolute mode\n", pInfo->name);
+ pEvdev->flags &= ~EVDEV_RELATIVE_MODE;
+ }
strcasecmp, and again here the output is superfluous. the server will output
the option in the log anyway if it's given, so that just duplicates it.
Created attachment 32496 [details] [review] Implements switch_mode for devices with absolute axis I hope it's better now. Thanks for the update, patch isn't quite there yet but it looks better already. There's a bunch of minor issues with the coding style, nothing with the approach itself.
- the new requires for inputproto should be mentioned in the commit message
- typo "derfault" in the man page.
- man page: "for touchpad" should be "for touchpads"
- man page: "sets the mode" -> "Sets the mode"
- man page: no comma in the first sentence, should explicitly mention that the option has no effect on devices without absolute axes.
- man page and EVDEV_RELATIVE_MODE define -> s/axis/axes/ when speaking of plural
- EvdevSwitchMode: squash pInfo and pEvdev assignment into the declaration, no need for the separate lines here
- EvdevSwitchMode: no spaces after/before () in if conditions
- as I said previously, please remove the xf86Msg, it's just spamming the log
- EvdevSwitchMode: don't return BadMatch, this function should return BadMode (see the XSetDeviceMode man page)
- EvdevAddAbsClass: no {} for single-line blocks
- EvdevAddAbsClass: else on same line as closing }
- EvdevAddAbsClass: no spaces in if condition
- EvdevAddAbsClass: tabs/spaces mixup in else block
- EvdevAddAbsClass: period after "using default" in the log message
- commit message should be present tense "Implement" instead of "Implements"
@@ -567,7 +599,6 @@ EvdevProcessKeyEvent(InputInfoPtr pInfo, struct input_event *ev)
break;
~
case BTN_TOUCH:
- pEvdev->tool = value ? ev->code : 0;
if (!(pEvdev->flags & (EVDEV_TOUCHSCREEN | EVDEV_TABLET)))
break;
This isn't supposed to be part of this patch, is it? It doesn't affect the mode handling at all.
Created attachment 32551 [details] [review] [PATCH] Implement XSetDeviceMode request handler (In reply to comment #4) > Created an attachment (id=32551) [details] > [PATCH] Implement XSetDeviceMode request handler > thank you again. Two more changes, then it's ready. - skip the block of returning BadMatch. BadMatch may only be returned if the device has no valuators and that's checked in the server. - no spaces before/after "mode" in the switch statement. FYI, see also this thread on the list, turns out the SwitchMode error reporting is buggy in the server. http://lists.freedesktop.org/archives/xorg-devel/2010-January/004864.html Created attachment 32583 [details] [review] Implement XSetDeviceMode request handler sorry for the delay. Pushed as e81cd935cfff18d3c387eed3e8083977c19c92f0. Thanks for your patience. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.