1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-22 22:28:02 +01:00

Update to Window Maker 0.50.2

This commit is contained in:
dan
1999-01-11 12:28:12 +00:00
parent a37bb3aed5
commit cb320b2fc3
87 changed files with 4999 additions and 4465 deletions

View File

@@ -52,6 +52,10 @@
#include "gnome.h"
#define WIN_HINTS_SKIP_FOCUS (1<<0) /*"alt-tab" skips this win*/
#define WIN_HINTS_SKIP_WINLIST (1<<1) /*do not show in window list*/
#define WIN_HINTS_SKIP_TASKBAR (1<<2) /*do not show on taskbar*/
@@ -94,6 +98,7 @@ static Atom _XA_WIN_WORKSPACE;
static Atom _XA_WIN_WORKSPACE_COUNT;
static Atom _XA_WIN_WORKSPACE_NAMES;
static Atom _XA_WIN_CLIENT_LIST;
static Atom _XA_WIN_DESKTOP_BUTTON_PROXY;
void
@@ -130,6 +135,9 @@ wGNOMEInitStuff(WScreen *scr)
XInternAtom(dpy, "_WIN_WORKSPACE_NAMES", False);
_XA_WIN_CLIENT_LIST = XInternAtom(dpy, "_WIN_CLIENT_LIST", False);
_XA_WIN_DESKTOP_BUTTON_PROXY =
XInternAtom(dpy, "_WIN_DESKTOP_BUTTON_PROXY", False);
}
/* I'd rather use the ICCCM 2.0 mechanisms, but
@@ -138,7 +146,7 @@ wGNOMEInitStuff(WScreen *scr)
/* setup the "We're compliant, you idiot!" hint */
/* why XA_CARDINAL instead of XA_WINDOW? Only God knows.... */
/* why XA_CARDINAL instead of XA_WINDOW? */
XChangeProperty(dpy, scr->root_win, _XA_WIN_SUPPORTING_WM_CHECK,
XA_CARDINAL, 32, PropModeReplace,
(unsigned char*)&scr->no_focus_win, 1);
@@ -147,6 +155,15 @@ wGNOMEInitStuff(WScreen *scr)
XA_CARDINAL, 32, PropModeReplace,
(unsigned char*)&scr->no_focus_win, 1);
/* setup the "desktop button proxy" thing */
XChangeProperty(dpy, scr->root_win, _XA_WIN_DESKTOP_BUTTON_PROXY,
XA_CARDINAL, 32, PropModeReplace,
(unsigned char*)&scr->no_focus_win, 1);
XChangeProperty(dpy, scr->no_focus_win, _XA_WIN_DESKTOP_BUTTON_PROXY,
XA_CARDINAL, 32, PropModeReplace,
(unsigned char*)&scr->no_focus_win, 1);
/* setup the list of supported protocols */
count = 0;
@@ -317,7 +334,8 @@ wGNOMECheckClientHints(WWindow *wwin, int *layer, int *workspace)
XFree(data);
*workspace = val;
if (val > 0)
*workspace = val;
}
/* reserved area */
@@ -434,9 +452,23 @@ wGNOMEUpdateClientStateHint(WWindow *wwin, Bool changedWorkspace)
Bool
wGNOMEProcessClientMessage(XClientMessageEvent *event)
{
WScreen *scr;
WWindow *wwin;
Bool done = True;
scr = wScreenForRootWindow(event->window);
if (scr) {
/* generic client messages */
if (event->message_type == _XA_WIN_WORKSPACE) {
wWorkspaceChange(scr, event->data.l[0]);
} else {
done = False;
}
return done;
}
/* window specific client messages */
wwin = wWindowFor(event->window);
if (!wwin)
return False;
@@ -518,6 +550,26 @@ wGNOMEProcessClientMessage(XClientMessageEvent *event)
}
Bool
wGNOMEProxyizeButtonEvent(WScreen *scr, XEvent *event)
{
#ifndef MOUSE_WS_SWITCH
if (event->xbutton.button <= Button3
&& (event->xbutton.state & ValidModMask) == 0)
return False;
#else
if ((event->xbutton.state & ValidModMask) == 0)
return False;
#endif
if (event->type == ButtonPress)
XUngrabPointer(dpy, CurrentTime);
XSendEvent(dpy, scr->no_focus_win, False, SubstructureNotifyMask, event);
return True;
}
void
wGNOMERemoveClient(WWindow *wwin)
{