mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
wmaker: removed variable 'done' to prepare return status in 'wNETWMProcessClientMessage'
Using a variable to store the return value that will be used later is not a good idea, because it forces to track everywhere in the function when needing to work on the function. This patch removes the variables and places explicit return if each case, so on first look it is clear where the code stops. It also fixes a bug where the function would handle an event but still returns False (meaning the event was not treated), whose root cause was coming from the complexity brought by the variable. Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
committed by
Carlos R. Mafra
parent
243a1924fa
commit
3dea732ccb
27
src/wmspec.c
27
src/wmspec.c
@@ -1472,7 +1472,6 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
{
|
{
|
||||||
WScreen *scr;
|
WScreen *scr;
|
||||||
WWindow *wwin;
|
WWindow *wwin;
|
||||||
Bool done = True;
|
|
||||||
|
|
||||||
#ifdef DEBUG_WMSPEC
|
#ifdef DEBUG_WMSPEC
|
||||||
wmessage("processClientMessage type %s", XGetAtomName(dpy, event->message_type));
|
wmessage("processClientMessage type %s", XGetAtomName(dpy, event->message_type));
|
||||||
@@ -1483,6 +1482,8 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
/* generic client messages */
|
/* generic client messages */
|
||||||
if (event->message_type == net_current_desktop) {
|
if (event->message_type == net_current_desktop) {
|
||||||
wWorkspaceChange(scr, event->data.l[0]);
|
wWorkspaceChange(scr, event->data.l[0]);
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_number_of_desktops) {
|
} else if (event->message_type == net_number_of_desktops) {
|
||||||
long value;
|
long value;
|
||||||
|
|
||||||
@@ -1503,17 +1504,17 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
if (rebuild)
|
if (rebuild)
|
||||||
updateWorkspaceCount(scr);
|
updateWorkspaceCount(scr);
|
||||||
}
|
}
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_showing_desktop) {
|
} else if (event->message_type == net_showing_desktop) {
|
||||||
wNETWMShowingDesktop(scr, event->data.l[0]);
|
wNETWMShowingDesktop(scr, event->data.l[0]);
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_desktop_names) {
|
} else if (event->message_type == net_desktop_names) {
|
||||||
handleDesktopNames(scr);
|
handleDesktopNames(scr);
|
||||||
} else {
|
|
||||||
done = False;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (done)
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* window specific client messages */
|
/* window specific client messages */
|
||||||
|
|
||||||
@@ -1535,12 +1536,16 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
wNETWMShowingDesktop(scr, False);
|
wNETWMShowingDesktop(scr, False);
|
||||||
wMakeWindowVisible(wwin);
|
wMakeWindowVisible(wwin);
|
||||||
}
|
}
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_close_window) {
|
} else if (event->message_type == net_close_window) {
|
||||||
if (!WFLAGP(wwin, no_closable)) {
|
if (!WFLAGP(wwin, no_closable)) {
|
||||||
if (wwin->protocols.DELETE_WINDOW)
|
if (wwin->protocols.DELETE_WINDOW)
|
||||||
wClientSendProtocol(wwin, w_global.atom.wm.delete_window,
|
wClientSendProtocol(wwin, w_global.atom.wm.delete_window,
|
||||||
w_global.timestamp.last_event);
|
w_global.timestamp.last_event);
|
||||||
}
|
}
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_wm_state) {
|
} else if (event->message_type == net_wm_state) {
|
||||||
int maximized = wwin->flags.maximized;
|
int maximized = wwin->flags.maximized;
|
||||||
long set = event->data.l[0];
|
long set = event->data.l[0];
|
||||||
@@ -1563,10 +1568,15 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateStateHint(wwin, False, False);
|
updateStateHint(wwin, False, False);
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_wm_handled_icons || event->message_type == net_wm_icon_geometry) {
|
} else if (event->message_type == net_wm_handled_icons || event->message_type == net_wm_icon_geometry) {
|
||||||
updateNetIconInfo(wwin);
|
updateNetIconInfo(wwin);
|
||||||
|
return True;
|
||||||
|
|
||||||
} else if (event->message_type == net_wm_desktop) {
|
} else if (event->message_type == net_wm_desktop) {
|
||||||
long desktop = event->data.l[0];
|
long desktop = event->data.l[0];
|
||||||
|
|
||||||
if (desktop == -1) {
|
if (desktop == -1) {
|
||||||
wWindowSetOmnipresent(wwin, True);
|
wWindowSetOmnipresent(wwin, True);
|
||||||
} else {
|
} else {
|
||||||
@@ -1574,11 +1584,10 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent *event)
|
|||||||
wWindowSetOmnipresent(wwin, False);
|
wWindowSetOmnipresent(wwin, False);
|
||||||
wWindowChangeWorkspace(wwin, desktop);
|
wWindowChangeWorkspace(wwin, desktop);
|
||||||
}
|
}
|
||||||
} else {
|
return True;
|
||||||
done = False;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return done;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wNETWMCheckClientHintChange(WWindow *wwin, XPropertyEvent *event)
|
void wNETWMCheckClientHintChange(WWindow *wwin, XPropertyEvent *event)
|
||||||
|
|||||||
Reference in New Issue
Block a user