convert XAtom to OBAtom

This commit is contained in:
Dana Jansens 2002-11-05 07:48:26 +00:00
parent f25252a484
commit 641bc819d1
12 changed files with 201 additions and 202 deletions

View file

@ -16,7 +16,7 @@ bin_PROGRAMS= openbox
openbox_LDADD=../otk/libotk.a @LIBINTL@ openbox_LDADD=../otk/libotk.a @LIBINTL@
openbox_SOURCES= configuration.cc screen.cc openbox.cc \ openbox_SOURCES= configuration.cc screen.cc openbox.cc \
util.cc bbwindow.cc workspace.cc xatom.cc blackbox.cc \ util.cc bbwindow.cc workspace.cc atom.cc blackbox.cc \
main.cc xeventhandler.cc main.cc xeventhandler.cc
MAINTAINERCLEANFILES= Makefile.in MAINTAINERCLEANFILES= Makefile.in

View file

@ -8,15 +8,14 @@ extern "C" {
#include <assert.h> #include <assert.h>
} }
#include "xatom.hh" #include "atom.hh"
#include "screen.hh" #include "screen.hh"
#include "util.hh" #include "util.hh"
#include "otk/display.hh"
namespace ob { namespace ob {
XAtom::XAtom(Display *d) { OBAtom::OBAtom() {
_display = d;
// make sure asserts fire if there is a problem // make sure asserts fire if there is a problem
memset(_atoms, 0, sizeof(_atoms)); memset(_atoms, 0, sizeof(_atoms));
@ -149,11 +148,11 @@ XAtom::XAtom(Display *d) {
/* /*
* clean up the class' members * clean up the class' members
*/ */
XAtom::~XAtom() { OBAtom::~OBAtom() {
while (!_support_windows.empty()) { while (!_support_windows.empty()) {
// make sure we aren't fucking with this somewhere // make sure we aren't fucking with this somewhere
assert(_support_windows.back() != None); assert(_support_windows.back() != None);
XDestroyWindow(_display, _support_windows.back()); XDestroyWindow(otk::OBDisplay::display, _support_windows.back());
_support_windows.pop_back(); _support_windows.pop_back();
} }
} }
@ -162,19 +161,19 @@ XAtom::~XAtom() {
/* /*
* Returns an atom from the Xserver, creating it if necessary. * Returns an atom from the Xserver, creating it if necessary.
*/ */
Atom XAtom::create(const char *name) const { Atom OBAtom::create(const char *name) const {
return XInternAtom(_display, name, False); return XInternAtom(otk::OBDisplay::display, name, False);
} }
/* /*
* Sets which atoms are supported for NETWM, by Openbox, on the root window. * Sets which atoms are supported for NETWM, by Openbox, on the root window.
*/ */
void XAtom::setSupported(const otk::ScreenInfo *screen) { void OBAtom::setSupported(const otk::ScreenInfo *screen) {
Window root = screen->getRootWindow(); Window root = screen->getRootWindow();
// create the netwm support window // create the netwm support window
Window w = XCreateSimpleWindow(_display, root, 0, 0, 1, 1, 0, 0, 0); Window w = XCreateSimpleWindow(otk::OBDisplay::display, root, 0, 0, 1, 1, 0, 0, 0);
assert(w != None); assert(w != None);
_support_windows.push_back(w); _support_windows.push_back(w);
@ -249,13 +248,13 @@ void XAtom::setSupported(const otk::ScreenInfo *screen) {
* Sets a window property on a window, optionally appending to the existing * Sets a window property on a window, optionally appending to the existing
* value. * value.
*/ */
void XAtom::setValue(Window win, Atom atom, Atom type, void OBAtom::setValue(Window win, Atom atom, Atom type,
unsigned char* data, int size, int nelements, unsigned char* data, int size, int nelements,
bool append) const { bool append) const {
assert(win != None); assert(atom != None); assert(type != None); assert(win != None); assert(atom != None); assert(type != None);
assert(nelements == 0 || (nelements > 0 && data != (unsigned char *) 0)); assert(nelements == 0 || (nelements > 0 && data != (unsigned char *) 0));
assert(size == 8 || size == 16 || size == 32); assert(size == 8 || size == 16 || size == 32);
XChangeProperty(_display, win, atom, type, size, XChangeProperty(otk::OBDisplay::display, win, atom, type, size,
(append ? PropModeAppend : PropModeReplace), (append ? PropModeAppend : PropModeReplace),
data, nelements); data, nelements);
} }
@ -264,7 +263,7 @@ void XAtom::setValue(Window win, Atom atom, Atom type,
/* /*
* Set a 32-bit property value on a window. * Set a 32-bit property value on a window.
*/ */
void XAtom::setValue(Window win, Atoms atom, Atoms type, void OBAtom::setValue(Window win, Atoms atom, Atoms type,
unsigned long value) const { unsigned long value) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_ATOMS); assert(type >= 0 && type < NUM_ATOMS);
@ -276,7 +275,7 @@ void XAtom::setValue(Window win, Atoms atom, Atoms type,
/* /*
* Set an array of 32-bit properties value on a window. * Set an array of 32-bit properties value on a window.
*/ */
void XAtom::setValue(Window win, Atoms atom, Atoms type, void OBAtom::setValue(Window win, Atoms atom, Atoms type,
unsigned long value[], int elements) const { unsigned long value[], int elements) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_ATOMS); assert(type >= 0 && type < NUM_ATOMS);
@ -288,7 +287,7 @@ void XAtom::setValue(Window win, Atoms atom, Atoms type,
/* /*
* Set an string property value on a window. * Set an string property value on a window.
*/ */
void XAtom::setValue(Window win, Atoms atom, StringType type, void OBAtom::setValue(Window win, Atoms atom, StringType type,
const std::string &value) const { const std::string &value) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_STRING_TYPE); assert(type >= 0 && type < NUM_STRING_TYPE);
@ -308,7 +307,7 @@ void XAtom::setValue(Window win, Atoms atom, StringType type,
/* /*
* Set an array of string property values on a window. * Set an array of string property values on a window.
*/ */
void XAtom::setValue(Window win, Atoms atom, StringType type, void OBAtom::setValue(Window win, Atoms atom, StringType type,
const StringVect &strings) const { const StringVect &strings) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_STRING_TYPE); assert(type >= 0 && type < NUM_STRING_TYPE);
@ -340,7 +339,7 @@ void XAtom::setValue(Window win, Atoms atom, StringType type,
* property did not exist on the window, or has a different type/size format * property did not exist on the window, or has a different type/size format
* than the user tried to retrieve. * than the user tried to retrieve.
*/ */
bool XAtom::getValue(Window win, Atom atom, Atom type, bool OBAtom::getValue(Window win, Atom atom, Atom type,
unsigned long &nelements, unsigned char **value, unsigned long &nelements, unsigned char **value,
int size) const { int size) const {
assert(win != None); assert(atom != None); assert(type != None); assert(win != None); assert(atom != None); assert(type != None);
@ -355,7 +354,7 @@ bool XAtom::getValue(Window win, Atom atom, Atom type,
bool ret = False; bool ret = False;
// try get the first element // try get the first element
result = XGetWindowProperty(_display, win, atom, 0l, 1l, False, result = XGetWindowProperty(otk::OBDisplay::display, win, atom, 0l, 1l, False,
AnyPropertyType, &ret_type, &ret_size, AnyPropertyType, &ret_type, &ret_size,
&nelements, &ret_bytes, &c_val); &nelements, &ret_bytes, &c_val);
ret = (result == Success && ret_type == type && ret_size == size && ret = (result == Success && ret_type == type && ret_size == size &&
@ -373,7 +372,7 @@ bool XAtom::getValue(Window win, Atom atom, Atom type,
int remain = (ret_bytes - 1)/sizeof(long) + 1 + 1; int remain = (ret_bytes - 1)/sizeof(long) + 1 + 1;
if (remain > size/8 * (signed)maxread) // dont get more than the max if (remain > size/8 * (signed)maxread) // dont get more than the max
remain = size/8 * (signed)maxread; remain = size/8 * (signed)maxread;
result = XGetWindowProperty(_display, win, atom, 0l, remain, False, type, result = XGetWindowProperty(otk::OBDisplay::display, win, atom, 0l, remain, False, type,
&ret_type, &ret_size, &nelements, &ret_bytes, &ret_type, &ret_size, &nelements, &ret_bytes,
&c_val); &c_val);
ret = (result == Success && ret_type == type && ret_size == size && ret = (result == Success && ret_type == type && ret_size == size &&
@ -398,7 +397,7 @@ bool XAtom::getValue(Window win, Atom atom, Atom type,
/* /*
* Gets a 32-bit property's value from a window. * Gets a 32-bit property's value from a window.
*/ */
bool XAtom::getValue(Window win, Atoms atom, Atoms type, bool OBAtom::getValue(Window win, Atoms atom, Atoms type,
unsigned long &nelements, unsigned long &nelements,
unsigned long **value) const { unsigned long **value) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
@ -411,7 +410,7 @@ bool XAtom::getValue(Window win, Atoms atom, Atoms type,
/* /*
* Gets a single 32-bit property's value from a window. * Gets a single 32-bit property's value from a window.
*/ */
bool XAtom::getValue(Window win, Atoms atom, Atoms type, bool OBAtom::getValue(Window win, Atoms atom, Atoms type,
unsigned long &value) const { unsigned long &value) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_ATOMS); assert(type >= 0 && type < NUM_ATOMS);
@ -429,7 +428,7 @@ bool XAtom::getValue(Window win, Atoms atom, Atoms type,
/* /*
* Gets an string property's value from a window. * Gets an string property's value from a window.
*/ */
bool XAtom::getValue(Window win, Atoms atom, StringType type, bool OBAtom::getValue(Window win, Atoms atom, StringType type,
std::string &value) const { std::string &value) const {
unsigned long n = 1; unsigned long n = 1;
StringVect s; StringVect s;
@ -441,7 +440,7 @@ bool XAtom::getValue(Window win, Atoms atom, StringType type,
} }
bool XAtom::getValue(Window win, Atoms atom, StringType type, bool OBAtom::getValue(Window win, Atoms atom, StringType type,
unsigned long &nelements, StringVect &strings) const { unsigned long &nelements, StringVect &strings) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
assert(type >= 0 && type < NUM_STRING_TYPE); assert(type >= 0 && type < NUM_STRING_TYPE);
@ -484,13 +483,13 @@ bool XAtom::getValue(Window win, Atoms atom, StringType type,
/* /*
* Removes a property entirely from a window. * Removes a property entirely from a window.
*/ */
void XAtom::eraseValue(Window win, Atoms atom) const { void OBAtom::eraseValue(Window win, Atoms atom) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
XDeleteProperty(_display, win, _atoms[atom]); XDeleteProperty(otk::OBDisplay::display, win, _atoms[atom]);
} }
void XAtom::sendClientMessage(Window target, Atoms type, Window about, void OBAtom::sendClientMessage(Window target, Atoms type, Window about,
long data, long data1, long data2, long data, long data1, long data2,
long data3, long data4) const { long data3, long data4) const {
assert(atom >= 0 && atom < NUM_ATOMS); assert(atom >= 0 && atom < NUM_ATOMS);
@ -507,7 +506,7 @@ void XAtom::sendClientMessage(Window target, Atoms type, Window about,
e.xclient.data.l[3] = data3; e.xclient.data.l[3] = data3;
e.xclient.data.l[4] = data4; e.xclient.data.l[4] = data4;
XSendEvent(_display, target, False, XSendEvent(otk::OBDisplay::display, target, False,
SubstructureRedirectMask | SubstructureNotifyMask, SubstructureRedirectMask | SubstructureNotifyMask,
&e); &e);
} }

View file

@ -1,6 +1,6 @@
// XAtom.h for Openbox // OBAtom.h for Openbox
#ifndef __XAtom_h #ifndef __atom_hh
#define __XAtom_h #define __atom_hh
/*! @file xatom.hh /*! @file xatom.hh
@brief Provides access to atoms on the display @brief Provides access to atoms on the display
@ -20,7 +20,7 @@ extern "C" {
namespace ob { namespace ob {
class XAtom { class OBAtom {
public: public:
enum Atoms { enum Atoms {
// types // types
@ -152,7 +152,6 @@ public:
private: private:
typedef std::vector<Window> SupportWindows; typedef std::vector<Window> SupportWindows;
Display *_display;
// windows used to specify support for NETWM // windows used to specify support for NETWM
SupportWindows _support_windows; SupportWindows _support_windows;
Atom _atoms[NUM_ATOMS]; Atom _atoms[NUM_ATOMS];
@ -166,14 +165,14 @@ private:
int size) const; int size) const;
// no copying!! // no copying!!
XAtom(const XAtom &); OBAtom(const OBAtom &);
XAtom& operator=(const XAtom&); OBAtom& operator=(const OBAtom&);
public: public:
typedef std::vector<std::string> StringVect; typedef std::vector<std::string> StringVect;
XAtom(Display *d); OBAtom();
virtual ~XAtom(); virtual ~OBAtom();
// setup support on a screen, each screen should call this once in its // setup support on a screen, each screen should call this once in its
// constructor. // constructor.
@ -216,4 +215,4 @@ public:
} }
#endif // __XAtom_h #endif // __atom_hh

View file

@ -1049,7 +1049,7 @@ void BlackboxWindow::positionWindows(void) {
void BlackboxWindow::updateStrut(void) { void BlackboxWindow::updateStrut(void) {
unsigned long num = 4; unsigned long num = 4;
unsigned long *data; unsigned long *data;
if (! xatom->getValue(client.window, XAtom::net_wm_strut, XAtom::cardinal, if (! xatom->getValue(client.window, OBAtom::net_wm_strut, OBAtom::cardinal,
num, &data)) num, &data))
return; return;
@ -1071,27 +1071,27 @@ bool BlackboxWindow::getWindowType(void) {
unsigned long *val; unsigned long *val;
unsigned long num = (unsigned) -1; unsigned long num = (unsigned) -1;
if (xatom->getValue(client.window, XAtom::net_wm_window_type, XAtom::atom, if (xatom->getValue(client.window, OBAtom::net_wm_window_type, OBAtom::atom,
num, &val)) { num, &val)) {
for (unsigned long i = 0; i < num; ++i) { for (unsigned long i = 0; i < num; ++i) {
if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_desktop)) if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_desktop))
window_type = Type_Desktop; window_type = Type_Desktop;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_dock)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_dock))
window_type = Type_Dock; window_type = Type_Dock;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_toolbar)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_toolbar))
window_type = Type_Toolbar; window_type = Type_Toolbar;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_menu)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_menu))
window_type = Type_Menu; window_type = Type_Menu;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_utility)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_utility))
window_type = Type_Utility; window_type = Type_Utility;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_splash)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_splash))
window_type = Type_Splash; window_type = Type_Splash;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_dialog)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_dialog))
window_type = Type_Dialog; window_type = Type_Dialog;
else if (val[i] == xatom->getAtom(XAtom::net_wm_window_type_normal)) else if (val[i] == xatom->getAtom(OBAtom::net_wm_window_type_normal))
window_type = Type_Normal; window_type = Type_Normal;
else if (val[i] == else if (val[i] ==
xatom->getAtom(XAtom::kde_net_wm_window_type_override)) xatom->getAtom(OBAtom::kde_net_wm_window_type_override))
mwm_decorations = 0; // prevent this window from getting any decor mwm_decorations = 0; // prevent this window from getting any decor
} }
delete val; delete val;
@ -1115,21 +1115,21 @@ bool BlackboxWindow::getWindowType(void) {
void BlackboxWindow::getWMName(void) { void BlackboxWindow::getWMName(void) {
if (xatom->getValue(client.window, XAtom::net_wm_name, if (xatom->getValue(client.window, OBAtom::net_wm_name,
XAtom::utf8, client.title) && OBAtom::utf8, client.title) &&
!client.title.empty()) { !client.title.empty()) {
xatom->eraseValue(client.window, XAtom::net_wm_visible_name); xatom->eraseValue(client.window, OBAtom::net_wm_visible_name);
return; return;
} }
//fall through to using WM_NAME //fall through to using WM_NAME
if (xatom->getValue(client.window, XAtom::wm_name, XAtom::ansi, client.title) if (xatom->getValue(client.window, OBAtom::wm_name, OBAtom::ansi, client.title)
&& !client.title.empty()) { && !client.title.empty()) {
xatom->eraseValue(client.window, XAtom::net_wm_visible_name); xatom->eraseValue(client.window, OBAtom::net_wm_visible_name);
return; return;
} }
// fall back to an internal default // fall back to an internal default
client.title = "Unnamed"; client.title = "Unnamed";
xatom->setValue(client.window, XAtom::net_wm_visible_name, XAtom::utf8, xatom->setValue(client.window, OBAtom::net_wm_visible_name, OBAtom::utf8,
client.title); client.title);
#ifdef DEBUG_WITH_ID #ifdef DEBUG_WITH_ID
@ -1143,22 +1143,22 @@ void BlackboxWindow::getWMName(void) {
void BlackboxWindow::getWMIconName(void) { void BlackboxWindow::getWMIconName(void) {
if (xatom->getValue(client.window, XAtom::net_wm_icon_name, if (xatom->getValue(client.window, OBAtom::net_wm_icon_name,
XAtom::utf8, client.icon_title) && OBAtom::utf8, client.icon_title) &&
!client.icon_title.empty()) { !client.icon_title.empty()) {
xatom->eraseValue(client.window, XAtom::net_wm_visible_icon_name); xatom->eraseValue(client.window, OBAtom::net_wm_visible_icon_name);
return; return;
} }
//fall through to using WM_ICON_NAME //fall through to using WM_ICON_NAME
if (xatom->getValue(client.window, XAtom::wm_icon_name, XAtom::ansi, if (xatom->getValue(client.window, OBAtom::wm_icon_name, OBAtom::ansi,
client.icon_title) && client.icon_title) &&
!client.icon_title.empty()) { !client.icon_title.empty()) {
xatom->eraseValue(client.window, XAtom::net_wm_visible_icon_name); xatom->eraseValue(client.window, OBAtom::net_wm_visible_icon_name);
return; return;
} }
// fall back to using the main name // fall back to using the main name
client.icon_title = client.title; client.icon_title = client.title;
xatom->setValue(client.window, XAtom::net_wm_visible_icon_name, XAtom::utf8, xatom->setValue(client.window, OBAtom::net_wm_visible_icon_name, OBAtom::utf8,
client.icon_title); client.icon_title);
} }
@ -1177,10 +1177,10 @@ void BlackboxWindow::getWMProtocols(void) {
if (XGetWMProtocols(otk::OBDisplay::display, client.window, if (XGetWMProtocols(otk::OBDisplay::display, client.window,
&proto, &num_return)) { &proto, &num_return)) {
for (int i = 0; i < num_return; ++i) { for (int i = 0; i < num_return; ++i) {
if (proto[i] == xatom->getAtom(XAtom::wm_delete_window)) { if (proto[i] == xatom->getAtom(OBAtom::wm_delete_window)) {
decorations |= Decor_Close; decorations |= Decor_Close;
functions |= Func_Close; functions |= Func_Close;
} else if (proto[i] == xatom->getAtom(XAtom::wm_take_focus)) } else if (proto[i] == xatom->getAtom(OBAtom::wm_take_focus))
flags.send_focus_message = True; flags.send_focus_message = True;
} }
@ -1318,7 +1318,7 @@ void BlackboxWindow::getWMNormalHints(void) {
void BlackboxWindow::getNetWMHints(void) { void BlackboxWindow::getNetWMHints(void) {
unsigned long workspace; unsigned long workspace;
if (xatom->getValue(client.window, XAtom::net_wm_desktop, XAtom::cardinal, if (xatom->getValue(client.window, OBAtom::net_wm_desktop, OBAtom::cardinal,
workspace)) { workspace)) {
if (workspace == 0xffffffff) if (workspace == 0xffffffff)
flags.stuck = True; flags.stuck = True;
@ -1328,26 +1328,26 @@ void BlackboxWindow::getNetWMHints(void) {
unsigned long *state; unsigned long *state;
unsigned long num = (unsigned) -1; unsigned long num = (unsigned) -1;
if (xatom->getValue(client.window, XAtom::net_wm_state, XAtom::atom, if (xatom->getValue(client.window, OBAtom::net_wm_state, OBAtom::atom,
num, &state)) { num, &state)) {
bool vert = False, bool vert = False,
horz = False; horz = False;
for (unsigned long i = 0; i < num; ++i) { for (unsigned long i = 0; i < num; ++i) {
if (state[i] == xatom->getAtom(XAtom::net_wm_state_modal)) if (state[i] == xatom->getAtom(OBAtom::net_wm_state_modal))
flags.modal = True; flags.modal = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_shaded)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_shaded))
flags.shaded = True; flags.shaded = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_skip_taskbar)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_skip_taskbar))
flags.skip_taskbar = True; flags.skip_taskbar = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_skip_pager)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_skip_pager))
flags.skip_pager = True; flags.skip_pager = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_fullscreen)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_fullscreen))
flags.fullscreen = True; flags.fullscreen = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_hidden)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_hidden))
setState(IconicState); setState(IconicState);
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_maximized_vert)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_maximized_vert))
vert = True; vert = True;
else if (state[i] == xatom->getAtom(XAtom::net_wm_state_maximized_horz)) else if (state[i] == xatom->getAtom(OBAtom::net_wm_state_maximized_horz))
horz = True; horz = True;
} }
if (vert && horz) if (vert && horz)
@ -1374,8 +1374,8 @@ void BlackboxWindow::getMWMHints(void) {
MwmHints *mwm_hint; MwmHints *mwm_hint;
num = PropMwmHintsElements; num = PropMwmHintsElements;
if (! xatom->getValue(client.window, XAtom::motif_wm_hints, if (! xatom->getValue(client.window, OBAtom::motif_wm_hints,
XAtom::motif_wm_hints, num, OBAtom::motif_wm_hints, num,
(unsigned long **)&mwm_hint)) (unsigned long **)&mwm_hint))
return; return;
if (num < PropMwmHintsElements) { if (num < PropMwmHintsElements) {
@ -1438,8 +1438,8 @@ bool BlackboxWindow::getBlackboxHints(void) {
BlackboxHints *blackbox_hint; BlackboxHints *blackbox_hint;
num = PropBlackboxHintsElements; num = PropBlackboxHintsElements;
if (! xatom->getValue(client.window, XAtom::blackbox_hints, if (! xatom->getValue(client.window, OBAtom::blackbox_hints,
XAtom::blackbox_hints, num, OBAtom::blackbox_hints, num,
(unsigned long **)&blackbox_hint)) (unsigned long **)&blackbox_hint))
return False; return False;
if (num < PropBlackboxHintsElements) { if (num < PropBlackboxHintsElements) {
@ -1721,11 +1721,11 @@ bool BlackboxWindow::setInputFocus(void) {
if (flags.send_focus_message) { if (flags.send_focus_message) {
XEvent ce; XEvent ce;
ce.xclient.type = ClientMessage; ce.xclient.type = ClientMessage;
ce.xclient.message_type = xatom->getAtom(XAtom::wm_protocols); ce.xclient.message_type = xatom->getAtom(OBAtom::wm_protocols);
ce.xclient.display = otk::OBDisplay::display; ce.xclient.display = otk::OBDisplay::display;
ce.xclient.window = client.window; ce.xclient.window = client.window;
ce.xclient.format = 32; ce.xclient.format = 32;
ce.xclient.data.l[0] = xatom->getAtom(XAtom::wm_take_focus); ce.xclient.data.l[0] = xatom->getAtom(OBAtom::wm_take_focus);
ce.xclient.data.l[1] = blackbox->getLastTime(); ce.xclient.data.l[1] = blackbox->getLastTime();
ce.xclient.data.l[2] = 0l; ce.xclient.data.l[2] = 0l;
ce.xclient.data.l[3] = 0l; ce.xclient.data.l[3] = 0l;
@ -1846,11 +1846,11 @@ void BlackboxWindow::close(void) {
XEvent ce; XEvent ce;
ce.xclient.type = ClientMessage; ce.xclient.type = ClientMessage;
ce.xclient.message_type = xatom->getAtom(XAtom::wm_protocols); ce.xclient.message_type = xatom->getAtom(OBAtom::wm_protocols);
ce.xclient.display = otk::OBDisplay::display; ce.xclient.display = otk::OBDisplay::display;
ce.xclient.window = client.window; ce.xclient.window = client.window;
ce.xclient.format = 32; ce.xclient.format = 32;
ce.xclient.data.l[0] = xatom->getAtom(XAtom::wm_delete_window); ce.xclient.data.l[0] = xatom->getAtom(OBAtom::wm_delete_window);
ce.xclient.data.l[1] = CurrentTime; ce.xclient.data.l[1] = CurrentTime;
ce.xclient.data.l[2] = 0l; ce.xclient.data.l[2] = 0l;
ce.xclient.data.l[3] = 0l; ce.xclient.data.l[3] = 0l;
@ -2034,7 +2034,7 @@ void BlackboxWindow::setWorkspace(unsigned int n) {
*/ */
n = 0xffffffff; n = 0xffffffff;
} }
xatom->setValue(client.window, XAtom::net_wm_desktop, XAtom::cardinal, n); xatom->setValue(client.window, OBAtom::net_wm_desktop, OBAtom::cardinal, n);
} }
@ -2087,7 +2087,7 @@ void BlackboxWindow::stick(void) {
screen->reassociateWindow(this, BSENTINEL, True); screen->reassociateWindow(this, BSENTINEL, True);
// temporary fix since sticky windows suck. set the hint to what we // temporary fix since sticky windows suck. set the hint to what we
// actually hold in our data. // actually hold in our data.
xatom->setValue(client.window, XAtom::net_wm_desktop, XAtom::cardinal, xatom->setValue(client.window, OBAtom::net_wm_desktop, OBAtom::cardinal,
blackbox_attrib.workspace); blackbox_attrib.workspace);
setState(current_state); setState(current_state);
@ -2099,7 +2099,7 @@ void BlackboxWindow::stick(void) {
// temporary fix since sticky windows suck. set the hint to a different // temporary fix since sticky windows suck. set the hint to a different
// value than that contained in the class' data. // value than that contained in the class' data.
xatom->setValue(client.window, XAtom::net_wm_desktop, XAtom::cardinal, xatom->setValue(client.window, OBAtom::net_wm_desktop, OBAtom::cardinal,
0xffffffff); 0xffffffff);
for (unsigned int i = 0; i < screen->getNumberOfWorkspaces(); ++i) for (unsigned int i = 0; i < screen->getNumberOfWorkspaces(); ++i)
@ -2254,20 +2254,20 @@ void BlackboxWindow::setAllowedActions(void) {
Atom actions[7]; Atom actions[7];
int num = 0; int num = 0;
actions[num++] = xatom->getAtom(XAtom::net_wm_action_shade); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_shade);
actions[num++] = xatom->getAtom(XAtom::net_wm_action_change_desktop); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_change_desktop);
actions[num++] = xatom->getAtom(XAtom::net_wm_action_close); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_close);
if (functions & Func_Move) if (functions & Func_Move)
actions[num++] = xatom->getAtom(XAtom::net_wm_action_move); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_move);
if (functions & Func_Resize) if (functions & Func_Resize)
actions[num++] = xatom->getAtom(XAtom::net_wm_action_resize); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_resize);
if (functions & Func_Maximize) { if (functions & Func_Maximize) {
actions[num++] = xatom->getAtom(XAtom::net_wm_action_maximize_horz); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_maximize_horz);
actions[num++] = xatom->getAtom(XAtom::net_wm_action_maximize_vert); actions[num++] = xatom->getAtom(OBAtom::net_wm_action_maximize_vert);
} }
xatom->setValue(client.window, XAtom::net_wm_allowed_actions, XAtom::atom, xatom->setValue(client.window, OBAtom::net_wm_allowed_actions, OBAtom::atom,
actions, num); actions, num);
} }
@ -2278,37 +2278,37 @@ void BlackboxWindow::setState(unsigned long new_state) {
unsigned long state[2]; unsigned long state[2];
state[0] = current_state; state[0] = current_state;
state[1] = None; state[1] = None;
xatom->setValue(client.window, XAtom::wm_state, XAtom::wm_state, state, 2); xatom->setValue(client.window, OBAtom::wm_state, OBAtom::wm_state, state, 2);
xatom->setValue(client.window, XAtom::blackbox_attributes, xatom->setValue(client.window, OBAtom::blackbox_attributes,
XAtom::blackbox_attributes, (unsigned long *)&blackbox_attrib, OBAtom::blackbox_attributes, (unsigned long *)&blackbox_attrib,
PropBlackboxAttributesElements); PropBlackboxAttributesElements);
Atom netstate[8]; Atom netstate[8];
int num = 0; int num = 0;
if (flags.modal) if (flags.modal)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_modal); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_modal);
if (flags.shaded) if (flags.shaded)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_shaded); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_shaded);
if (flags.iconic) if (flags.iconic)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_hidden); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_hidden);
if (flags.skip_taskbar) if (flags.skip_taskbar)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_skip_taskbar); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_skip_taskbar);
if (flags.skip_pager) if (flags.skip_pager)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_skip_pager); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_skip_pager);
if (flags.fullscreen) if (flags.fullscreen)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_fullscreen); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_fullscreen);
if (flags.maximized == 1 || flags.maximized == 2) if (flags.maximized == 1 || flags.maximized == 2)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_maximized_vert); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_maximized_vert);
if (flags.maximized == 1 || flags.maximized == 3) if (flags.maximized == 1 || flags.maximized == 3)
netstate[num++] = xatom->getAtom(XAtom::net_wm_state_maximized_horz); netstate[num++] = xatom->getAtom(OBAtom::net_wm_state_maximized_horz);
xatom->setValue(client.window, XAtom::net_wm_state, XAtom::atom, xatom->setValue(client.window, OBAtom::net_wm_state, OBAtom::atom,
netstate, num); netstate, num);
} }
bool BlackboxWindow::getState(void) { bool BlackboxWindow::getState(void) {
bool ret = xatom->getValue(client.window, XAtom::wm_state, XAtom::wm_state, bool ret = xatom->getValue(client.window, OBAtom::wm_state, OBAtom::wm_state,
current_state); current_state);
if (! ret) current_state = 0; if (! ret) current_state = 0;
return ret; return ret;
@ -2318,8 +2318,8 @@ bool BlackboxWindow::getState(void) {
void BlackboxWindow::restoreAttributes(void) { void BlackboxWindow::restoreAttributes(void) {
unsigned long num = PropBlackboxAttributesElements; unsigned long num = PropBlackboxAttributesElements;
BlackboxAttributes *net; BlackboxAttributes *net;
if (! xatom->getValue(client.window, XAtom::blackbox_attributes, if (! xatom->getValue(client.window, OBAtom::blackbox_attributes,
XAtom::blackbox_attributes, num, OBAtom::blackbox_attributes, num,
(unsigned long **)&net)) (unsigned long **)&net))
return; return;
if (num < PropBlackboxAttributesElements) { if (num < PropBlackboxAttributesElements) {
@ -2875,7 +2875,7 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
if (flags.iconic) screen->propagateWindowName(this); if (flags.iconic) screen->propagateWindowName(this);
break; break;
case XAtom::net_wm_name: case OBAtom::net_wm_name:
case XA_WM_NAME: case XA_WM_NAME:
getWMName(); getWMName();
@ -2917,7 +2917,7 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
} }
default: default:
if (pe->atom == xatom->getAtom(XAtom::wm_protocols)) { if (pe->atom == xatom->getAtom(OBAtom::wm_protocols)) {
getWMProtocols(); getWMProtocols();
if ((decorations & Decor_Close) && (! frame.close_button)) { if ((decorations & Decor_Close) && (! frame.close_button)) {
@ -2927,7 +2927,7 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
XMapSubwindows(otk::OBDisplay::display, frame.title); XMapSubwindows(otk::OBDisplay::display, frame.title);
} }
} }
} else if (pe->atom == xatom->getAtom(XAtom::net_wm_strut)) { } else if (pe->atom == xatom->getAtom(OBAtom::net_wm_strut)) {
updateStrut(); updateStrut();
} }
@ -3876,8 +3876,8 @@ void BlackboxWindow::restore(bool remap) {
// erase the netwm stuff that we read when a window maps, so that it // erase the netwm stuff that we read when a window maps, so that it
// doesn't persist between mappings. // doesn't persist between mappings.
// (these are the ones read in getNetWMFlags().) // (these are the ones read in getNetWMFlags().)
xatom->eraseValue(client.window, XAtom::net_wm_desktop); xatom->eraseValue(client.window, OBAtom::net_wm_desktop);
xatom->eraseValue(client.window, XAtom::net_wm_state); xatom->eraseValue(client.window, OBAtom::net_wm_state);
restoreGravity(client.rect); restoreGravity(client.rect);

View file

@ -104,7 +104,7 @@ public:
private: private:
Blackbox *blackbox; Blackbox *blackbox;
BScreen *screen; BScreen *screen;
XAtom *xatom; OBAtom *xatom;
otk::OBTimer *timer; otk::OBTimer *timer;
BlackboxAttributes blackbox_attrib; BlackboxAttributes blackbox_attrib;

View file

@ -83,7 +83,7 @@ using std::string;
#include "util.hh" #include "util.hh"
#include "bbwindow.hh" #include "bbwindow.hh"
#include "workspace.hh" #include "workspace.hh"
#include "xatom.hh" #include "atom.hh"
namespace ob { namespace ob {
@ -120,7 +120,7 @@ Blackbox::Blackbox(int argc, char **m_argv, char *rc)
load_rc(); load_rc();
xatom = new XAtom(otk::OBDisplay::display); xatom = new OBAtom();
cursor.session = XCreateFontCursor(otk::OBDisplay::display, XC_left_ptr); cursor.session = XCreateFontCursor(otk::OBDisplay::display, XC_left_ptr);
cursor.move = XCreateFontCursor(otk::OBDisplay::display, XC_fleur); cursor.move = XCreateFontCursor(otk::OBDisplay::display, XC_fleur);
@ -558,7 +558,7 @@ void Blackbox::process_event(XEvent *e) {
case ClientMessage: { case ClientMessage: {
if (e->xclient.format == 32) { if (e->xclient.format == 32) {
if (e->xclient.message_type == xatom->getAtom(XAtom::wm_change_state)) { if (e->xclient.message_type == xatom->getAtom(OBAtom::wm_change_state)) {
// WM_CHANGE_STATE message // WM_CHANGE_STATE message
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
if (! win || ! win->validateClient()) return; if (! win || ! win->validateClient()) return;
@ -568,9 +568,9 @@ void Blackbox::process_event(XEvent *e) {
if (e->xclient.data.l[0] == NormalState) if (e->xclient.data.l[0] == NormalState)
win->deiconify(); win->deiconify();
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::blackbox_change_workspace) || xatom->getAtom(OBAtom::blackbox_change_workspace) ||
e->xclient.message_type == e->xclient.message_type ==
xatom->getAtom(XAtom::net_current_desktop)) { xatom->getAtom(OBAtom::net_current_desktop)) {
// NET_CURRENT_DESKTOP message // NET_CURRENT_DESKTOP message
BScreen *screen = searchScreen(e->xclient.window); BScreen *screen = searchScreen(e->xclient.window);
@ -578,14 +578,14 @@ void Blackbox::process_event(XEvent *e) {
if (screen && workspace < screen->getWorkspaceCount()) if (screen && workspace < screen->getWorkspaceCount())
screen->changeWorkspaceID(workspace); screen->changeWorkspaceID(workspace);
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::blackbox_change_window_focus)) { xatom->getAtom(OBAtom::blackbox_change_window_focus)) {
// TEMP HACK TO KEEP BBKEYS WORKING // TEMP HACK TO KEEP BBKEYS WORKING
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
if (win && win->isVisible() && win->setInputFocus()) if (win && win->isVisible() && win->setInputFocus())
win->installColormap(True); win->installColormap(True);
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_active_window)) { xatom->getAtom(OBAtom::net_active_window)) {
// NET_ACTIVE_WINDOW // NET_ACTIVE_WINDOW
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
@ -606,7 +606,7 @@ void Blackbox::process_event(XEvent *e) {
} }
} }
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::blackbox_cycle_window_focus)) { xatom->getAtom(OBAtom::blackbox_cycle_window_focus)) {
// BLACKBOX_CYCLE_WINDOW_FOCUS // BLACKBOX_CYCLE_WINDOW_FOCUS
BScreen *screen = searchScreen(e->xclient.window); BScreen *screen = searchScreen(e->xclient.window);
@ -617,7 +617,7 @@ void Blackbox::process_event(XEvent *e) {
screen->nextFocus(); screen->nextFocus();
} }
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_wm_desktop)) { xatom->getAtom(OBAtom::net_wm_desktop)) {
// NET_WM_DESKTOP // NET_WM_DESKTOP
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
@ -640,7 +640,7 @@ void Blackbox::process_event(XEvent *e) {
} }
} }
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::blackbox_change_attributes)) { xatom->getAtom(OBAtom::blackbox_change_attributes)) {
// BLACKBOX_CHANGE_ATTRIBUTES // BLACKBOX_CHANGE_ATTRIBUTES
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
@ -655,45 +655,45 @@ void Blackbox::process_event(XEvent *e) {
win->changeBlackboxHints(&net); win->changeBlackboxHints(&net);
} }
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_number_of_desktops)) { xatom->getAtom(OBAtom::net_number_of_desktops)) {
// NET_NUMBER_OF_DESKTOPS // NET_NUMBER_OF_DESKTOPS
BScreen *screen = searchScreen(e->xclient.window); BScreen *screen = searchScreen(e->xclient.window);
if (e->xclient.data.l[0] > 0) if (e->xclient.data.l[0] > 0)
screen->changeWorkspaceCount((unsigned) e->xclient.data.l[0]); screen->changeWorkspaceCount((unsigned) e->xclient.data.l[0]);
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_close_window)) { xatom->getAtom(OBAtom::net_close_window)) {
// NET_CLOSE_WINDOW // NET_CLOSE_WINDOW
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
if (win && win->validateClient()) if (win && win->validateClient())
win->close(); // could this be smarter? win->close(); // could this be smarter?
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_wm_moveresize)) { xatom->getAtom(OBAtom::net_wm_moveresize)) {
// NET_WM_MOVERESIZE // NET_WM_MOVERESIZE
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
if (win && win->validateClient()) { if (win && win->validateClient()) {
int x_root = e->xclient.data.l[0], int x_root = e->xclient.data.l[0],
y_root = e->xclient.data.l[1]; y_root = e->xclient.data.l[1];
if ((Atom) e->xclient.data.l[2] == if ((Atom) e->xclient.data.l[2] ==
xatom->getAtom(XAtom::net_wm_moveresize_move)) { xatom->getAtom(OBAtom::net_wm_moveresize_move)) {
win->beginMove(x_root, y_root); win->beginMove(x_root, y_root);
} else { } else {
if ((Atom) e->xclient.data.l[2] == if ((Atom) e->xclient.data.l[2] ==
xatom->getAtom(XAtom::net_wm_moveresize_size_topleft)) xatom->getAtom(OBAtom::net_wm_moveresize_size_topleft))
win->beginResize(x_root, y_root, BlackboxWindow::TopLeft); win->beginResize(x_root, y_root, BlackboxWindow::TopLeft);
else if ((Atom) e->xclient.data.l[2] == else if ((Atom) e->xclient.data.l[2] ==
xatom->getAtom(XAtom::net_wm_moveresize_size_topright)) xatom->getAtom(OBAtom::net_wm_moveresize_size_topright))
win->beginResize(x_root, y_root, BlackboxWindow::TopRight); win->beginResize(x_root, y_root, BlackboxWindow::TopRight);
else if ((Atom) e->xclient.data.l[2] == else if ((Atom) e->xclient.data.l[2] ==
xatom->getAtom(XAtom::net_wm_moveresize_size_bottomleft)) xatom->getAtom(OBAtom::net_wm_moveresize_size_bottomleft))
win->beginResize(x_root, y_root, BlackboxWindow::BottomLeft); win->beginResize(x_root, y_root, BlackboxWindow::BottomLeft);
else if ((Atom) e->xclient.data.l[2] == else if ((Atom) e->xclient.data.l[2] ==
xatom->getAtom(XAtom::net_wm_moveresize_size_bottomright)) xatom->getAtom(OBAtom::net_wm_moveresize_size_bottomright))
win->beginResize(x_root, y_root, BlackboxWindow::BottomRight); win->beginResize(x_root, y_root, BlackboxWindow::BottomRight);
} }
} }
} else if (e->xclient.message_type == } else if (e->xclient.message_type ==
xatom->getAtom(XAtom::net_wm_state)) { xatom->getAtom(OBAtom::net_wm_state)) {
// NET_WM_STATE // NET_WM_STATE
BlackboxWindow *win = searchWindow(e->xclient.window); BlackboxWindow *win = searchWindow(e->xclient.window);
if (win && win->validateClient()) { if (win && win->validateClient()) {
@ -707,10 +707,10 @@ void Blackbox::process_event(XEvent *e) {
if ((Atom) e->xclient.data.l[0] == 1) { if ((Atom) e->xclient.data.l[0] == 1) {
// ADD // ADD
if (state[i] == xatom->getAtom(XAtom::net_wm_state_modal)) { if (state[i] == xatom->getAtom(OBAtom::net_wm_state_modal)) {
win->setModal(True); win->setModal(True);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_vert)) { xatom->getAtom(OBAtom::net_wm_state_maximized_vert)) {
if (win->isMaximizedHoriz()) { if (win->isMaximizedHoriz()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(1); // full win->maximize(1); // full
@ -718,7 +718,7 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(2); // vert win->maximize(2); // vert
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_horz)) { xatom->getAtom(OBAtom::net_wm_state_maximized_horz)) {
if (win->isMaximizedVert()) { if (win->isMaximizedVert()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(1); // full win->maximize(1); // full
@ -726,25 +726,25 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(3); // horiz win->maximize(3); // horiz
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_shaded)) { xatom->getAtom(OBAtom::net_wm_state_shaded)) {
if (! win->isShaded()) if (! win->isShaded())
win->shade(); win->shade();
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_taskbar)) { xatom->getAtom(OBAtom::net_wm_state_skip_taskbar)) {
win->setSkipTaskbar(True); win->setSkipTaskbar(True);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_pager)) { xatom->getAtom(OBAtom::net_wm_state_skip_pager)) {
win->setSkipPager(True); win->setSkipPager(True);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_fullscreen)) { xatom->getAtom(OBAtom::net_wm_state_fullscreen)) {
win->setFullscreen(True); win->setFullscreen(True);
} }
} else if (action == 0) { } else if (action == 0) {
// REMOVE // REMOVE
if (state[i] == xatom->getAtom(XAtom::net_wm_state_modal)) { if (state[i] == xatom->getAtom(OBAtom::net_wm_state_modal)) {
win->setModal(False); win->setModal(False);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_vert)) { xatom->getAtom(OBAtom::net_wm_state_maximized_vert)) {
if (win->isMaximizedFull()) { if (win->isMaximizedFull()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(3); // horiz win->maximize(3); // horiz
@ -752,7 +752,7 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_horz)) { xatom->getAtom(OBAtom::net_wm_state_maximized_horz)) {
if (win->isMaximizedFull()) { if (win->isMaximizedFull()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(2); // vert win->maximize(2); // vert
@ -760,25 +760,25 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_shaded)) { xatom->getAtom(OBAtom::net_wm_state_shaded)) {
if (win->isShaded()) if (win->isShaded())
win->shade(); win->shade();
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_taskbar)) { xatom->getAtom(OBAtom::net_wm_state_skip_taskbar)) {
win->setSkipTaskbar(False); win->setSkipTaskbar(False);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_pager)) { xatom->getAtom(OBAtom::net_wm_state_skip_pager)) {
win->setSkipPager(False); win->setSkipPager(False);
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_fullscreen)) { xatom->getAtom(OBAtom::net_wm_state_fullscreen)) {
win->setFullscreen(False); win->setFullscreen(False);
} }
} else if (action == 2) { } else if (action == 2) {
// TOGGLE // TOGGLE
if (state[i] == xatom->getAtom(XAtom::net_wm_state_modal)) { if (state[i] == xatom->getAtom(OBAtom::net_wm_state_modal)) {
win->setModal(! win->isModal()); win->setModal(! win->isModal());
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_vert)) { xatom->getAtom(OBAtom::net_wm_state_maximized_vert)) {
if (win->isMaximizedFull()) { if (win->isMaximizedFull()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(3); // horiz win->maximize(3); // horiz
@ -791,7 +791,7 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(2); // vert win->maximize(2); // vert
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_maximized_horz)) { xatom->getAtom(OBAtom::net_wm_state_maximized_horz)) {
if (win->isMaximizedFull()) { if (win->isMaximizedFull()) {
win->maximize(0); // unmaximize win->maximize(0); // unmaximize
win->maximize(2); // vert win->maximize(2); // vert
@ -804,16 +804,16 @@ void Blackbox::process_event(XEvent *e) {
win->maximize(3); // horiz win->maximize(3); // horiz
} }
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_shaded)) { xatom->getAtom(OBAtom::net_wm_state_shaded)) {
win->shade(); win->shade();
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_taskbar)) { xatom->getAtom(OBAtom::net_wm_state_skip_taskbar)) {
win->setSkipTaskbar(! win->skipTaskbar()); win->setSkipTaskbar(! win->skipTaskbar());
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_skip_pager)) { xatom->getAtom(OBAtom::net_wm_state_skip_pager)) {
win->setSkipPager(! win->skipPager()); win->setSkipPager(! win->skipPager());
} else if (state[i] == } else if (state[i] ==
xatom->getAtom(XAtom::net_wm_state_fullscreen)) { xatom->getAtom(OBAtom::net_wm_state_fullscreen)) {
win->setFullscreen(! win->isFullscreen()); win->setFullscreen(! win->isFullscreen());
} }
} }

View file

@ -29,7 +29,7 @@ extern "C" {
#include "openbox.hh" #include "openbox.hh"
#include "configuration.hh" #include "configuration.hh"
#include "timer.hh" #include "timer.hh"
#include "xatom.hh" #include "atom.hh"
#define AttribShaded (1l << 0) #define AttribShaded (1l << 0)
#define AttribMaxHoriz (1l << 1) #define AttribMaxHoriz (1l << 1)
@ -112,7 +112,7 @@ private:
BlackboxWindow *focused_window, *changing_window; BlackboxWindow *focused_window, *changing_window;
otk::OBTimer *timer; otk::OBTimer *timer;
Configuration config; Configuration config;
XAtom *xatom; OBAtom *xatom;
bool no_focus, reconfigure_wait; bool no_focus, reconfigure_wait;
Time last_time; Time last_time;
@ -158,7 +158,7 @@ public:
void removeWindowSearch(Window window); void removeWindowSearch(Window window);
void removeGroupSearch(Window window); void removeGroupSearch(Window window);
inline XAtom *getXAtom(void) { return xatom; } inline OBAtom *getXAtom(void) { return xatom; }
inline BlackboxWindow *getFocusedWindow(void) { return focused_window; } inline BlackboxWindow *getFocusedWindow(void) { return focused_window; }
inline BlackboxWindow *getChangingWindow(void) { return changing_window; } inline BlackboxWindow *getChangingWindow(void) { return changing_window; }

View file

@ -16,6 +16,7 @@ extern "C" {
#include "otk/screeninfo.hh" #include "otk/screeninfo.hh"
#include "otk/timerqueuemanager.hh" #include "otk/timerqueuemanager.hh"
#include "xeventhandler.hh" #include "xeventhandler.hh"
#include "atom.hh"
namespace ob { namespace ob {
@ -112,7 +113,7 @@ public:
//! The main function of the Openbox class //! The main function of the Openbox class
/*! /*!
This function should be called after instantiating the Openbox class. This function should be called after instantiating the Openbox class.
Loops indefinately while handling all events in the application. It loops indefinately while handling all events for the application.
The Openbox::shutdown method will cause this function to exit. The Openbox::shutdown method will cause this function to exit.
*/ */
void eventLoop(); void eventLoop();

View file

@ -64,7 +64,7 @@ using std::string;
#include "bbwindow.hh" #include "bbwindow.hh"
#include "workspace.hh" #include "workspace.hh"
#include "util.hh" #include "util.hh"
#include "xatom.hh" #include "atom.hh"
#ifndef FONT_ELEMENT_SIZE #ifndef FONT_ELEMENT_SIZE
#define FONT_ELEMENT_SIZE 50 #define FONT_ELEMENT_SIZE 50
@ -119,11 +119,11 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(scrn) {
#endif // HAVE_GETPID #endif // HAVE_GETPID
unsigned long geometry[] = { getWidth(), unsigned long geometry[] = { getWidth(),
getHeight()}; getHeight()};
xatom->setValue(getRootWindow(), XAtom::net_desktop_geometry, xatom->setValue(getRootWindow(), OBAtom::net_desktop_geometry,
XAtom::cardinal, geometry, 2); OBAtom::cardinal, geometry, 2);
unsigned long viewport[] = {0,0}; unsigned long viewport[] = {0,0};
xatom->setValue(getRootWindow(), XAtom::net_desktop_viewport, xatom->setValue(getRootWindow(), OBAtom::net_desktop_viewport,
XAtom::cardinal, viewport, 2); OBAtom::cardinal, viewport, 2);
XDefineCursor(otk::OBDisplay::display, getRootWindow(), XDefineCursor(otk::OBDisplay::display, getRootWindow(),
@ -194,8 +194,8 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(scrn) {
current_workspace = workspacesList.front(); current_workspace = workspacesList.front();
xatom->setValue(getRootWindow(), XAtom::net_current_desktop, xatom->setValue(getRootWindow(), OBAtom::net_current_desktop,
XAtom::cardinal, 0); //first workspace OBAtom::cardinal, 0); //first workspace
raiseWindows(0, 0); // this also initializes the empty stacking list raiseWindows(0, 0); // this also initializes the empty stacking list
@ -630,7 +630,7 @@ void BScreen::load_rc(void) {
resource.col_direction = TopBottom; resource.col_direction = TopBottom;
if (config->getValue(screenstr + "workspaceNames", s)) { if (config->getValue(screenstr + "workspaceNames", s)) {
XAtom::StringVect workspaceNames; OBAtom::StringVect workspaceNames;
string::const_iterator it = s.begin(), end = s.end(); string::const_iterator it = s.begin(), end = s.end();
while(1) { while(1) {
@ -642,7 +642,7 @@ void BScreen::load_rc(void) {
++it; ++it;
} }
xatom->setValue(getRootWindow(), XAtom::net_desktop_names, XAtom::utf8, xatom->setValue(getRootWindow(), OBAtom::net_desktop_names, OBAtom::utf8,
workspaceNames); workspaceNames);
} }
@ -1014,8 +1014,8 @@ void BScreen::changeWorkspaceID(unsigned int id) {
current_workspace = getWorkspace(id); current_workspace = getWorkspace(id);
xatom->setValue(getRootWindow(), XAtom::net_current_desktop, xatom->setValue(getRootWindow(), OBAtom::net_current_desktop,
XAtom::cardinal, id); OBAtom::cardinal, id);
current_workspace->showAll(); current_workspace->showAll();
@ -1069,11 +1069,11 @@ void BScreen::updateClientList(void) {
const BlackboxWindowList::iterator end = windowList.end(); const BlackboxWindowList::iterator end = windowList.end();
for (; it != end; ++it, ++win_it) for (; it != end; ++it, ++win_it)
*win_it = (*it)->getClientWindow(); *win_it = (*it)->getClientWindow();
xatom->setValue(getRootWindow(), XAtom::net_client_list, XAtom::window, xatom->setValue(getRootWindow(), OBAtom::net_client_list, OBAtom::window,
windows, windowList.size()); windows, windowList.size());
delete [] windows; delete [] windows;
} else } else
xatom->setValue(getRootWindow(), XAtom::net_client_list, XAtom::window, xatom->setValue(getRootWindow(), OBAtom::net_client_list, OBAtom::window,
0, 0); 0, 0);
updateStackingList(); updateStackingList();
@ -1106,12 +1106,12 @@ void BScreen::updateStackingList(void) {
end = stack_order.end(); end = stack_order.end();
for (; it != end; ++it, ++win_it) for (; it != end; ++it, ++win_it)
*win_it = (*it)->getClientWindow(); *win_it = (*it)->getClientWindow();
xatom->setValue(getRootWindow(), XAtom::net_client_list_stacking, xatom->setValue(getRootWindow(), OBAtom::net_client_list_stacking,
XAtom::window, windows, stack_order.size()); OBAtom::window, windows, stack_order.size());
delete [] windows; delete [] windows;
} else } else
xatom->setValue(getRootWindow(), XAtom::net_client_list_stacking, xatom->setValue(getRootWindow(), OBAtom::net_client_list_stacking,
XAtom::window, 0, 0); OBAtom::window, 0, 0);
} }
@ -1120,8 +1120,8 @@ void BScreen::addSystrayWindow(Window window) {
XSelectInput(otk::OBDisplay::display, window, StructureNotifyMask); XSelectInput(otk::OBDisplay::display, window, StructureNotifyMask);
systrayWindowList.push_back(window); systrayWindowList.push_back(window);
xatom->setValue(getRootWindow(), XAtom::kde_net_system_tray_windows, xatom->setValue(getRootWindow(), OBAtom::kde_net_system_tray_windows,
XAtom::window, OBAtom::window,
&systrayWindowList[0], systrayWindowList.size()); &systrayWindowList[0], systrayWindowList.size());
blackbox->saveSystrayWindowSearch(window, this); blackbox->saveSystrayWindowSearch(window, this);
@ -1137,8 +1137,8 @@ void BScreen::removeSystrayWindow(Window window) {
for (; it != end; ++it) for (; it != end; ++it)
if (*it == window) { if (*it == window) {
systrayWindowList.erase(it); systrayWindowList.erase(it);
xatom->setValue(getRootWindow(), XAtom::kde_net_system_tray_windows, xatom->setValue(getRootWindow(), OBAtom::kde_net_system_tray_windows,
XAtom::window, OBAtom::window,
&systrayWindowList[0], systrayWindowList.size()); &systrayWindowList[0], systrayWindowList.size());
blackbox->removeSystrayWindowSearch(window); blackbox->removeSystrayWindowSearch(window);
XSelectInput(otk::OBDisplay::display, window, NoEventMask); XSelectInput(otk::OBDisplay::display, window, NoEventMask);
@ -1154,8 +1154,8 @@ void BScreen::removeSystrayWindow(Window window) {
void BScreen::manageWindow(Window w) { void BScreen::manageWindow(Window w) {
// is the window a KDE systray window? // is the window a KDE systray window?
Window systray; Window systray;
if (xatom->getValue(w, XAtom::kde_net_wm_system_tray_window_for, if (xatom->getValue(w, OBAtom::kde_net_wm_system_tray_window_for,
XAtom::window, systray) && systray != None) { OBAtom::window, systray) && systray != None) {
addSystrayWindow(w); addSystrayWindow(w);
return; return;
} }
@ -1198,8 +1198,8 @@ void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) {
// is the window a KDE systray window? // is the window a KDE systray window?
Window systray; Window systray;
if (xatom->getValue(w->getClientWindow(), if (xatom->getValue(w->getClientWindow(),
XAtom::kde_net_wm_system_tray_window_for, OBAtom::kde_net_wm_system_tray_window_for,
XAtom::window, systray) && systray != None) { OBAtom::window, systray) && systray != None) {
removeSystrayWindow(w->getClientWindow()); removeSystrayWindow(w->getClientWindow());
return; return;
} }
@ -1271,18 +1271,18 @@ void BScreen::updateWorkArea(void) {
dims[(i * 4) + 2] = area.width(); dims[(i * 4) + 2] = area.width();
dims[(i * 4) + 3] = area.height(); dims[(i * 4) + 3] = area.height();
} }
xatom->setValue(getRootWindow(), XAtom::net_workarea, XAtom::cardinal, xatom->setValue(getRootWindow(), OBAtom::net_workarea, OBAtom::cardinal,
dims, 4 * workspacesList.size()); dims, 4 * workspacesList.size());
delete [] dims; delete [] dims;
} else } else
xatom->setValue(getRootWindow(), XAtom::net_workarea, XAtom::cardinal, xatom->setValue(getRootWindow(), OBAtom::net_workarea, OBAtom::cardinal,
0, 0); 0, 0);
} }
void BScreen::updateNetizenWorkspaceCount(void) { void BScreen::updateNetizenWorkspaceCount(void) {
xatom->setValue(getRootWindow(), XAtom::net_number_of_desktops, xatom->setValue(getRootWindow(), OBAtom::net_number_of_desktops,
XAtom::cardinal, workspacesList.size()); OBAtom::cardinal, workspacesList.size());
updateWorkArea(); updateWorkArea();
} }
@ -1292,8 +1292,8 @@ void BScreen::updateNetizenWindowFocus(void) {
Window f = ((blackbox->getFocusedWindow()) ? Window f = ((blackbox->getFocusedWindow()) ?
blackbox->getFocusedWindow()->getClientWindow() : None); blackbox->getFocusedWindow()->getClientWindow() : None);
xatom->setValue(getRootWindow(), XAtom::net_active_window, xatom->setValue(getRootWindow(), OBAtom::net_active_window,
XAtom::window, f); OBAtom::window, f);
} }
@ -1641,7 +1641,7 @@ void BScreen::buttonPressEvent(const XButtonEvent *xbutton) {
void BScreen::propertyNotifyEvent(const XPropertyEvent *pe) { void BScreen::propertyNotifyEvent(const XPropertyEvent *pe) {
if (pe->atom == xatom->getAtom(XAtom::net_desktop_names)) { if (pe->atom == xatom->getAtom(OBAtom::net_desktop_names)) {
// _NET_WM_DESKTOP_NAMES // _NET_WM_DESKTOP_NAMES
WorkspaceList::iterator it = workspacesList.begin(); WorkspaceList::iterator it = workspacesList.begin();
const WorkspaceList::iterator end = workspacesList.end(); const WorkspaceList::iterator end = workspacesList.end();

View file

@ -30,7 +30,7 @@ extern "C" {
namespace ob { namespace ob {
class XAtom; class OBAtom;
struct Strut; struct Strut;
enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify }; enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify };
@ -66,7 +66,7 @@ private:
Blackbox *blackbox; Blackbox *blackbox;
otk::BImageControl *image_control; otk::BImageControl *image_control;
Configuration *config; Configuration *config;
XAtom *xatom; OBAtom *xatom;
BlackboxWindowList iconList, windowList; BlackboxWindowList iconList, windowList;

View file

@ -31,7 +31,7 @@ using std::string;
#include "util.hh" #include "util.hh"
#include "bbwindow.hh" #include "bbwindow.hh"
#include "workspace.hh" #include "workspace.hh"
#include "xatom.hh" #include "atom.hh"
namespace ob { namespace ob {
@ -424,12 +424,12 @@ void Workspace::setCurrent(void) {
void Workspace::readName(void) { void Workspace::readName(void) {
XAtom::StringVect namesList; OBAtom::StringVect namesList;
unsigned long numnames = id + 1; unsigned long numnames = id + 1;
// attempt to get from the _NET_WM_DESKTOP_NAMES property // attempt to get from the _NET_WM_DESKTOP_NAMES property
if (xatom->getValue(screen->getRootWindow(), XAtom::net_desktop_names, if (xatom->getValue(screen->getRootWindow(), OBAtom::net_desktop_names,
XAtom::utf8, numnames, namesList) && OBAtom::utf8, numnames, namesList) &&
namesList.size() > id) { namesList.size() > id) {
name = namesList[id]; name = namesList[id];
@ -451,17 +451,17 @@ void Workspace::readName(void) {
void Workspace::setName(const string& new_name) { void Workspace::setName(const string& new_name) {
// set the _NET_WM_DESKTOP_NAMES property with the new name // set the _NET_WM_DESKTOP_NAMES property with the new name
XAtom::StringVect namesList; OBAtom::StringVect namesList;
unsigned long numnames = (unsigned) -1; unsigned long numnames = (unsigned) -1;
if (xatom->getValue(screen->getRootWindow(), XAtom::net_desktop_names, if (xatom->getValue(screen->getRootWindow(), OBAtom::net_desktop_names,
XAtom::utf8, numnames, namesList) && OBAtom::utf8, numnames, namesList) &&
namesList.size() > id) namesList.size() > id)
namesList[id] = new_name; namesList[id] = new_name;
else else
namesList.push_back(new_name); namesList.push_back(new_name);
xatom->setValue(screen->getRootWindow(), XAtom::net_desktop_names, xatom->setValue(screen->getRootWindow(), OBAtom::net_desktop_names,
XAtom::utf8, namesList); OBAtom::utf8, namesList);
} }

View file

@ -10,7 +10,7 @@ extern "C" {
#include <string> #include <string>
#include <vector> #include <vector>
#include "xatom.hh" #include "atom.hh"
namespace ob { namespace ob {
@ -25,7 +25,7 @@ class Workspace {
private: private:
BScreen *screen; BScreen *screen;
BlackboxWindow *lastfocus; BlackboxWindow *lastfocus;
XAtom *xatom; OBAtom *xatom;
BlackboxWindowList stackingList, windowList; BlackboxWindowList stackingList, windowList;