JWM Source Documentation
Data Structures | Macros | Typedefs | Functions | Variables
client.h File Reference

Client window functions. More...

#include "main.h"
#include "border.h"
#include "hint.h"

Go to the source code of this file.

Data Structures

struct  ColormapNode
 Colormap window linked list. More...
 
struct  AspectRatio
 The aspect ratio of a window. More...
 
struct  ClientNode
 Struture to store information about a client window. More...
 

Macros

#define BORDER_NONE   0
 
#define BORDER_OUTLINE   (1 << 0)
 Window has a border.
 
#define BORDER_TITLE   (1 << 1)
 Window has a title bar.
 
#define BORDER_MIN   (1 << 2)
 Window supports minimize.
 
#define BORDER_MAX   (1 << 3)
 Window supports maximize.
 
#define BORDER_CLOSE   (1 << 4)
 Window supports close.
 
#define BORDER_RESIZE   (1 << 5)
 Window supports resizing.
 
#define BORDER_MOVE   (1 << 6)
 Window supports moving.
 
#define BORDER_MAX_V   (1 << 7)
 Maximize vertically.
 
#define BORDER_MAX_H   (1 << 8)
 Maximize horizontally.
 
#define BORDER_SHADE   (1 << 9)
 Allow shading.
 
#define BORDER_CONSTRAIN   (1 << 10)
 Constrain to the screen.
 
#define BORDER_FULLSCREEN   (1 << 11)
 Allow fullscreen.
 
#define BORDER_DEFAULT
 The default border flags.
 
#define STAT_NONE   0
 
#define STAT_ACTIVE   (1 << 0)
 Has focus.
 
#define STAT_MAPPED   (1 << 1)
 Shown (on some desktop).
 
#define STAT_HIDDEN   (1 << 2)
 Not on the current desktop.
 
#define STAT_STICKY   (1 << 3)
 This client is on all desktops.
 
#define STAT_NOLIST   (1 << 4)
 Skip this client in the task list.
 
#define STAT_MINIMIZED   (1 << 5)
 Minimized.
 
#define STAT_SHADED   (1 << 6)
 Shaded.
 
#define STAT_WMDIALOG   (1 << 7)
 This is a JWM dialog window.
 
#define STAT_PIGNORE   (1 << 8)
 Ignore the program-position.
 
#define STAT_SDESKTOP   (1 << 9)
 Minimized to show desktop.
 
#define STAT_FULLSCREEN   (1 << 10)
 Full screen.
 
#define STAT_OPACITY   (1 << 11)
 Fixed opacity.
 
#define STAT_NOFOCUS   (1 << 12)
 Don't focus on map.
 
#define STAT_CANFOCUS   (1 << 13)
 Client accepts input focus.
 
#define STAT_DELETE   (1 << 14)
 Client accepts WM_DELETE.
 
#define STAT_TAKEFOCUS   (1 << 15)
 Client uses WM_TAKE_FOCUS.
 
#define STAT_URGENT   (1 << 16)
 Urgency hint is set.
 
#define STAT_NOTURGENT   (1 << 17)
 Ignore the urgency hint.
 
#define STAT_CENTERED   (1 << 18)
 Use centered window placement.
 
#define STAT_TILED   (1 << 19)
 Use tiled window placement.
 
#define STAT_IIGNORE   (1 << 20)
 Ignore increment when maximized.
 
#define STAT_NOPAGER   (1 << 21)
 Don't show in pager.
 
#define STAT_SHAPED   (1 << 22)
 This window is shaped.
 
#define STAT_FLASH   (1 << 23)
 Flashing for urgency.
 
#define STAT_DRAG   (1 << 24)
 Pass mouse events to JWM.
 
#define STAT_ILIST   (1 << 25)
 Ignore program-specified list.
 
#define STAT_IPAGER   (1 << 26)
 Ignore program-specified pager.
 
#define STAT_FIXED   (1 << 27)
 Keep on the specified desktop.
 
#define STAT_AEROSNAP   (1 << 28)
 Enable Aero Snap.
 
#define STAT_NODRAG   (1 << 29)
 Disable mod1+drag/resize.
 
#define MAX_NONE   0
 Don't maximize.
 
#define MAX_HORIZ   (1 << 0)
 Horizontal maximization.
 
#define MAX_VERT   (1 << 1)
 Vertical maximization.
 
#define MAX_LEFT   (1 << 2)
 Maximize on left.
 
#define MAX_RIGHT   (1 << 3)
 Maximize on right.
 
#define MAX_TOP   (1 << 4)
 Maximize on top.
 
#define MAX_BOTTOM   (1 << 5)
 Maximize on bottom.
 

Typedefs

typedef unsigned short BorderFlags
 Window border flags.
 
typedef unsigned int StatusFlags
 Window status flags.
 
typedef unsigned char MaxFlags
 Maximization flags.
 
typedef struct ColormapNode ColormapNode
 Colormap window linked list.
 
typedef struct AspectRatio AspectRatio
 The aspect ratio of a window.
 
typedef struct ClientNode ClientNode
 Struture to store information about a client window.
 

Functions

ClientNodeFindClient (Window w)
 Find a client by window or parent window.
 
ClientNodeFindClientByWindow (Window w)
 Find a client by window.
 
ClientNodeFindClientByParent (Window p)
 Find a client by its parent window.
 
ClientNodeGetActiveClient (void)
 Get the active client.
 
ClientNodeAddClientWindow (Window w, char alreadyMapped, char notOwner)
 Add a window to management.
 
void RemoveClient (ClientNode *np)
 Remove a client from management.
 
void MinimizeClient (ClientNode *np, char lower)
 Minimize a client.
 
void ShadeClient (ClientNode *np)
 Shade a client.
 
void UnshadeClient (ClientNode *np)
 Unshade a client.
 
void SetClientWithdrawn (ClientNode *np)
 Set a client's status to withdrawn.
 
void RestoreClient (ClientNode *np, char raise)
 Restore a client from minimized state.
 
void MaximizeClient (ClientNode *np, MaxFlags flags)
 Maximize a client.
 
void MaximizeClientDefault (ClientNode *np)
 Maximize a client using the default maximize settings.
 
void SetClientFullScreen (ClientNode *np, char fullScreen)
 Set the full screen status of a client.
 
void FocusClient (ClientNode *np)
 Set the keyboard focus to a client.
 
void RefocusClient (void)
 Set the keyboard focus back to the active client.
 
void DeleteClient (ClientNode *np)
 Tell a client to exit.
 
void KillClient (ClientNode *np)
 Force a client to exit.
 
void RaiseClient (ClientNode *np)
 Raise a client to the top of its layer.
 
void RestackClient (ClientNode *np, Window above, int detail)
 Restack a client.
 
void RestackClients (void)
 Restack the clients.
 
void SetClientLayer (ClientNode *np, unsigned int layer)
 Set the layer of a client.
 
void SetClientDesktop (ClientNode *np, unsigned int desktop)
 Set the desktop for a client.
 
void SetClientSticky (ClientNode *np, char isSticky)
 Set the sticky status of a client.
 
void HideClient (ClientNode *np)
 Hide a client.
 
void ShowClient (ClientNode *np)
 Show a client.
 
void UpdateClientColormap (ClientNode *np)
 Update a client's colormap.
 
void ReparentClient (ClientNode *np)
 Reparent a client.
 
void SendConfigureEvent (ClientNode *np)
 Send a configure event to a client.
 
void SendClientMessage (Window w, AtomType type, AtomType message)
 Send a message to a client.
 
void SignalUrgent (const struct TimeType *now, int x, int y, Window w, void *data)
 Update callback for clients with the urgency hint set.
 

Variables

unsigned int clientCount
 The number of clients (maintained in client.c).
 
#define InitializeClients()   (void)(0)
 
#define DestroyClients()   (void)(0)
 
void StartupClients (void)
 Load windows that are already mapped.
 
void ShutdownClients (void)
 Release client windows.
 

Detailed Description

Client window functions.

Author
Joe Wingbermuehle
Date
2004-2007

Definition in file client.h.

Macro Definition Documentation

#define BORDER_CLOSE   (1 << 4)

Window supports close.

Definition at line 29 of file client.h.

Referenced by ApplyGroup(), DrawBorderButtons(), GetBorderActionType(), GetButtonCount(), ReadMotifHints(), and WriteNetAllowed().

#define BORDER_CONSTRAIN   (1 << 10)

Constrain to the screen.

Definition at line 35 of file client.h.

Referenced by ApplyGroup(), and HandleConfigureRequest().

#define BORDER_DEFAULT
Value:

The default border flags.

Definition at line 39 of file client.h.

Referenced by AddClientWindow(), and ReadWindowState().

#define BORDER_FULLSCREEN   (1 << 11)

Allow fullscreen.

Definition at line 36 of file client.h.

Referenced by ApplyGroup(), and SetClientFullScreen().

#define BORDER_MAX   (1 << 3)
#define BORDER_MAX_H   (1 << 8)

Maximize horizontally.

Definition at line 33 of file client.h.

Referenced by ApplyGroup(), and MaximizeClientDefault().

#define BORDER_MAX_V   (1 << 7)

Maximize vertically.

Definition at line 32 of file client.h.

Referenced by ApplyGroup(), and MaximizeClientDefault().

#define BORDER_MIN   (1 << 2)
#define BORDER_MOVE   (1 << 6)
#define BORDER_NONE   0

Definition at line 24 of file client.h.

Referenced by ReadWindowState().

#define BORDER_OUTLINE   (1 << 0)

Window has a border.

Definition at line 25 of file client.h.

Referenced by AddClientWindow(), ApplyGroup(), DispatchBorderButtonEvent(), GetBorderSize(), ReadMotifHints(), and ReparentClient().

#define BORDER_RESIZE   (1 << 5)
#define BORDER_SHADE   (1 << 9)

Allow shading.

Definition at line 34 of file client.h.

Referenced by ApplyGroup(), CreateWindowMenu(), ShadeClient(), and WriteNetAllowed().

#define BORDER_TITLE   (1 << 1)
#define DestroyClients ( )    (void)(0)

Definition at line 192 of file client.h.

Referenced by Destroy().

#define InitializeClients ( )    (void)(0)

Definition at line 189 of file client.h.

Referenced by Initialize().

#define MAX_BOTTOM   (1 << 5)
#define MAX_HORIZ   (1 << 0)
#define MAX_LEFT   (1 << 2)
#define MAX_NONE   0
#define MAX_RIGHT   (1 << 3)
#define MAX_TOP   (1 << 4)
#define MAX_VERT   (1 << 1)
#define STAT_ACTIVE   (1 << 0)
#define STAT_AEROSNAP   (1 << 28)

Enable Aero Snap.

Definition at line 86 of file client.h.

Referenced by ApplyGroup(), and MoveClient().

#define STAT_CANFOCUS   (1 << 13)

Client accepts input focus.

Definition at line 71 of file client.h.

Referenced by FocusClient(), FocusGroup(), FocusNext(), FocusPrevious(), ProcessTaskButtonEvent(), ReadWMHints(), and ShouldFocusEntry().

#define STAT_CENTERED   (1 << 18)

Use centered window placement.

Definition at line 76 of file client.h.

Referenced by ApplyGroup(), and PlaceClient().

#define STAT_DELETE   (1 << 14)

Client accepts WM_DELETE.

Definition at line 72 of file client.h.

Referenced by DeleteClient(), Destroy(), and ReadWMProtocols().

#define STAT_DRAG   (1 << 24)

Pass mouse events to JWM.

Definition at line 82 of file client.h.

Referenced by ApplyGroup(), and HandleButtonEvent().

#define STAT_FIXED   (1 << 27)

Keep on the specified desktop.

Definition at line 85 of file client.h.

Referenced by ApplyGroup(), and RestoreClient().

#define STAT_FLASH   (1 << 23)

Flashing for urgency.

Definition at line 81 of file client.h.

Referenced by DrawBorderButtons(), DrawBorderHandles(), DrawBorderHelper(), DrawPagerClient(), ReadWMHints(), Render(), and SignalUrgent().

#define STAT_FULLSCREEN   (1 << 10)
#define STAT_HIDDEN   (1 << 2)
#define STAT_IIGNORE   (1 << 20)

Ignore increment when maximized.

Definition at line 78 of file client.h.

Referenced by ApplyGroup(), and PlaceMaximizedClient().

#define STAT_ILIST   (1 << 25)

Ignore program-specified list.

Definition at line 83 of file client.h.

Referenced by ApplyGroup(), and HandleNetWMState().

#define STAT_IPAGER   (1 << 26)

Ignore program-specified pager.

Definition at line 84 of file client.h.

Referenced by ApplyGroup(), and HandleNetWMState().

#define STAT_MAPPED   (1 << 1)
#define STAT_MINIMIZED   (1 << 5)
#define STAT_NODRAG   (1 << 29)

Disable mod1+drag/resize.

Definition at line 87 of file client.h.

Referenced by ApplyGroup(), and HandleButtonEvent().

#define STAT_NOFOCUS   (1 << 12)

Don't focus on map.

Definition at line 70 of file client.h.

Referenced by ApplyGroup(), HandleMapRequest(), and ReadWindowState().

#define STAT_NOLIST   (1 << 4)

Skip this client in the task list.

Definition at line 62 of file client.h.

Referenced by ApplyGroup(), HandleNetWMState(), ReadWindowState(), ShouldFocus(), ShowDesktop(), and WriteNetState().

#define STAT_NONE   0

Definition at line 57 of file client.h.

Referenced by AddClientWindow().

#define STAT_NOPAGER   (1 << 21)

Don't show in pager.

Definition at line 79 of file client.h.

Referenced by ApplyGroup(), DrawPagerClient(), HandleNetWMState(), ReadWindowState(), StartPagerMove(), and WriteNetState().

#define STAT_NOTURGENT   (1 << 17)

Ignore the urgency hint.

Definition at line 75 of file client.h.

Referenced by ApplyGroup(), and SignalUrgent().

#define STAT_OPACITY   (1 << 11)

Fixed opacity.

Definition at line 69 of file client.h.

Referenced by AddClientWindow(), ApplyGroup(), and FocusClient().

#define STAT_PIGNORE   (1 << 8)

Ignore the program-position.

Definition at line 66 of file client.h.

Referenced by ApplyGroup(), and PlaceClient().

#define STAT_SDESKTOP   (1 << 9)

Minimized to show desktop.

Definition at line 67 of file client.h.

Referenced by RestoreTransients(), SetClientWithdrawn(), ShowDesktop(), and UnshadeClient().

#define STAT_SHADED   (1 << 6)
#define STAT_SHAPED   (1 << 22)

This window is shaped.

Definition at line 80 of file client.h.

Referenced by HandleShapeEvent(), ReadWindowState(), and ResetBorder().

#define STAT_STICKY   (1 << 3)
#define STAT_TAKEFOCUS   (1 << 15)

Client uses WM_TAKE_FOCUS.

Definition at line 73 of file client.h.

Referenced by FocusClient(), FocusGroup(), FocusNext(), FocusPrevious(), ProcessTaskButtonEvent(), ReadWMProtocols(), and ShouldFocusEntry().

#define STAT_TILED   (1 << 19)

Use tiled window placement.

Definition at line 77 of file client.h.

Referenced by ApplyGroup(), and PlaceClient().

#define STAT_URGENT   (1 << 16)

Urgency hint is set.

Definition at line 74 of file client.h.

Referenced by AddClientWindow(), HandlePropertyNotify(), ReadWindowState(), ReadWMHints(), RemoveClient(), UpdateState(), and WriteNetState().

#define STAT_WMDIALOG   (1 << 7)

This is a JWM dialog window.

Definition at line 65 of file client.h.

Referenced by AddClientWindow(), CreateWindowMenu(), HandleExpose(), HandlePropertyNotify(), RemoveClient(), and ShowConfirmDialog().

Typedef Documentation

typedef struct AspectRatio AspectRatio

The aspect ratio of a window.

typedef unsigned short BorderFlags

Window border flags.

We use an unsigned short for storing these, so we get at least 16 on reasonable architectures.

Definition at line 17 of file client.h.

typedef struct ClientNode ClientNode

Struture to store information about a client window.

typedef struct ColormapNode ColormapNode

Colormap window linked list.

typedef unsigned char MaxFlags

Maximization flags.

Definition at line 90 of file client.h.

typedef unsigned int StatusFlags

Window status flags.

We use an unsigned int for storing these, so we get 32 on reasonable architectures.

Definition at line 56 of file client.h.

Function Documentation

ClientNode* AddClientWindow ( Window  w,
char  alreadyMapped,
char  notOwner 
)

Add a window to management.

Parameters
wThe client window.
alreadyMapped1 if the window is mapped, 0 if not.
notOwner1 if JWM doesn't own this window, 0 if JWM is the owner.
Returns
The client window data.

Definition at line 116 of file client.c.

References AddClientToTaskBar(), Allocate, ApplyGroups(), Assert, ATOM_NET_WM_DESKTOP, BA_NONE, ClientState::border, BORDER_DEFAULT, BORDER_MOVE, BORDER_OUTLINE, BORDER_TITLE, ClientNode::borderAction, clientContext, clientCount, ClientNode::cmap, currentDesktop, ClientState::defaultLayer, ClientState::desktop, display, FocusClient(), ClientNode::height, HideClient(), ClientNode::icon, Settings::inactiveClientOpacity, JXAddToSaveSet, JXChangeWindowAttributes, JXGetWindowAttributes, JXGrabButton, JXMapWindow, ClientState::layer, LAYER_ABOVE, LAYER_NORMAL, LoadIcon(), MAX_NONE, ClientState::maxFlags, MaximizeClient(), MinimizeClient(), ClientNode::next, nodes, nodeTail, ClientState::opacity, ClientNode::owner, ClientNode::parent, PlaceClient(), ClientNode::prev, RaiseClient(), ReadClientInfo(), ReadClientStrut(), RegisterCallback(), ReparentClient(), ResetBorder(), SendConfigureEvent(), SetCardinalAtom(), SetClientFullScreen(), SetDefaultCursor(), SetOpacity(), settings, ShadeClient(), SignalUrgent(), STAT_FULLSCREEN, STAT_MAPPED, STAT_MINIMIZED, STAT_NONE, STAT_OPACITY, STAT_SHADED, STAT_STICKY, STAT_URGENT, STAT_WMDIALOG, ClientNode::state, ClientState::status, URGENCY_DELAY, ClientNode::width, ClientNode::window, WriteState(), ClientNode::x, and ClientNode::y.

Referenced by HandleMapRequest(), ShowConfirmDialog(), and StartupClients().

void DeleteClient ( ClientNode np)
ClientNode* FindClient ( Window  w)

Find a client by window or parent window.

Parameters
wThe window.
Returns
The client (NULL if not found).

Definition at line 1287 of file client.c.

References FindClientByParent(), and FindClientByWindow().

Referenced by ChooseWindow(), HandleEnterNotify(), and LoadFocus().

ClientNode* FindClientByParent ( Window  p)

Find a client by its parent window.

Parameters
pThe parent window.
Returns
The client (NULL if not found).

Definition at line 1309 of file client.c.

References display, and frameContext.

Referenced by FindClient(), HandleButtonEvent(), HandleExpose(), and HandleMotionNotify().

ClientNode* FindClientByWindow ( Window  w)
void FocusClient ( ClientNode np)
ClientNode* GetActiveClient ( void  )

Get the active client.

Returns
The active client (NULL if no client is active).

Definition at line 1281 of file client.c.

References activeClient.

Referenced by HandleKeyPress().

void HideClient ( ClientNode np)

Hide a client.

This is used for changing desktops.

Parameters
npThe client to hide.

Hide a client.

This will not update transients.

Definition at line 636 of file client.c.

References display, JXUnmapWindow, ClientNode::parent, STAT_HIDDEN, STAT_MAPPED, STAT_SHADED, ClientNode::state, ClientState::status, and ClientNode::window.

Referenced by AddClientWindow(), ChangeDesktop(), and SetClientDesktop().

void KillClient ( ClientNode np)

Force a client to exit.

Parameters
npThe client to kill.

Definition at line 900 of file client.c.

References _, Assert, KillClientHandler(), and ShowConfirmDialog().

Referenced by DeleteClient(), and RunWindowCommand().

void MaximizeClient ( ClientNode np,
MaxFlags  flags 
)
void MaximizeClientDefault ( ClientNode np)

Maximize a client using the default maximize settings.

Parameters
npThe client to maximize.

Definition at line 720 of file client.c.

References Assert, ClientState::border, BORDER_MAX_H, BORDER_MAX_V, MAX_HORIZ, MAX_NONE, MAX_VERT, ClientState::maxFlags, MaximizeClient(), and ClientNode::state.

Referenced by DispatchBorderButtonEvent().

void MinimizeClient ( ClientNode np,
char  lower 
)

Minimize a client.

Parameters
npThe client to minimize.
lowerSet to lower the client in the stacking order.

Definition at line 287 of file client.c.

References Assert, MinimizeTransients(), RequireRestack(), and RequireTaskUpdate().

Referenced by AddClientWindow(), DispatchBorderButtonEvent(), HandleClientMessage(), HandleKeyPress(), HandleNetWMState(), MinimizeGroup(), RunTaskBarCommand(), RunWindowCommand(), ShowDesktop(), and WalkWindowStack().

void RaiseClient ( ClientNode np)

Raise a client to the top of its layer.

Parameters
npThe client to raise.

Raise a client to the top of its layer.

This will affect transients.

Definition at line 947 of file client.c.

References Assert, ClientState::layer, ClientNode::next, nodes, nodeTail, ClientNode::prev, RequireRestack(), RestackTransients(), and ClientNode::state.

Referenced by AddClientWindow(), HandleButtonEvent(), HandleKeyPress(), HandleMapRequest(), MaximizeClient(), RestoreTransients(), and StopWindowWalk().

void RefocusClient ( void  )

Set the keyboard focus back to the active client.

Definition at line 870 of file client.c.

References FocusClient().

Referenced by ShowMenu(), and UnshadeClient().

void RemoveClient ( ClientNode np)
void ReparentClient ( ClientNode np)
void RestackClient ( ClientNode np,
Window  above,
int  detail 
)

Restack a client.

Parameters
npThe client to restack.
aboveA reference window (or None).
detailThe stack mode (Above, Below, etc).

Restack a client.

This will not affect transients.

Definition at line 975 of file client.c.

References ClientState::layer, ClientNode::next, nodes, nodeTail, ClientNode::prev, RequireRestack(), RestackTransients(), ClientNode::state, and ClientNode::window.

Referenced by HandleConfigureRequest(), and HandleNetRestack().

void RestackClients ( void  )
void RestoreClient ( ClientNode np,
char  raise 
)

Restore a client from minimized state.

Parameters
npThe client to restore.
raise1 to raise the client, 0 to leave stacking unchanged.

Definition at line 478 of file client.c.

References ChangeDesktop(), ClientState::desktop, RequireRestack(), RequireTaskUpdate(), RestoreTransients(), STAT_FIXED, STAT_STICKY, ClientNode::state, and ClientState::status.

Referenced by FocusGroup(), HandleClientMessage(), HandleNetWMState(), MaximizeClient(), ProcessTaskButtonEvent(), RunTaskBarCommand(), RunWindowCommand(), ShowDesktop(), StopWindowWalk(), and WalkWindowStack().

void SendClientMessage ( Window  w,
AtomType  type,
AtomType  message 
)

Send a message to a client.

Parameters
wThe client window.
typeThe type of message to send.
messageThe message to send.

Definition at line 1163 of file client.c.

References atoms, Debug(), display, eventTime, JUNLIKELY, and JXSendEvent.

Referenced by DeleteClient(), Destroy(), and FocusClient().

void SendConfigureEvent ( ClientNode np)
void SetClientDesktop ( ClientNode np,
unsigned int  desktop 
)
void SetClientFullScreen ( ClientNode np,
char  fullScreen 
)
void SetClientLayer ( ClientNode np,
unsigned int  layer 
)

Set the layer of a client.

Parameters
npThe client whose layer to set.
layerthe layer to assign to the client.

Set the layer of a client.

This will affect transients.

Definition at line 489 of file client.c.

References Assert, FIRST_LAYER, LAST_LAYER, ClientState::layer, IconNode::next, ClientNode::next, nodes, nodeTail, ClientNode::owner, ClientNode::prev, RequireRestack(), ClientNode::state, ClientNode::window, and WriteState().

Referenced by HandleNetWMState(), and RunWindowCommand().

void SetClientSticky ( ClientNode np,
char  isSticky 
)

Set the sticky status of a client.

A sticky client will appear on all desktops.

Parameters
npThe client.
isSticky1 to make the client sticky, 0 to make it not sticky.

Set the sticky status of a client.

This will update transients.

Definition at line 545 of file client.c.

References Assert, ATOM_NET_WM_DESKTOP, currentDesktop, LAYER_COUNT, ClientNode::next, nodes, ClientNode::owner, SetCardinalAtom(), SetClientDesktop(), STAT_STICKY, ClientNode::state, ClientState::status, ClientNode::window, and WriteState().

Referenced by HandleClientMessage(), HandleKeyPress(), HandleNetWMState(), and RunWindowCommand().

void SetClientWithdrawn ( ClientNode np)

Set a client's status to withdrawn.

A withdrawn client is a client that is not visible in any way to the user. This may be a window that an application keeps around so that it can be reused at a later time.

Parameters
npThe client whose status to change.

Definition at line 397 of file client.c.

References Assert, display, FocusNextStacked(), JXUnmapWindow, ClientNode::parent, RequirePagerUpdate(), RequireTaskUpdate(), STAT_ACTIVE, STAT_MAPPED, STAT_MINIMIZED, STAT_SDESKTOP, STAT_SHADED, ClientNode::state, ClientState::status, UnmapClient(), and WriteState().

Referenced by HandleClientMessage().

void ShadeClient ( ClientNode np)
void ShowClient ( ClientNode np)

Show a client.

This is used for changing desktops.

Parameters
npThe client to show.

Show a client.

This will not update transients.

Definition at line 652 of file client.c.

References display, FocusClient(), JXMapWindow, ClientNode::parent, STAT_ACTIVE, STAT_HIDDEN, STAT_MAPPED, STAT_MINIMIZED, STAT_SHADED, ClientNode::state, ClientState::status, and ClientNode::window.

Referenced by ChangeDesktop(), and SetClientDesktop().

void ShutdownClients ( void  )

Release client windows.

Definition at line 82 of file client.c.

References LAYER_COUNT, nodeTail, and RemoveClient().

Referenced by Shutdown().

void SignalUrgent ( const struct TimeType now,
int  x,
int  y,
Window  w,
void *  data 
)

Update callback for clients with the urgency hint set.

void StartupClients ( void  )

Load windows that are already mapped.

Definition at line 41 of file client.c.

References AddClientWindow(), clientCount, currentDesktop, display, JXFree, JXGetWindowAttributes, JXQueryTree, LAYER_COUNT, LoadFocus(), nodes, nodeTail, RequirePagerUpdate(), RequireTaskUpdate(), and rootWindow.

Referenced by Startup().

void UnshadeClient ( ClientNode np)
void UpdateClientColormap ( ClientNode np)

Update a client's colormap.

Parameters
npThe client.

Update a client's colormap.

A call to this function indicates that the colormap(s) for the given client changed. This will change the active colormap(s) if the given client is active.

Definition at line 1438 of file client.c.

References Assert, ClientNode::cmap, ClientNode::colormaps, display, JXGetWindowAttributes, JXInstallColormap, ColormapNode::next, and ColormapNode::window.

Referenced by FocusClient(), HandleColormapChange(), and HandlePropertyNotify().

Variable Documentation

unsigned int clientCount

The number of clients (maintained in client.c).

Definition at line 31 of file client.c.

Referenced by AddClientWindow(), FocusGroup(), RemoveClient(), Render(), RestackClients(), StartupClients(), and UpdateNetClientList().

joewing.net / Projects / JWM