Страниц: 1
человек на internet tablet talk сделал прогу - при подключении Usb мыши появляется курсор.
http://www.internettablettalk.com/forum … hp?t=15111 
прикольно все-таки)
Неактивен
Интересная софтинка. Может кто ковырял ее исходник, особенно ту часть где нажатие стилуса эмулируется. Уж больно неудачный метод - тут работает там нет, а здесь иногда:)
Неактивен
У меня без всякой мыши есть курсор на таблетке ![]()
Неактивен
Курсор, кстати, и правда появился при установке пакета usbMouse_0.1.2_armel и не исчезал при отключении мыши.
При установке выполняется скрипт stopMouse.sh:
#!/bin/sh
#Script to abort mouse control when USB mouse is disconnected
if [ -e /home/user/.hadTransparentCursor ]; then
#restore symlink
needCursor=`cat /home/user/.hadTransparentCursor`
if [ "$needCursor" == "true" ]; then
ln -s /usr/share/user-icons /home/user/.icons
rm /home/user/.hadTransparentCursor
fi
fi
killall -9 mouseController.sh
killall -9 evrouter mouse_poll
lockFile="/tmp/.mouseController.lock"
if [ -e $lockFile ]; then
rm $lockFile
fiВ директории ~/.icons/defaults/ валяется конфиг, согласно которому система и показывает курсор.
Если ссылку ~/.icons снести курсор должен исчезнуть (после ребута).
А все-таки, может кто нибудь знает как программно сэмулировать тычок стилусом, а не мучаться с xlib?
Уж больно люто там(mouse_poll.c) понакруено:
if (event.code == BTN_LEFT){
bzero(&xevent,sizeof(XEvent));
xevent.type = roll_event(¤t);
xevent.xbutton.button = Button1;
xevent.xbutton.same_screen = True;
xevent.xbutton.time = CurrentTime;
XQueryPointer(display, root,
&xevent.xbutton.root, &xevent.xbutton.window,
&xevent.xbutton.x_root, &xevent.xbutton.y_root,
&xevent.xbutton.x, &xevent.xbutton.y,
&xevent.xbutton.state);
xevent.xbutton.subwindow = xevent.xbutton.window;
xevent.xbutton.state = Button1Mask;
while (xevent.xbutton.subwindow) {
xevent.xbutton.window = xevent.xbutton.subwindow;
XQueryPointer(display, xevent.xbutton.window,
&xevent.xbutton.root, &xevent.xbutton.subwindow,
&xevent.xbutton.x_root, &xevent.xbutton.y_root,
&xevent.xbutton.x, &xevent.xbutton.y,
&xevent.xbutton.state);
}
/* Send a ButtonPress and ButtonRelease (of button 1) to the middle screen window */
if( XSendEvent(display, xevent.xbutton.subwindow, True, ButtonPressMask, &xevent) == 0)
printf("Error: XSendEvent error on ButtonPress event\n");
XFlush(display);Принципа работы этого куска кода я так и не уловил. Точнее, я понял для чего нужна строка if( XSendEvent(display, xev... , но зачем тут все остальное и как оно работает?
Отредактированно ksv (12-12-2008 06:47:42)
Неактивен
Ну это ладно, так , скорее для общего развития. А главный вопрос вот в чем - наверняка ведь есть какое то событие, которое генерируется при нажатии кнопки мыши, а как его собственно сэмулировать. Потому что, насколько я понял, в тексте драйвера посылается событие конкретному окну( и не всегда тому, которому надо), а хотелось бы глобально вызывать событие нажатия клавиши, чтобы все кто это событие ловит могли на него отреагировать.
Хотя, судя по количеству ответов на прошлый мой пост, придется мне самому рыть glib ![]()
Неактивен
Может это подойдет.
http://www.oesf.org/forum/index.php?sho … ntry175322 
Когда-то с Зауром с этим развлекался ![]()
Неактивен
to svs57: Спасибо за инфу. Похоже это то что нужно, правда пока не протестил.
Неактивен
Я навешивал это на xbindkeys mouse 1 button + модификаторы.
Так эмулировал 2 и 3 кнопку мыши.
Есть в форуме hpc.ru по Заурусам и oesf.org в форуме по Дебиану
Неактивен
Страниц: 1