1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

Added sameWindowClass().

Avoid code duplication by moving check for windows of the same WM_CLASS
to the new function sameWindowClass().
This commit is contained in:
Iain Patterson
2013-04-22 13:46:22 +01:00
committed by Carlos R. Mafra
parent 90675a6f04
commit 6fb2b13ec7

View File

@@ -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)
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);
}