diff options
| author | Guido Cella <guidocella91@gmail.com> | 2020-09-11 14:24:39 +0200 | 
|---|---|---|
| committer | Guido Cella <guidocella91@gmail.com> | 2020-09-11 14:52:59 +0200 | 
| commit | 0bb25a73ecfbf4c8f613e1a1b96be5ea683bf12a (patch) | |
| tree | 3f6153af444d3c8920a9589163b8c003f7107239 | |
| parent | e4d58c39e0b9e952e31661fc2a9d6e043928b729 (diff) | |
extract function and comment it
| -rw-r--r-- | dwl.c | 29 | 
1 files changed, 18 insertions, 11 deletions
| @@ -266,6 +266,7 @@ static void toggleview(const Arg *arg);  static void unmaplayersurface(LayerSurface *layersurface);  static void unmaplayersurfacenotify(struct wl_listener *listener, void *data);  static void unmapnotify(struct wl_listener *listener, void *data); +static void updatemons();  static void view(const Arg *arg);  static Client *xytoclient(double x, double y);  static struct wlr_surface *xytolayersurface(struct wl_list *layer_surfaces, @@ -691,11 +692,7 @@ cleanupmon(struct wl_listener *listener, void *data)  	wl_list_remove(&m->destroy.link);  	free(m); -	wl_list_for_each(m, &mons, link) { -		m->m = m->w = *wlr_output_layout_get_box(output_layout, m->wlr_output); -		arrangelayers(m); -		arrange(m); -	} +	updatemons();  }  void @@ -822,12 +819,8 @@ createmon(struct wl_listener *listener, void *data)  	for (size_t i = 0; i < nlayers; ++i)  		wl_list_init(&m->layers[i]); -	/* Get effective monitor geometry to use for window area */ -	wl_list_for_each(m, &mons, link) { -		m->m = m->w = *wlr_output_layout_get_box(output_layout, m->wlr_output); -		arrangelayers(m); -		arrange(m); -	} +	/* When adding monitors, the geometries of all monitors must be updated */ +	updatemons();  }  void @@ -2129,6 +2122,20 @@ unmapnotify(struct wl_listener *listener, void *data)  }  void +updatemons() +{ +	Monitor *m; +	wl_list_for_each(m, &mons, link) { +		/* Get the effective monitor geometry to use for surfaces */ +		m->m = m->w = *wlr_output_layout_get_box(output_layout, m->wlr_output); +		/* Calculate the effective monitor geometry to use for clients */ +		arrangelayers(m); +		/* Don't move clients to the left output when plugging monitors */ +		arrange(m); +	} +} + +void  view(const Arg *arg)  {  	Client *sel = selclient(); | 
