using property and changeProperty
This commit is contained in:
parent
3027bf1341
commit
b17abb05c8
3 changed files with 49 additions and 64 deletions
24
src/Ewmh.cc
24
src/Ewmh.cc
|
@ -19,7 +19,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// 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"
|
#include "Ewmh.hh"
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ void Ewmh::initForScreen(BScreen &screen) {
|
||||||
if (wincheck != None) {
|
if (wincheck != None) {
|
||||||
m_windows.push_back(wincheck);
|
m_windows.push_back(wincheck);
|
||||||
|
|
||||||
XChangeProperty(disp, screen.rootWindow().window(), m_net_supporting_wm_check, XA_WINDOW, 32,
|
screen.rootWindow().changeProperty(m_net_supporting_wm_check, XA_WINDOW, 32,
|
||||||
PropModeReplace, (unsigned char *) &wincheck, 1);
|
PropModeReplace, (unsigned char *) &wincheck, 1);
|
||||||
XChangeProperty(disp, wincheck, m_net_supporting_wm_check, XA_WINDOW, 32,
|
XChangeProperty(disp, wincheck, m_net_supporting_wm_check, XA_WINDOW, 32,
|
||||||
PropModeReplace, (unsigned char *) &wincheck, 1);
|
PropModeReplace, (unsigned char *) &wincheck, 1);
|
||||||
|
@ -86,8 +86,7 @@ void Ewmh::initForScreen(BScreen &screen) {
|
||||||
m_net_supporting_wm_check
|
m_net_supporting_wm_check
|
||||||
};
|
};
|
||||||
|
|
||||||
XChangeProperty(disp, screen.rootWindow().window(),
|
screen.rootWindow().changeProperty(m_net_supported, XA_ATOM, 32,
|
||||||
m_net_supported, XA_ATOM, 32,
|
|
||||||
PropModeReplace,
|
PropModeReplace,
|
||||||
(unsigned char *) &atomsupported,
|
(unsigned char *) &atomsupported,
|
||||||
(sizeof atomsupported)/sizeof atomsupported[0]);
|
(sizeof atomsupported)/sizeof atomsupported[0]);
|
||||||
|
@ -97,7 +96,6 @@ void Ewmh::initForScreen(BScreen &screen) {
|
||||||
|
|
||||||
void Ewmh::setupWindow(FluxboxWindow &win) {
|
void Ewmh::setupWindow(FluxboxWindow &win) {
|
||||||
|
|
||||||
Display *disp = FbTk::App::instance()->display();
|
|
||||||
Atom ret_type;
|
Atom ret_type;
|
||||||
int fmt;
|
int fmt;
|
||||||
unsigned long nitems, bytes_after;
|
unsigned long nitems, bytes_after;
|
||||||
|
@ -112,10 +110,9 @@ void Ewmh::setupWindow(FluxboxWindow &win) {
|
||||||
XFree(data);
|
XFree(data);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
if (XGetWindowProperty(disp, win.clientWindow(),
|
if (win.winClient().property(m_net_wm_desktop, 0, 1, False, XA_CARDINAL,
|
||||||
m_net_wm_desktop, 0, 1, False, XA_CARDINAL,
|
|
||||||
&ret_type, &fmt, &nitems, &bytes_after,
|
&ret_type, &fmt, &nitems, &bytes_after,
|
||||||
(unsigned char **) &data) == Success && data) {
|
(unsigned char **) &data) && data) {
|
||||||
unsigned int desktop = static_cast<unsigned int>(*data);
|
unsigned int desktop = static_cast<unsigned int>(*data);
|
||||||
if (desktop == 0xFFFFFFFF && !win.isStuck())
|
if (desktop == 0xFFFFFFFF && !win.isStuck())
|
||||||
win.stick();
|
win.stick();
|
||||||
|
@ -192,9 +189,7 @@ void Ewmh::updateClientList(BScreen &screen) {
|
||||||
|
|
||||||
//number of windows to show in client list
|
//number of windows to show in client list
|
||||||
num = win;
|
num = win;
|
||||||
XChangeProperty(FbTk::App::instance()->display(),
|
screen.rootWindow().changeProperty(m_net_client_list,
|
||||||
screen.rootWindow().window(),
|
|
||||||
m_net_client_list,
|
|
||||||
XA_CARDINAL, 32,
|
XA_CARDINAL, 32,
|
||||||
PropModeReplace, (unsigned char *)wl, num);
|
PropModeReplace, (unsigned char *)wl, num);
|
||||||
|
|
||||||
|
@ -224,17 +219,14 @@ void Ewmh::updateWorkspaceNames(BScreen &screen) {
|
||||||
|
|
||||||
void Ewmh::updateCurrentWorkspace(BScreen &screen) {
|
void Ewmh::updateCurrentWorkspace(BScreen &screen) {
|
||||||
size_t workspace = screen.currentWorkspaceID();
|
size_t workspace = screen.currentWorkspaceID();
|
||||||
XChangeProperty(FbTk::App::instance()->display(),
|
screen.rootWindow().changeProperty(m_net_current_desktop, XA_CARDINAL, 32, PropModeReplace,
|
||||||
screen.rootWindow().window(),
|
|
||||||
m_net_current_desktop, XA_CARDINAL, 32, PropModeReplace,
|
|
||||||
(unsigned char *)&workspace, 1);
|
(unsigned char *)&workspace, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ewmh::updateWorkspaceCount(BScreen &screen) {
|
void Ewmh::updateWorkspaceCount(BScreen &screen) {
|
||||||
size_t numworkspaces = screen.getCount();
|
size_t numworkspaces = screen.getCount();
|
||||||
XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
|
screen.rootWindow().changeProperty(m_net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace,
|
||||||
m_net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace,
|
|
||||||
(unsigned char *)&numworkspaces, 1);
|
(unsigned char *)&numworkspaces, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
49
src/Gnome.cc
49
src/Gnome.cc
|
@ -19,7 +19,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// 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"
|
#include "Gnome.hh"
|
||||||
|
|
||||||
|
@ -53,9 +53,9 @@ void Gnome::initForScreen(BScreen &screen) {
|
||||||
Window gnome_win = XCreateSimpleWindow(disp,
|
Window gnome_win = XCreateSimpleWindow(disp,
|
||||||
screen.rootWindow().window(), 0, 0, 5, 5, 0, 0, 0);
|
screen.rootWindow().window(), 0, 0, 5, 5, 0, 0, 0);
|
||||||
// supported WM check
|
// supported WM check
|
||||||
XChangeProperty(disp, screen.rootWindow().window(),
|
screen.rootWindow().changeProperty(m_gnome_wm_supporting_wm_check,
|
||||||
m_gnome_wm_supporting_wm_check,
|
XA_CARDINAL, 32,
|
||||||
XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &gnome_win, 1);
|
PropModeReplace, (unsigned char *) &gnome_win, 1);
|
||||||
|
|
||||||
XChangeProperty(disp, gnome_win,
|
XChangeProperty(disp, gnome_win,
|
||||||
m_gnome_wm_supporting_wm_check,
|
m_gnome_wm_supporting_wm_check,
|
||||||
|
@ -71,9 +71,10 @@ void Gnome::initForScreen(BScreen &screen) {
|
||||||
};
|
};
|
||||||
|
|
||||||
//list atoms that we support
|
//list atoms that we support
|
||||||
XChangeProperty(disp, screen.rootWindow().window(),
|
screen.rootWindow().changeProperty(m_gnome_wm_prot,
|
||||||
m_gnome_wm_prot, XA_ATOM, 32, PropModeReplace,
|
XA_ATOM, 32, PropModeReplace,
|
||||||
(unsigned char *)gnomeatomlist, (sizeof gnomeatomlist)/sizeof gnomeatomlist[0]);
|
(unsigned char *)gnomeatomlist,
|
||||||
|
(sizeof gnomeatomlist)/sizeof gnomeatomlist[0]);
|
||||||
|
|
||||||
m_gnomewindows.push_back(gnome_win);
|
m_gnomewindows.push_back(gnome_win);
|
||||||
|
|
||||||
|
@ -92,10 +93,9 @@ void Gnome::setupWindow(FluxboxWindow &win) {
|
||||||
unsigned long nitems, bytes_after;
|
unsigned long nitems, bytes_after;
|
||||||
long flags, *data = 0;
|
long flags, *data = 0;
|
||||||
|
|
||||||
if (XGetWindowProperty(disp, win.clientWindow(),
|
if (win.winClient().property(m_gnome_wm_win_state, 0, 1, False, XA_CARDINAL,
|
||||||
m_gnome_wm_win_state, 0, 1, False, XA_CARDINAL,
|
|
||||||
&ret_type, &fmt, &nitems, &bytes_after,
|
&ret_type, &fmt, &nitems, &bytes_after,
|
||||||
(unsigned char **) &data) == Success && data) {
|
(unsigned char **) &data) && data) {
|
||||||
flags = *data;
|
flags = *data;
|
||||||
setState(&win, flags);
|
setState(&win, flags);
|
||||||
XFree (data);
|
XFree (data);
|
||||||
|
@ -172,9 +172,7 @@ void Gnome::updateClientList(BScreen &screen) {
|
||||||
}
|
}
|
||||||
//number of windows to show in client list
|
//number of windows to show in client list
|
||||||
num = win;
|
num = win;
|
||||||
XChangeProperty(FbTk::App::instance()->display(),
|
screen.rootWindow().changeProperty(m_gnome_wm_win_client_list,
|
||||||
screen.rootWindow().window(),
|
|
||||||
m_gnome_wm_win_client_list,
|
|
||||||
XA_CARDINAL, 32,
|
XA_CARDINAL, 32,
|
||||||
PropModeReplace, (unsigned char *)wl, num);
|
PropModeReplace, (unsigned char *)wl, num);
|
||||||
|
|
||||||
|
@ -206,9 +204,7 @@ void Gnome::updateWorkspaceNames(BScreen &screen) {
|
||||||
|
|
||||||
void Gnome::updateCurrentWorkspace(BScreen &screen) {
|
void Gnome::updateCurrentWorkspace(BScreen &screen) {
|
||||||
int workspace = screen.currentWorkspaceID();
|
int workspace = screen.currentWorkspaceID();
|
||||||
XChangeProperty(FbTk::App::instance()->display(),
|
screen.rootWindow().changeProperty(m_gnome_wm_win_workspace, XA_CARDINAL, 32, PropModeReplace,
|
||||||
screen.rootWindow().window(),
|
|
||||||
m_gnome_wm_win_workspace, XA_CARDINAL, 32, PropModeReplace,
|
|
||||||
(unsigned char *)&workspace, 1);
|
(unsigned char *)&workspace, 1);
|
||||||
|
|
||||||
updateClientList(screen); // make sure the client list is updated too
|
updateClientList(screen); // make sure the client list is updated too
|
||||||
|
@ -216,8 +212,7 @@ void Gnome::updateCurrentWorkspace(BScreen &screen) {
|
||||||
|
|
||||||
void Gnome::updateWorkspaceCount(BScreen &screen) {
|
void Gnome::updateWorkspaceCount(BScreen &screen) {
|
||||||
int numworkspaces = screen.getCount();
|
int numworkspaces = screen.getCount();
|
||||||
XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
|
screen.rootWindow().changeProperty(m_gnome_wm_win_workspace_count, XA_CARDINAL, 32, PropModeReplace,
|
||||||
m_gnome_wm_win_workspace_count, XA_CARDINAL, 32, PropModeReplace,
|
|
||||||
(unsigned char *)&numworkspaces, 1);
|
(unsigned char *)&numworkspaces, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,9 +222,9 @@ void Gnome::updateWorkspace(FluxboxWindow &win) {
|
||||||
cerr<<__FILE__<<"("<<__LINE__<<"): setting workspace("<<val<<
|
cerr<<__FILE__<<"("<<__LINE__<<"): setting workspace("<<val<<
|
||||||
") for window("<<&win<<")"<<endl;
|
") for window("<<&win<<")"<<endl;
|
||||||
#endif // DEBUG
|
#endif // DEBUG
|
||||||
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
|
win.winClient().changeProperty(m_gnome_wm_win_workspace,
|
||||||
m_gnome_wm_win_workspace,
|
XA_CARDINAL, 32, PropModeReplace,
|
||||||
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&val, 1);
|
(unsigned char *)&val, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gnome::updateState(FluxboxWindow &win) {
|
void Gnome::updateState(FluxboxWindow &win) {
|
||||||
|
@ -242,18 +237,18 @@ void Gnome::updateState(FluxboxWindow &win) {
|
||||||
if (win.isShaded())
|
if (win.isShaded())
|
||||||
state |= WIN_STATE_SHADED;
|
state |= WIN_STATE_SHADED;
|
||||||
|
|
||||||
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
|
win.winClient().changeProperty(m_gnome_wm_win_state,
|
||||||
m_gnome_wm_win_state,
|
XA_CARDINAL, 32,
|
||||||
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&state, 1);
|
PropModeReplace, (unsigned char *)&state, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gnome::updateLayer(FluxboxWindow &win) {
|
void Gnome::updateLayer(FluxboxWindow &win) {
|
||||||
//TODO - map from flux layers to gnome ones
|
//TODO - map from flux layers to gnome ones
|
||||||
// our layers are in the opposite direction to GNOME
|
// our layers are in the opposite direction to GNOME
|
||||||
int layernum = Fluxbox::instance()->getDesktopLayer() - win.layerNum();
|
int layernum = Fluxbox::instance()->getDesktopLayer() - win.layerNum();
|
||||||
XChangeProperty(FbTk::App::instance()->display(), win.clientWindow(),
|
win.winClient().changeProperty(m_gnome_wm_win_layer,
|
||||||
m_gnome_wm_win_layer,
|
XA_CARDINAL, 32, PropModeReplace,
|
||||||
XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&layernum, 1);
|
(unsigned char *)&layernum, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// 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"
|
#include "Window.hh"
|
||||||
|
|
||||||
|
@ -1023,8 +1023,7 @@ void FluxboxWindow::getMWMHints() {
|
||||||
Atom atom_return;
|
Atom atom_return;
|
||||||
unsigned long num, len;
|
unsigned long num, len;
|
||||||
Atom motif_wm_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
|
Atom motif_wm_hints = XInternAtom(display, "_MOTIF_WM_HINTS", False);
|
||||||
if (!XGetWindowProperty(display, m_client->window(),
|
if (!m_client->property(motif_wm_hints, 0,
|
||||||
motif_wm_hints, 0,
|
|
||||||
PropMwmHintsElements, false,
|
PropMwmHintsElements, false,
|
||||||
motif_wm_hints, &atom_return,
|
motif_wm_hints, &atom_return,
|
||||||
&format, &num, &len,
|
&format, &num, &len,
|
||||||
|
@ -1835,12 +1834,11 @@ void FluxboxWindow::restoreAttributes() {
|
||||||
FbAtoms *fbatoms = FbAtoms::instance();
|
FbAtoms *fbatoms = FbAtoms::instance();
|
||||||
|
|
||||||
BlackboxAttributes *net;
|
BlackboxAttributes *net;
|
||||||
if (XGetWindowProperty(display, m_client->window(),
|
if (m_client->property(fbatoms->getFluxboxAttributesAtom(), 0l,
|
||||||
fbatoms->getFluxboxAttributesAtom(), 0l,
|
|
||||||
PropBlackboxAttributesElements, false,
|
PropBlackboxAttributesElements, false,
|
||||||
fbatoms->getFluxboxAttributesAtom(), &atom_return, &foo,
|
fbatoms->getFluxboxAttributesAtom(), &atom_return, &foo,
|
||||||
&nitems, &ulfoo, (unsigned char **) &net) ==
|
&nitems, &ulfoo, (unsigned char **) &net) &&
|
||||||
Success && net && nitems == (unsigned)PropBlackboxAttributesElements) {
|
net && nitems == (unsigned)PropBlackboxAttributesElements) {
|
||||||
m_blackbox_attrib.flags = net->flags;
|
m_blackbox_attrib.flags = net->flags;
|
||||||
m_blackbox_attrib.attrib = net->attrib;
|
m_blackbox_attrib.attrib = net->attrib;
|
||||||
m_blackbox_attrib.workspace = net->workspace;
|
m_blackbox_attrib.workspace = net->workspace;
|
||||||
|
|
Loading…
Reference in a new issue