using property and changeProperty

This commit is contained in:
fluxgen 2003-05-19 22:43:48 +00:00
parent 3027bf1341
commit b17abb05c8
3 changed files with 49 additions and 64 deletions

View file

@ -19,7 +19,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: Ewmh.cc,v 1.25 2003/05/15 12:00:42 fluxgen Exp $
// $Id: Ewmh.cc,v 1.26 2003/05/19 22:40:16 fluxgen Exp $
#include "Ewmh.hh"
@ -56,8 +56,8 @@ void Ewmh::initForScreen(BScreen &screen) {
if (wincheck != None) {
m_windows.push_back(wincheck);
XChangeProperty(disp, screen.rootWindow().window(), m_net_supporting_wm_check, XA_WINDOW, 32,
PropModeReplace, (unsigned char *) &wincheck, 1);
screen.rootWindow().changeProperty(m_net_supporting_wm_check, XA_WINDOW, 32,
PropModeReplace, (unsigned char *) &wincheck, 1);
XChangeProperty(disp, wincheck, m_net_supporting_wm_check, XA_WINDOW, 32,
PropModeReplace, (unsigned char *) &wincheck, 1);
@ -86,18 +86,16 @@ void Ewmh::initForScreen(BScreen &screen) {
m_net_supporting_wm_check
};
XChangeProperty(disp, screen.rootWindow().window(),
m_net_supported, XA_ATOM, 32,
PropModeReplace,
(unsigned char *) &atomsupported,
(sizeof atomsupported)/sizeof atomsupported[0]);
screen.rootWindow().changeProperty(m_net_supported, XA_ATOM, 32,
PropModeReplace,
(unsigned char *) &atomsupported,
(sizeof atomsupported)/sizeof atomsupported[0]);
}
void Ewmh::setupWindow(FluxboxWindow &win) {
Display *disp = FbTk::App::instance()->display();
Atom ret_type;
int fmt;
unsigned long nitems, bytes_after;
@ -112,10 +110,9 @@ void Ewmh::setupWindow(FluxboxWindow &win) {
XFree(data);
}
*/
if (XGetWindowProperty(disp, win.clientWindow(),
m_net_wm_desktop, 0, 1, False, XA_CARDINAL,
&ret_type, &fmt, &nitems, &bytes_after,
(unsigned char **) &data) == Success && data) {
if (win.winClient().property(m_net_wm_desktop, 0, 1, False, XA_CARDINAL,
&ret_type, &fmt, &nitems, &bytes_after,
(unsigned char **) &data) && data) {
unsigned int desktop = static_cast<unsigned int>(*data);
if (desktop == 0xFFFFFFFF && !win.isStuck())
win.stick();
@ -192,11 +189,9 @@ void Ewmh::updateClientList(BScreen &screen) {
//number of windows to show in client list
num = win;
XChangeProperty(FbTk::App::instance()->display(),
screen.rootWindow().window(),
m_net_client_list,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)wl, num);
screen.rootWindow().changeProperty(m_net_client_list,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)wl, num);
delete [] wl;
}
@ -224,18 +219,15 @@ void Ewmh::updateWorkspaceNames(BScreen &screen) {
void Ewmh::updateCurrentWorkspace(BScreen &screen) {
size_t workspace = screen.currentWorkspaceID();
XChangeProperty(FbTk::App::instance()->display(),
screen.rootWindow().window(),
m_net_current_desktop, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&workspace, 1);
screen.rootWindow().changeProperty(m_net_current_desktop, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&workspace, 1);
}
void Ewmh::updateWorkspaceCount(BScreen &screen) {
size_t numworkspaces = screen.getCount();
XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
m_net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&numworkspaces, 1);
screen.rootWindow().changeProperty(m_net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&numworkspaces, 1);
}
void Ewmh::updateState(FluxboxWindow &win) {

View file

@ -19,7 +19,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: Gnome.cc,v 1.24 2003/05/15 12:00:42 fluxgen Exp $
// $Id: Gnome.cc,v 1.25 2003/05/19 22:40:40 fluxgen Exp $
#include "Gnome.hh"
@ -53,9 +53,9 @@ void Gnome::initForScreen(BScreen &screen) {
Window gnome_win = XCreateSimpleWindow(disp,
screen.rootWindow().window(), 0, 0, 5, 5, 0, 0, 0);
// supported WM check
XChangeProperty(disp, screen.rootWindow().window(),
m_gnome_wm_supporting_wm_check,
XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &gnome_win, 1);
screen.rootWindow().changeProperty(m_gnome_wm_supporting_wm_check,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *) &gnome_win, 1);
XChangeProperty(disp, gnome_win,
m_gnome_wm_supporting_wm_check,
@ -71,9 +71,10 @@ void Gnome::initForScreen(BScreen &screen) {
};
//list atoms that we support
XChangeProperty(disp, screen.rootWindow().window(),
m_gnome_wm_prot, XA_ATOM, 32, PropModeReplace,
(unsigned char *)gnomeatomlist, (sizeof gnomeatomlist)/sizeof gnomeatomlist[0]);
screen.rootWindow().changeProperty(m_gnome_wm_prot,
XA_ATOM, 32, PropModeReplace,
(unsigned char *)gnomeatomlist,
(sizeof gnomeatomlist)/sizeof gnomeatomlist[0]);
m_gnomewindows.push_back(gnome_win);
@ -92,10 +93,9 @@ void Gnome::setupWindow(FluxboxWindow &win) {
unsigned long nitems, bytes_after;
long flags, *data = 0;
if (XGetWindowProperty(disp, win.clientWindow(),
m_gnome_wm_win_state, 0, 1, False, XA_CARDINAL,
&ret_type, &fmt, &nitems, &bytes_after,
(unsigned char **) &data) == Success && data) {
if (win.winClient().property(m_gnome_wm_win_state, 0, 1, False, XA_CARDINAL,
&ret_type, &fmt, &nitems, &bytes_after,
(unsigned char **) &data) && data) {
flags = *data;
setState(&win, flags);
XFree (data);
@ -172,11 +172,9 @@ void Gnome::updateClientList(BScreen &screen) {
}
//number of windows to show in client list
num = win;
XChangeProperty(FbTk::App::instance()->display(),
screen.rootWindow().window(),
m_gnome_wm_win_client_list,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)wl, num);
screen.rootWindow().changeProperty(m_gnome_wm_win_client_list,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)wl, num);
delete[] wl;
}
@ -206,19 +204,16 @@ void Gnome::updateWorkspaceNames(BScreen &screen) {
void Gnome::updateCurrentWorkspace(BScreen &screen) {
int workspace = screen.currentWorkspaceID();
XChangeProperty(FbTk::App::instance()->display(),
screen.rootWindow().window(),
m_gnome_wm_win_workspace, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&workspace, 1);
screen.rootWindow().changeProperty(m_gnome_wm_win_workspace, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&workspace, 1);
updateClientList(screen); // make sure the client list is updated too
}
void Gnome::updateWorkspaceCount(BScreen &screen) {
int numworkspaces = screen.getCount();
XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
m_gnome_wm_win_workspace_count, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&numworkspaces, 1);
screen.rootWindow().changeProperty(m_gnome_wm_win_workspace_count, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&numworkspaces, 1);
}
void Gnome::updateWorkspace(FluxboxWindow &win) {
@ -227,9 +222,9 @@ void Gnome::updateWorkspace(FluxboxWindow &win) {
cerr<<__FILE__<<"("<<__LINE__<<"): setting workspace("<<val<<
") for window("<<&win<<")"<<endl;
#endif // DEBUG
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
m_gnome_wm_win_workspace,
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&val, 1);
win.winClient().changeProperty(m_gnome_wm_win_workspace,
XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&val, 1);
}
void Gnome::updateState(FluxboxWindow &win) {
@ -242,18 +237,18 @@ void Gnome::updateState(FluxboxWindow &win) {
if (win.isShaded())
state |= WIN_STATE_SHADED;
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
m_gnome_wm_win_state,
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&state, 1);
win.winClient().changeProperty(m_gnome_wm_win_state,
XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)&state, 1);
}
void Gnome::updateLayer(FluxboxWindow &win) {
//TODO - map from flux layers to gnome ones
// our layers are in the opposite direction to GNOME
int layernum = Fluxbox::instance()->getDesktopLayer() - win.layerNum();
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
m_gnome_wm_win_layer,
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&layernum, 1);
win.winClient().changeProperty(m_gnome_wm_win_layer,
XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)&layernum, 1);
}

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
// $Id: Window.cc,v 1.181 2003/05/19 15:39:06 rathnor Exp $
// $Id: Window.cc,v 1.182 2003/05/19 22:43:48 fluxgen Exp $
#include "Window.hh"
@ -1023,8 +1023,7 @@ void FluxboxWindow::getMWMHints() {
Atom atom_return;
unsigned long num, len;
Atom motif_wm_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
if (!XGetWindowProperty(display, m_client->window(),
motif_wm_hints, 0,
if (!m_client->property(motif_wm_hints, 0,
PropMwmHintsElements, false,
motif_wm_hints, &atom_return,
&format, &num, &len,
@ -1835,12 +1834,11 @@ void FluxboxWindow::restoreAttributes() {
FbAtoms *fbatoms = FbAtoms::instance();
BlackboxAttributes *net;
if (XGetWindowProperty(display, m_client->window(),
fbatoms->getFluxboxAttributesAtom(), 0l,
if (m_client->property(fbatoms->getFluxboxAttributesAtom(), 0l,
PropBlackboxAttributesElements, false,
fbatoms->getFluxboxAttributesAtom(), &atom_return, &foo,
&nitems, &ulfoo, (unsigned char **) &net) ==
Success && net && nitems == (unsigned)PropBlackboxAttributesElements) {
&nitems, &ulfoo, (unsigned char **) &net) &&
net && nitems == (unsigned)PropBlackboxAttributesElements) {
m_blackbox_attrib.flags = net->flags;
m_blackbox_attrib.attrib = net->attrib;
m_blackbox_attrib.workspace = net->workspace;