#include <handler.h>
Collaboration diagram for Handler:
Public Member Functions | |
Handler (Window w=0, Manager *parent=0, const char *name=0) | |
~Handler () | |
void | handleConfigureRequest (XConfigureRequestEvent *) |
void | handleMapRequest (XMapRequestEvent *) |
void | handlePropertyChange (XPropertyEvent *) |
Public Attributes | |
QRect | clientGeometry |
Private Types | |
enum | states { sEmpty = 0, sModal = 1, sSticky = 1 << 1, smaxVert = 1 << 2, smaxHorz = 1 << 3, sShaded = 1 << 4, sSkipTaskbar = 1 << 5, sSkipPager = 1 << 6 } |
Private Member Functions | |
void | setupClient () |
void | createFrame () |
void | getXClientName () |
void | initPosition () |
void | fixupPositionBasedOnStruts (Strut *) |
bool | getExtendedWMHintString (Atom, char **) |
void | getExtendedNetWMStates () |
void * | getExtendedNetPropertyData (Window, Atom, Atom, int *) |
void | setWMState (int state) |
long | getWMState () |
void | setExtendedWMState () |
void | gravitate (int) |
void | reparent () |
int | titleHeight () |
void | unhide () |
Private Attributes | |
Window | clientId |
Manager * | Parent |
Display * | dpy |
border | clientBorder |
QRect | handlerGeometry |
QRect | desktopRect |
QRect | oldClientGeometry |
QString | title |
QString | clientName |
Frame * | frame |
int | titleBarHeight |
bool | hasNetName |
bool | hasTitle |
int | ignoreUnmap |
Window | transFor |
XSizeHints * | size |
Colormap | cmap |
int | winState |
|
|
|
The constructor is responsible to gather various information about the window to be handled here. Here is the call graph for this function: |
|
|
|
Here is where we decorate the window. For now, we just decorate every window in the full decoration style, including titlebar and buttons.
|
|
|
|
Just a wrapper for XGetWindowProperty. The returned data must be |
|
Gets the extended WM states from th X server and sets the corresponding bits in winState. Here is the call graph for this function: |
|
This makes a difference if utf8 is returned or not, therefore returns a bool. The calling function must know this, because QString has to use different methods to populate a string. |
|
If we can't find a state we're going to have to assume Withdrawn. This is not exactly optimal, since we can't really distinguish between the case where no WM has run yet and when the state was explicitly removed (Clients are allowed to either set the atom to Withdrawn or just remove it... yuck.) |
|
Gets the client name. We first try to get an extended WM string, as this may be utf-8 encoded - Qt likes this. If we can't get a name with this method, we try the XFetchName method. If this should fail too, we set the name to no name
Here is the call graph for this function: |
|
Here is the call graph for this function: |
|
|
|
|
|
|
|
called for windows that are mapped for the first time. |
|
|
|
Tell the X server about a new extended WM state. This looks rather longish, as it has to do some bit aerobics with the enum values in winState. I think it's worth having it this way. |
|
This is one of the spin-offs of the c'tor. Here is where initial client specific information is gathered. Here is the call graph for this function: |
|
|
|
|
|
Raises a hidden window if it belongs to the current desktop.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|