summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dwl.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/dwl.c b/dwl.c
index 4c045c2..f189139 100644
--- a/dwl.c
+++ b/dwl.c
@@ -280,7 +280,6 @@ static void rendermon(struct wl_listener *listener, void *data);
static void requeststartdrag(struct wl_listener *listener, void *data);
static void resize(Client *c, struct wlr_box geo, int interact);
static void run(char *startup_cmd);
-static Client *selclient(void);
static void setcursor(struct wl_listener *listener, void *data);
static void setfloating(Client *c, int floating);
static void setfullscreen(Client *c, int fullscreen);
@@ -1055,7 +1054,7 @@ destroydragicon(struct wl_listener *listener, void *data)
struct wlr_drag_icon *icon = data;
wlr_scene_node_destroy(icon->data);
/* Focus enter isn't sent during drag, so refocus the focused node. */
- focusclient(selclient(), 1);
+ focusclient(focustop(selmon), 1);
motionnotify(0);
}
@@ -1417,7 +1416,7 @@ keypressmod(struct wl_listener *listener, void *data)
void
killclient(const Arg *arg)
{
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
if (sel)
client_send_close(sel);
}
@@ -1940,15 +1939,6 @@ run(char *startup_cmd)
wl_display_run(dpy);
}
-Client *
-selclient(void)
-{
- Client *c = wl_container_of(fstack.next, c, flink);
- if (wl_list_empty(&fstack) || !VISIBLEON(c, selmon))
- return NULL;
- return c;
-}
-
void
setcursor(struct wl_listener *listener, void *data)
{
@@ -2292,7 +2282,7 @@ startdrag(struct wl_listener *listener, void *data)
void
tag(const Arg *arg)
{
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
if (sel && arg->ui & TAGMASK) {
sel->tags = arg->ui & TAGMASK;
focusclient(focustop(selmon), 1);
@@ -2304,7 +2294,7 @@ tag(const Arg *arg)
void
tagmon(const Arg *arg)
{
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
if (sel)
setmon(sel, dirtomon(arg->i), 0);
}
@@ -2345,7 +2335,7 @@ tile(Monitor *m)
void
togglefloating(const Arg *arg)
{
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
/* return if fullscreen */
if (sel && !sel->isfullscreen)
setfloating(sel, !sel->isfloating);
@@ -2354,7 +2344,7 @@ togglefloating(const Arg *arg)
void
togglefullscreen(const Arg *arg)
{
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
if (sel)
setfullscreen(sel, !sel->isfullscreen);
}
@@ -2363,7 +2353,7 @@ void
toggletag(const Arg *arg)
{
unsigned int newtags;
- Client *sel = selclient();
+ Client *sel = focustop(selmon);
if (!sel)
return;
newtags = sel->tags ^ (arg->ui & TAGMASK);
@@ -2409,7 +2399,7 @@ unmaplayersurfacenotify(struct wl_listener *listener, void *data)
arrangelayers(layersurface->mon);
if (layersurface->layer_surface->surface ==
seat->keyboard_state.focused_surface)
- focusclient(selclient(), 1);
+ focusclient(focustop(selmon), 1);
motionnotify(0);
}
@@ -2430,7 +2420,7 @@ unmapnotify(struct wl_listener *listener, void *data)
if (c == exclusive_focus)
exclusive_focus = NULL;
if (client_surface(c) == seat->keyboard_state.focused_surface)
- focusclient(selclient(), 1);
+ focusclient(focustop(selmon), 1);
} else {
wl_list_remove(&c->link);
setmon(c, NULL, 0);
@@ -2535,7 +2525,7 @@ urgent(struct wl_listener *listener, void *data)
struct wlr_xdg_activation_v1_request_activate_event *event = data;
Client *c = NULL;
int type = toplevel_from_wlr_surface(event->surface, &c, NULL);
- if (type >= 0 && type != LayerShell && c != selclient()) {
+ if (type >= 0 && type != LayerShell && c != focustop(selmon)) {
c->isurgent = 1;
printstatus();
}
@@ -2605,7 +2595,7 @@ xytonode(double x, double y, struct wlr_surface **psurface,
void
zoom(const Arg *arg)
{
- Client *c, *sel = selclient();
+ Client *c, *sel = focustop(selmon);
if (!sel || !selmon || !selmon->lt[selmon->sellt]->arrange || sel->isfloating)
return;
@@ -2699,7 +2689,7 @@ void
sethints(struct wl_listener *listener, void *data)
{
Client *c = wl_container_of(listener, c, set_hints);
- if (c != selclient()) {
+ if (c != focustop(selmon)) {
c->isurgent = xcb_icccm_wm_hints_get_urgency(c->surface.xwayland->hints);
printstatus();
}