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

Reply via email to