Try to fit as much as possible on screen
This commit is contained in:
parent
ae0e860105
commit
c98d76dccc
14
popup.c
14
popup.c
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
static Display *dpy;
|
static Display *dpy;
|
||||||
static Window window;
|
static Window window;
|
||||||
static int mon = -1, screen;
|
static int screen;
|
||||||
static int mw, mh;
|
static int mw, mh;
|
||||||
|
|
||||||
int exit_code = EXIT_DISMISS;
|
int exit_code = EXIT_DISMISS;
|
||||||
|
@ -176,10 +176,9 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
// TODO: Better error handling like dmenu
|
// TODO: Better error handling like dmenu
|
||||||
if ((info = XineramaQueryScreens(dpy, &n))){
|
if ((info = XineramaQueryScreens(dpy, &n))){
|
||||||
if (mon < 0)
|
for (i = 0; i < n; i++)
|
||||||
for (i = 0; i < n; i++)
|
if (INTERSECT(x, y, 1, 1, info[i]) != 0)
|
||||||
if (INTERSECT(x, y, 1, 1, info[i]) != 0)
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
int x_offset = info[i].x_org;
|
int x_offset = info[i].x_org;
|
||||||
int y_offset = info[i].y_org;
|
int y_offset = info[i].y_org;
|
||||||
|
@ -189,12 +188,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
// Correct on monitor boundary
|
// Correct on monitor boundary
|
||||||
if (y - y_offset + height > mh)
|
if (y - y_offset + height > mh)
|
||||||
y -= height;
|
y -= MAX((y-y_offset+height)-mh,0);
|
||||||
if (x - x_offset + width > mw)
|
if (x - x_offset + width > mw)
|
||||||
x -= width;
|
x -= MAX((x-x_offset+width)-mw, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
window = XCreateWindow(dpy, RootWindow(dpy, screen), x, y, width, height, border_size, DefaultDepth(dpy, screen),
|
window = XCreateWindow(dpy, RootWindow(dpy, screen), x, y, width, height, border_size, DefaultDepth(dpy, screen),
|
||||||
CopyFromParent, visual, CWOverrideRedirect | CWBackPixel | CWBorderPixel, &attributes);
|
CopyFromParent, visual, CWOverrideRedirect | CWBackPixel | CWBorderPixel, &attributes);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue