aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calmwm.c60
-rw-r--r--calmwm.h3
-rw-r--r--screen.c56
3 files changed, 59 insertions, 60 deletions
diff --git a/calmwm.c b/calmwm.c
index 6d93436..b18711f 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: calmwm.c,v 1.67 2012/11/09 03:52:02 okan Exp $
+ * $OpenBSD: calmwm.c,v 1.68 2012/11/29 03:54:46 okan Exp $
*/
#include <sys/param.h>
@@ -54,7 +54,6 @@ static void dpy_init(const char *);
static int x_errorhandler(Display *, XErrorEvent *);
static int x_wmerrorhandler(Display *, XErrorEvent *);
static void x_setup(void);
-static void x_setupscreen(struct screen_ctx *, u_int);
static void x_teardown(void);
int
@@ -135,7 +134,7 @@ x_setup(void)
for (i = 0; i < ScreenCount(X_Dpy); i++) {
sc = xcalloc(1, sizeof(*sc));
- x_setupscreen(sc, i);
+ screen_init(sc, i);
TAILQ_INSERT_TAIL(&Screenq, sc, entry);
}
@@ -158,61 +157,6 @@ x_teardown(void)
XCloseDisplay(X_Dpy);
}
-static void
-x_setupscreen(struct screen_ctx *sc, u_int which)
-{
- Window *wins, w0, w1;
- XWindowAttributes winattr;
- XSetWindowAttributes rootattr;
- u_int nwins, i;
-
- sc->which = which;
- sc->rootwin = RootWindow(X_Dpy, sc->which);
-
- xu_ewmh_net_supported(sc);
- xu_ewmh_net_supported_wm_check(sc);
-
- conf_gap(&Conf, sc);
-
- screen_update_geometry(sc);
-
- conf_color(&Conf, sc);
-
- group_init(sc);
- conf_font(&Conf, sc);
-
- TAILQ_INIT(&sc->mruq);
-
- /* Initialize menu window. */
- menu_init(sc);
-
- rootattr.cursor = Cursor_normal;
- rootattr.event_mask = CHILDMASK|PropertyChangeMask|EnterWindowMask|
- LeaveWindowMask|ColormapChangeMask|BUTTONMASK;
-
- XChangeWindowAttributes(X_Dpy, sc->rootwin,
- CWEventMask|CWCursor, &rootattr);
-
- /* Deal with existing clients. */
- XQueryTree(X_Dpy, sc->rootwin, &w0, &w1, &wins, &nwins);
-
- for (i = 0; i < nwins; i++) {
- XGetWindowAttributes(X_Dpy, wins[i], &winattr);
- if (winattr.override_redirect ||
- winattr.map_state != IsViewable)
- continue;
- (void)client_new(wins[i], sc, winattr.map_state != IsUnmapped);
- }
- XFree(wins);
-
- screen_updatestackingorder(sc);
-
- if (HasRandr)
- XRRSelectInput(X_Dpy, sc->rootwin, RRScreenChangeNotifyMask);
-
- XSync(X_Dpy, False);
-}
-
static int
x_wmerrorhandler(Display *dpy, XErrorEvent *e)
{
diff --git a/calmwm.h b/calmwm.h
index 8b0c906..c7261e6 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: calmwm.h,v 1.162 2012/11/29 03:34:19 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.163 2012/11/29 03:54:46 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -369,6 +369,7 @@ void search_print_client(struct menu *, int);
XineramaScreenInfo *screen_find_xinerama(struct screen_ctx *, int, int);
struct screen_ctx *screen_fromroot(Window);
+void screen_init(struct screen_ctx *, u_int);
void screen_update_geometry(struct screen_ctx *);
void screen_updatestackingorder(struct screen_ctx *);
diff --git a/screen.c b/screen.c
index 85bcb13..bc37105 100644
--- a/screen.c
+++ b/screen.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: screen.c,v 1.37 2012/11/09 03:52:02 okan Exp $
+ * $OpenBSD: screen.c,v 1.38 2012/11/29 03:54:46 okan Exp $
*/
#include <sys/param.h>
@@ -32,6 +32,60 @@
static void screen_init_xinerama(struct screen_ctx *);
+void
+screen_init(struct screen_ctx *sc, u_int which)
+{
+ Window *wins, w0, w1;
+ XWindowAttributes winattr;
+ XSetWindowAttributes rootattr;
+ u_int nwins, i;
+
+ sc->which = which;
+ sc->rootwin = RootWindow(X_Dpy, sc->which);
+
+ xu_ewmh_net_supported(sc);
+ xu_ewmh_net_supported_wm_check(sc);
+
+ conf_gap(&Conf, sc);
+
+ screen_update_geometry(sc);
+
+ conf_color(&Conf, sc);
+
+ group_init(sc);
+ conf_font(&Conf, sc);
+
+ TAILQ_INIT(&sc->mruq);
+
+ menu_init(sc);
+
+ rootattr.cursor = Cursor_normal;
+ rootattr.event_mask = CHILDMASK|PropertyChangeMask|EnterWindowMask|
+ LeaveWindowMask|ColormapChangeMask|BUTTONMASK;
+
+ XChangeWindowAttributes(X_Dpy, sc->rootwin,
+ CWEventMask|CWCursor, &rootattr);
+
+ /* Deal with existing clients. */
+ XQueryTree(X_Dpy, sc->rootwin, &w0, &w1, &wins, &nwins);
+
+ for (i = 0; i < nwins; i++) {
+ XGetWindowAttributes(X_Dpy, wins[i], &winattr);
+ if (winattr.override_redirect ||
+ winattr.map_state != IsViewable)
+ continue;
+ (void)client_new(wins[i], sc, winattr.map_state != IsUnmapped);
+ }
+ XFree(wins);
+
+ screen_updatestackingorder(sc);
+
+ if (HasRandr)
+ XRRSelectInput(X_Dpy, sc->rootwin, RRScreenChangeNotifyMask);
+
+ XSync(X_Dpy, False);
+}
+
struct screen_ctx *
screen_fromroot(Window rootwin)
{