summaryrefslogtreecommitdiffstats
path: root/wm-addons/jgmenu/at-pointer.patch
diff options
context:
space:
mode:
Diffstat (limited to 'wm-addons/jgmenu/at-pointer.patch')
-rw-r--r--wm-addons/jgmenu/at-pointer.patch104
1 files changed, 0 insertions, 104 deletions
diff --git a/wm-addons/jgmenu/at-pointer.patch b/wm-addons/jgmenu/at-pointer.patch
deleted file mode 100644
index aed6c7f5a1..0000000000
--- a/wm-addons/jgmenu/at-pointer.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 1e0bae4e0bacbb0570ac2181055ce628748d35ee Mon Sep 17 00:00:00 2001
-From: Johan Malm <jgm323@gmail.com>
-Date: Thu, 17 May 2018 18:28:36 +0100
-Subject: [PATCH] multi-monitor: launch correctly 'at-pointer' (issue #56)
-
-Update screen dimensions before launching when in at_pointer mode in
-order to use the correct x0, y0, width and height.
----
- geometry.c | 12 ++++++++----
- geometry.h | 1 +
- jgmenu.c | 1 +
- x11-ui.c | 15 +++++++++++++++
- 4 files changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/geometry.c b/geometry.c
-index 55aa737..541ac2e 100644
---- a/geometry.c
-+++ b/geometry.c
-@@ -133,6 +133,13 @@ static void geo_update(void)
- update_sub_window();
- }
-
-+void geo_update_monitor_coords(void)
-+{
-+ ui_get_screen_res(&screen_x0, &screen_y0, &screen_width,
-+ &screen_height, config.monitor);
-+ geo_update();
-+}
-+
- void geo_init(void)
- {
- /*
-@@ -155,10 +162,7 @@ void geo_init(void)
- item_margin_x = 4;
- item_margin_y = 4;
-
-- ui_get_screen_res(&screen_x0, &screen_y0, &screen_width,
-- &screen_height, config.monitor);
--
-- geo_update();
-+ geo_update_monitor_coords();
- }
-
- int geo_get_item_coordinates(struct area *a)
-diff --git a/geometry.h b/geometry.h
-index f0647f9..ce57adf 100644
---- a/geometry.h
-+++ b/geometry.h
-@@ -47,6 +47,7 @@
- #include "x11-ui.h"
- #include "align.h"
-
-+void geo_update_monitor_coords(void);
- void geo_init(void);
- int geo_get_item_coordinates(struct area *a);
- struct point geo_get_max_itemarea_that_fits(void);
-diff --git a/jgmenu.c b/jgmenu.c
-index 7b75cec..9b41ea4 100644
---- a/jgmenu.c
-+++ b/jgmenu.c
-@@ -809,6 +809,7 @@ void launch_menu_at_pointer(void)
- struct point pos;
- struct area wa;
-
-+ geo_update_monitor_coords();
- XQueryPointer(ui->dpy, DefaultRootWindow(ui->dpy), &dw, &dw, &di, &di,
- &pos.x, &pos.y, &du);
-
-diff --git a/x11-ui.c b/x11-ui.c
-index edc6bde..3404f84 100644
---- a/x11-ui.c
-+++ b/x11-ui.c
-@@ -131,6 +131,17 @@ void ui_init(void)
- ui->root = RootWindow(ui->dpy, ui->screen);
- }
-
-+static void print_screen_info(int n, XineramaScreenInfo *screen_info)
-+{
-+ int i;
-+
-+ info("%d monitor(s) detected", n);
-+ for (i = 0; i < n; i++)
-+ printf(" - monitor-%d: x0=%d; y0=%d; w=%d; h=%d\n",
-+ i + 1, screen_info[i].x_org, screen_info[i].y_org,
-+ screen_info[i].width, screen_info[i].height);
-+}
-+
- #define INTERSECT(x, y, w, h, r) (MAX(0, MIN((x) + (w), (r).x_org + (r).width) - \
- MAX((x), (r).x_org)) &&\
- MAX(0, MIN((y) + (h), (r).y_org + (r).height) - \
-@@ -146,9 +157,13 @@ void ui_get_screen_res(int *x0, int *y0, int *width, int *height, int monitor)
- screen_info = XineramaQueryScreens(ui->dpy, &n);
- BUG_ON(!screen_info);
- XQueryPointer(ui->dpy, ui->root, &dw, &dw, &x, &y, &di, &di, &du);
-+ if (getenv("JGMENU_SCREEN_INFO"))
-+ print_screen_info(n, screen_info);
- for (i = 0; i < n; i++)
- if (INTERSECT(x, y, 1, 1, screen_info[i]))
- break;
-+
-+ /* handle user specified monitor (from config file) */
- if (monitor) {
- if (monitor > n)
- die("cannot connect to monitor '%d' (max %d)", monitor, n);