Решил тут попробовать поюзать сабж. Ну, и для примера выбрал ни много ни мало - window manager:-)
Нашел в инете некий tinywm - пример примитивного wm, который, по идее, умеет двигать/ресайзить окошки.
Вот, собственно, код:
#include <X11/Xlib.h>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int main()
{
Window root;
XWindowAttributes attr;
XButtonEvent start;
XEvent ev;
Display * dpy = XOpenDisplay(0);
if(!dpy) return 1;
root = DefaultRootWindow(dpy);
XGrabKey(dpy, XKeysymToKeycode(dpy, XStringToKeysym("F1")), Mod1Mask, root, True, GrabModeAsync, GrabModeAsync);
XGrabButton(dpy, 1, Mod1Mask, root, True, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
XGrabButton(dpy, 3, Mod1Mask, root, True, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
for(;;)
{
XNextEvent(dpy, &ev);
if(ev.type == KeyPress && ev.xkey.subwindow != None)
XRaiseWindow(dpy, ev.xkey.subwindow);
else if(ev.type == ButtonPress && ev.xbutton.subwindow != None)
{
XGrabPointer(dpy, ev.xbutton.subwindow, True,
PointerMotionMask|ButtonReleaseMask, GrabModeAsync,
GrabModeAsync, None, None, CurrentTime);
XGetWindowAttributes(dpy, ev.xbutton.subwindow, &attr);
start = ev.xbutton;
}
else if(ev.type == MotionNotify)
{
int xdiff;
int ydiff;
while(XCheckTypedEvent(dpy, MotionNotify, &ev));
xdiff = ev.xbutton.x_root - start.x_root;
ydiff = ev.xbutton.y_root - start.y_root;
XMoveResizeWindow(dpy, ev.xmotion.window,
attr.x + (start.button==1 ? xdiff : 0),
attr.y + (start.button==1 ? ydiff : 0),
MAX(1, attr.width + (start.button==3 ? xdiff : 0)),
MAX(1, attr.height + (start.button==3 ? ydiff : 0)));
}
else if(ev.type == ButtonRelease)
XUngrabPointer(dpy, CurrentTime);
}
}
Компилю, запускаю - и никаких изменений, что до запуска, что после. В консоль ничего не валит.
Что я делаю не так? И что сделать, чтобы оно таки заработало?
PS: Пускаю это все в VirtualBox, guest os - debian etch.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от friday
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от friday
Ответ на:
комментарий
от friday
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от Valeriy_Onuchin
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум не получается в Xlib (2023)
- Форум Я, X11 и select (2009)
- Форум Выбор окна под указателем (2012)
- Форум Протоколирование сообщений иксов (2010)
- Форум Перехват событий от мышки (2014)
- Галерея Fender, проба пера (2015)
- Форум Gentoo. Проба пера (2011)
- Галерея KDE 4.4.4, проба пера ) (2010)
- Форум Проба пера. Не рифмуется. (2009)
- Форум Помощь в gluLookAt (2013)