[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RP] [PATCH 6/7] Simplify scanwins function
From: |
Mathieu OTHACEHE |
Subject: |
[RP] [PATCH 6/7] Simplify scanwins function |
Date: |
Wed, 7 Dec 2016 10:03:57 +0100 |
Use find_screen_by_attr function, remove screen argument and a useless
debug message.
---
src/main.c | 3 ++-
src/manage.c | 25 +++++++++++--------------
src/manage.h | 2 +-
3 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/src/main.c b/src/main.c
index ca5ebc8..cce4f94 100644
--- a/src/main.c
+++ b/src/main.c
@@ -743,9 +743,10 @@ main (int argc, char *argv[])
{
if (!rp_current_screen)
rp_current_screen = cur;
- scanwins (cur);
}
+ scanwins ();
+
if (read_startup_files (alt_rcfile) == -1)
return EXIT_FAILURE;
diff --git a/src/manage.c b/src/manage.c
index 8b62a30..2c12f09 100644
--- a/src/manage.c
+++ b/src/manage.c
@@ -447,37 +447,34 @@ unmanage (rp_window *w)
/* When starting up scan existing windows and start managing them. */
void
-scanwins(rp_screen *s)
+scanwins ()
{
rp_window *win;
XWindowAttributes attr;
unsigned int i, nwins;
Window dw1, dw2, *wins;
- XQueryTree(dpy, s->root, &dw1, &dw2, &wins, &nwins);
+ XQueryTree(dpy, rp_glob_screen.root, &dw1, &dw2, &wins, &nwins);
PRINT_DEBUG (("windows: %d\n", nwins));
for (i = 0; i < nwins; i++)
{
+ rp_screen *screen;
+
XGetWindowAttributes(dpy, wins[i], &attr);
if (is_rp_window_for_screen(wins[i])
|| attr.override_redirect == True
|| unmanaged_window (wins[i])) continue;
- {
- XWindowAttributes root_attr;
-
- XGetWindowAttributes (dpy, s->root, &root_attr);
- PRINT_DEBUG (("attrs: %d %d %d %d %d %d\n", root_attr.x, root_attr.y,
- s->left, s->top, s->left + s->width, s->top + s->height));}
- if (rp_have_xrandr
- && ((attr.x > s->left + s->width)
- || (attr.x < s->left)
- || (attr.y > s->top + s->height)
- || (attr.y < s->top))) continue;
+ screen = find_screen_by_attr (attr);
+ if (!screen)
+ {
+ PRINT_ERROR (("Unable to find a screen by window attributes\n"));
+ continue;
+ }
- win = add_to_window_list (s, wins[i]);
+ win = add_to_window_list (screen, wins[i]);
PRINT_DEBUG (("map_state: %s\n",
attr.map_state == IsViewable ? "IsViewable":
diff --git a/src/manage.h b/src/manage.h
index 6d5f1f5..22bb169 100644
--- a/src/manage.h
+++ b/src/manage.h
@@ -29,7 +29,7 @@ char *list_unmanaged_windows (void);
void add_unmanaged_window (char *name);
int unmanaged_window (Window w);
rp_screen* current_screen (void);
-void scanwins(rp_screen *s);
+void scanwins ();
void unmanage (rp_window *w);
int update_window_name (rp_window *win);
void update_normal_hints (rp_window *win);
--
2.10.0
- [RP] [PATCH 0/7] Add xrandr primary screen support, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 2/7] Move function declaration to the right header, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 1/7] Remove useless argument from is_rp_window_for_screen function, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 4/7] Store RootWindow in global_screen structure, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 5/7] Add a function to find a screen matching a given XWindowAttributes, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 3/7] Add primary screen detection, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 7/7] Select xrandr primary screen at startup if possible, Mathieu OTHACEHE, 2016/12/07
- [RP] [PATCH 6/7] Simplify scanwins function,
Mathieu OTHACEHE <=
- Re: [RP] [PATCH 0/7] Add xrandr primary screen support, Jeremie Courreges-Anglas, 2016/12/09