Own win method for mouse cursor location
This commit is contained in:
parent
b8fd923e74
commit
d81442f55d
10
commands.c
10
commands.c
|
@ -322,19 +322,17 @@ bool ci_scroll_to_edge(arg_t dir)
|
|||
|
||||
bool ci_drag(arg_t _)
|
||||
{
|
||||
int i, x, y;
|
||||
int x, y;
|
||||
float px, py;
|
||||
unsigned int ui;
|
||||
XEvent e;
|
||||
Window w;
|
||||
|
||||
if ((int)(img.w * img.zoom) < win.w && (int)(img.h * img.zoom) < win.h)
|
||||
return false;
|
||||
if (!XQueryPointer(win.env.dpy, win.xwin, &w, &w, &i, &i, &x, &y, &ui))
|
||||
if ((int)(img.w * img.zoom) <= win.w && (int)(img.h * img.zoom) <= win.h)
|
||||
return false;
|
||||
|
||||
win_set_cursor(&win, CURSOR_DRAG);
|
||||
|
||||
win_cursor_pos(&win, &x, &y);
|
||||
|
||||
for (;;) {
|
||||
px = MIN(MAX(0.0, x - win.w*0.1), win.w*0.8) / (win.w*0.8)
|
||||
* (win.w - img.w * img.zoom);
|
||||
|
|
11
window.c
11
window.c
|
@ -470,3 +470,14 @@ void win_set_cursor(win_t *win, cursor_t cursor)
|
|||
XFlush(win->env.dpy);
|
||||
}
|
||||
}
|
||||
|
||||
void win_cursor_pos(win_t *win, int *x, int *y)
|
||||
{
|
||||
int i;
|
||||
unsigned int ui;
|
||||
Window w;
|
||||
|
||||
if (!XQueryPointer(win->env.dpy, win->xwin, &w, &w, &i, &i, x, y, &ui))
|
||||
*x = *y = 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue