Commit daa95d5e by Jessica Hawkwell

fixing breaks from 89302031 and adding to #1

1 parent 89302031
...@@ -40,9 +40,9 @@ ...@@ -40,9 +40,9 @@
//#include <vector> //#include <vector>
// MOVING WINDOWS // MOVING WINDOWS
NPosition<int> *NWMAction::drag_start_cursor; nitrogen::NPosition<int> *NWMAction::drag_start_cursor;
NPosition<int> *NWMAction::drag_start_window; nitrogen::NPosition<int> *NWMAction::drag_start_window;
NSize<unsigned int> *NWMAction::drag_start_resize; nitrogen::NSize<unsigned int> *NWMAction::drag_start_resize;
// XLIB // XLIB
Display *NWMAction::disp; Display *NWMAction::disp;
...@@ -63,35 +63,39 @@ void NWMAction::onKeyRelease(XKeyReleasedEvent e) { ...@@ -63,35 +63,39 @@ void NWMAction::onKeyRelease(XKeyReleasedEvent e) {
} }
void NWMAction::onButtonPress(XButtonPressedEvent e) { void NWMAction::onButtonPress(XButtonPressedEvent e) {
if (!NUtils::isNitroWin(e.window)) { return; } if (!NUtils::isNitroWin(e.window)) {
return;
}
int x = 0, y = 0; int x = 0, y = 0;
unsigned int w = 0, h = 0; unsigned int w = 0, h = 0;
unsigned int bw = 0, depth = 0; unsigned int bw = 0, depth = 0;
Window frame = NUtils::checkNitroWin(e.window); Window frame = NUtils::checkNitroWin(e.window);
if (frame == 0) { return; } if (frame == 0) {
return;
}
std::cout << "[ButtonPress] " << frame << " (" << NUtils::isNitroWin(e.window) << ", " << e.window << ")" << std::endl; std::cout << "[ButtonPress] " << frame << " (" << NUtils::isNitroWin(e.window) << ", " << e.window << ")" << std::endl;
if (drag_start_cursor == nullptr) { if (drag_start_cursor == nullptr) {
drag_start_cursor = new NPosition<int>(e.x_root, e.y_root); drag_start_cursor = new nitrogen::NPosition<int>(e.x_root, e.y_root);
} }
else { else {
*drag_start_cursor = NPosition<int>(e.x_root, e.y_root); *drag_start_cursor = nitrogen::NPosition<int>(e.x_root, e.y_root);
} }
Window rroot; Window rroot;
XGetGeometry(disp, frame, &rroot, &x, &y, &w, &h, &bw, &depth); XGetGeometry(disp, frame, &rroot, &x, &y, &w, &h, &bw, &depth);
if (drag_start_window == nullptr) { if (drag_start_window == nullptr) {
drag_start_window = new NPosition<int>(x, y); drag_start_window = new nitrogen::NPosition<int>(x, y);
} }
else { else {
*drag_start_window = NPosition<int>(x, y); *drag_start_window = nitrogen::NPosition<int>(x, y);
} }
if (drag_start_resize == nullptr) { if (drag_start_resize == nullptr) {
drag_start_resize = new NSize<unsigned int>(w, h); drag_start_resize = new nitrogen::NSize<unsigned int>(w, h);
} }
else { else {
*drag_start_resize = NSize<unsigned int>(w, h); *drag_start_resize = nitrogen::NSize<unsigned int>(w, h);
} }
XRaiseWindow(disp, frame); XRaiseWindow(disp, frame);
...@@ -103,7 +107,9 @@ void NWMAction::onButtonRelease(XButtonReleasedEvent e) { ...@@ -103,7 +107,9 @@ void NWMAction::onButtonRelease(XButtonReleasedEvent e) {
} }
void NWMAction::onMotionNotify(XMotionEvent e) { void NWMAction::onMotionNotify(XMotionEvent e) {
if (!NUtils::isNitroWin(e.window)) { return; } if (!NUtils::isNitroWin(e.window)) {
return;
}
/*std::cout << "XMotionEvent: " << e.window; /*std::cout << "XMotionEvent: " << e.window;
std::cout << " (" << e.x << ", " << e.y << "), ("; std::cout << " (" << e.x << ", " << e.y << "), (";
...@@ -126,13 +132,15 @@ void NWMAction::onMotionNotify(XMotionEvent e) { ...@@ -126,13 +132,15 @@ void NWMAction::onMotionNotify(XMotionEvent e) {
std::cout << std::endl; // */ std::cout << std::endl; // */
Window frame = NUtils::checkNitroWin(e.window); Window frame = NUtils::checkNitroWin(e.window);
if (frame == 0) { return; } if (frame == 0) {
return;
}
NPosition<int> drag_pos(e.x_root, e.y_root); nitrogen::NPosition<int> drag_pos(e.x_root, e.y_root);
NPosition<int> delta = drag_pos - *drag_start_cursor; nitrogen::NPosition<int> delta = drag_pos - *drag_start_cursor;
if (e.state & Button1Mask) { // move window if (e.state & Button1Mask) { // move window
NPosition<int> dest = delta + *drag_start_window; nitrogen::NPosition<int> dest = delta + *drag_start_window;
dest.setZeroIfNegative(); dest.setZeroIfNegative();
XMoveWindow(disp, frame, dest.getX(), dest.getY()); XMoveWindow(disp, frame, dest.getX(), dest.getY());
} }
...@@ -185,9 +193,13 @@ void NWMAction::onDestroyNotify(XDestroyWindowEvent e) { ...@@ -185,9 +193,13 @@ void NWMAction::onDestroyNotify(XDestroyWindowEvent e) {
} }
void NWMAction::onUnmapNotify(XUnmapEvent e) { void NWMAction::onUnmapNotify(XUnmapEvent e) {
if (!clients->count(e.window)) { return; } if (!clients->count(e.window)) {
return;
}
if (e.event == *root) { return; } if (e.event == *root) {
return;
}
NUtils::unFrameWindow(e.window); NUtils::unFrameWindow(e.window);
} }
...@@ -282,14 +294,20 @@ void NWMAction::onLASTEvent(XAnyEvent e) { ...@@ -282,14 +294,20 @@ void NWMAction::onLASTEvent(XAnyEvent e) {
} }
void NWMAction::onDefaultEvent(XAnyEvent e) { void NWMAction::onDefaultEvent(XAnyEvent e) {
if (e.window == *root) { return; } // don't log root window events if (e.window == *root) {
return;
} // don't log root window events
std::cout << "Event [" << NUtils::getEventName(e.type) << "] on "; std::cout << "Event [" << NUtils::getEventName(e.type) << "] on ";
std::cout << e.window; std::cout << e.window;
if (!frames->count(e.window)) { if (!frames->count(e.window)) {
char* name = NUtils::getName(disp, e.window); char* name = NUtils::getName(disp, e.window);
if (name != nullptr) { std::cout << " (" << name << ")"; } if (name != nullptr) {
std::cout << " (" << name << ")";
}
}
if (clients->count(e.window)) {
std::cout << " (NitroWin)";
} }
if (clients->count(e.window)) { std::cout << " (NitroWin)"; }
std::cout << std::endl; std::cout << std::endl;
NUtils::listWindows(); NUtils::listWindows();
} }
......
...@@ -42,15 +42,15 @@ ...@@ -42,15 +42,15 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
template <class T> class NSize; //template <class T> class NSize;
template <typename T> class NPosition; //template <typename T> class NPosition;
class NWMAction { class NWMAction {
protected: protected:
// MOVING WINDOWS // MOVING WINDOWS
static NPosition<int> *drag_start_cursor; static nitrogen::NPosition<int> *drag_start_cursor;
static NPosition<int> *drag_start_window; static nitrogen::NPosition<int> *drag_start_window;
static NSize<unsigned int> *drag_start_resize; static nitrogen::NSize<unsigned int> *drag_start_resize;
public: public:
// XLIB // XLIB
......
...@@ -40,12 +40,6 @@ namespace nitrogen { ...@@ -40,12 +40,6 @@ namespace nitrogen {
NObject::NObject() { NObject::NObject() {
} }
/*NObject::NObject(const NObject& orig) {
} // */
NObject::~NObject() {
}
std::string* NObject::toString() const { std::string* NObject::toString() const {
std::string* str; std::string* str;
str->append(getTypeName(this)); str->append(getTypeName(this));
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!