Hi Denis, Thank you very much for the detailed response. I tried the "most efficient" way to solve tablet scaling problem, i.e. xsetwacom set "device name" MapToOutput 500x600+400+300, and it worked out of the box!
I have one more question not directly related to this topic. Is there any way to adjust *"robustness" of shape recognition*? My "straight lines" are almost always get translated into "lines", it is a bit harder with "circles", and I only once was able to draw a square that was recognized as a "square". What are the rules that I have to follow to maximize quality of recognition? I couldn't find any parameter in configuration file, responsible for that, but I assume there must be something in the source code. -- Simon On Mon, Jun 8, 2015 at 2:30 PM, Denis Auroux <aur...@math.berkeley.edu> wrote: > Hi Simon, > > 1. The main problem is that GTK2 has no support for hotplugging input > devices while the application is running. The list returned by > gdk_devices_list() is constructed once at startup and never updated > subsequently. It still contains devices that have been unplugged, and does > not contain devices plugged after application startup. > > (Xournal has to work around this to avoid some crashes, see the call to > gdk_error_trap_push/pop() in emergency_enable_xinput() in src/xo-misc.c, > since otherwise re-enabling the dead devices causes the program to crash... > the latter function needed to work around more GTK2 issues, with a range of > GTK versions from 2.17 to somewhere before 2.24 if we leave the drawing > area we need to emergency disable all XInput devices so the interface won't > become unresponsive. In 2.24 this is only needed for text box edition and > not for other cases anymore. In short, it's a mess.) > > Hacking into the internal GTK2 data structures would be theoretically > possible but a huge mess to maintain in terms of compatibility. Without > GTK2 being aware of the devices, the events they generate can't be > processed the normal way either. So: in short, no hotplugging support as > long as we rely on GTK2. The GTK3 port of xournal that Daniel German has > been working on would hopefully fix this. > > However... > > 2. I'm pretty sure that the approach of emulating USB unplugs and > reassigning devices just so you can figure what their original geometry was > is not the best one -- especially if it causes device ids to change! For > example, in increasing order of efficiency: > > (a) your script could store in a temporary file, if not already found, the > geometry of the device when it is first called; this way, the next time you > run it, it could retrieve the original geometry from the existing file on > disk (instead of querying Area which is no longer the default value). > > (b) if your version of xsetwacom support it, > xsetwacom set "device name" ResetArea > will reset the Area parameter (assuming this is what you were modifying > and lost) without having to hotplug/unplug. > > (c) xsetwacom set "device name" MapToOutput 500x600+400+300 > maps the device area to a 500x600 window located at coordinates 400,300 > -- and can be run repeatedly safely as far as I can tell. This > is a much better way to rescale the device than to change the Area > parameter. > (Besides a window geometry you can also specify a display name, or > "desktop" for the whole desktop area, which has the effect of undoing a > previous MapToOutput command; but you can do successive MapToOutput > commands without undoing them in between.) > > Also: > > 3. In principle there's a GDK_MODE_WINDOW mode and a GDK_MODE_SCREEN mode > for GTK2 input devices. Xournal sets things to SCREEN (use the whole > screen) because of its tablet origins, but you could try seeing what > happens if you recompile the source code after changing GDK_MODE_SCREEN to > GDK_MODE_WINDOW in both places where it occurs. On my Tablet PC it doesn't > do the right thing at all (not to mention that just doing this would remap > all devices, not just the wacom tablet, to the window), so I assume > GDK_MODE_WINDOW is broken and the correct approaches are those in item 2 > above. > > Hope this helps. > Denis > -- Simon
------------------------------------------------------------------------------
_______________________________________________ Xournal-devel mailing list Xournal-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xournal-devel