From 6fb2b13ec708b74d24377c96703793c1360d7659 Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Mon, 22 Apr 2013 13:46:22 +0100 Subject: [PATCH] Added sameWindowClass(). Avoid code duplication by moving check for windows of the same WM_CLASS to the new function sameWindowClass(). --- src/switchpanel.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/switchpanel.c b/src/switchpanel.c index 4ad9b8ce..cd24f7b1 100644 --- a/src/switchpanel.c +++ b/src/switchpanel.c @@ -95,6 +95,16 @@ static int canReceiveFocus(WWindow *wwin) return 1; } +static Bool sameWindowClass(WWindow *wwin, WWindow *curwin) +{ + if (!wwin->wm_class || !curwin->wm_class) + return False; + if (strcmp(wwin->wm_class, curwin->wm_class)) + return False; + + return True; +} + static void changeImage(WSwitchPanel *panel, int idecks, int selected) { WMFrame *icon = WMGetFromArray(panel->icons, idecks); @@ -338,12 +348,9 @@ static WMArray *makeWindowListArray(WWindow *curwin, int include_unmapped, Bool for (wwin = curwin; wwin; wwin = wwin->prev) { if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) && (wwin->flags.mapped || include_unmapped)) { - if (class_only) { - if (!wwin->wm_class || !curwin->wm_class) + if (class_only) + if (!sameWindowClass(wwin, curwin)) continue; - if (strcmp(wwin->wm_class, curwin->wm_class)) - continue; - } if (!WFLAGP(wwin, skip_switchpanel)) WMAddToArray(windows, wwin); @@ -357,13 +364,9 @@ static WMArray *makeWindowListArray(WWindow *curwin, int include_unmapped, Bool for (wwin = curwin; wwin && wwin != curwin; wwin = wwin->prev) { if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) && (wwin->flags.mapped || include_unmapped)) { - if (class_only) { - if (!wwin->wm_class || !curwin->wm_class) - continue; - if (strcmp(wwin->wm_class, curwin->wm_class)) + if (class_only) + if (!sameWindowClass(wwin, curwin)) continue; - } - if (!WFLAGP(wwin, skip_switchpanel)) WMAddToArray(windows, wwin); } -- 2.11.4.GIT