X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWindow.hh;h=46bc2662d08f10ba751bac7071e4df11ec571ad7;hb=4e84a99f0aaf74af1f9b4693486300370d41ff97;hp=eb5baefb862335a47992baf8ec4a153f08f32a00;hpb=ffa4c7f3414944869016497a4f560c24b9d8b3e9;p=chaz%2Fopenbox diff --git a/src/Window.hh b/src/Window.hh index eb5baefb..46bc2662 100644 --- a/src/Window.hh +++ b/src/Window.hh @@ -38,11 +38,6 @@ extern "C" { #include "Timer.hh" #include "Util.hh" #include "Windowmenu.hh" -#include "Workspace.hh" -#include "Screen.hh" - -class XAtom; -class BInput; #define MwmHintsFunctions (1l << 0) #define MwmHintsDecorations (1l << 1) @@ -131,7 +126,6 @@ private: Blackbox *blackbox; BScreen *screen; XAtom *xatom; - BInput *input; BTimer *timer; BlackboxAttributes blackbox_attrib; @@ -182,12 +176,14 @@ private: min_width, min_height, // can not be resized smaller max_width, max_height, // can not be resized larger width_inc, height_inc, // increment step +#if 0 // not supported at the moment min_aspect_x, min_aspect_y, // minimum aspect ratio max_aspect_x, max_aspect_y, // maximum aspect ratio +#endif base_width, base_height, win_gravity; - unsigned long initial_state, normal_hint_flags, wm_hint_flags; + unsigned long initial_state, normal_hint_flags; } client; FunctionFlags functions; @@ -271,7 +267,6 @@ private: void getMWMHints(void); bool getBlackboxHints(void); void getTransientInfo(void); - bool isKDESystrayWindow(void); void setNetWMAttributes(void); void associateClientWindow(void); void decorate(void); @@ -300,6 +295,8 @@ private: void setState(unsigned long new_state); void upsize(void); void doMove(int x_root, int y_root); + bool doWorkspaceWarping(int x_root, int y_root, int dx, int dy); + void doWindowSnapping(int &dx, int &dy); void endMove(void); void doResize(int x_root, int y_root); void endResize(void); @@ -324,10 +321,13 @@ public: inline bool isIconifiable(void) const { return functions & Func_Iconify; } inline bool isMaximizable(void) const { return functions & Func_Maximize; } inline bool isResizable(void) const { return functions & Func_Resize; } - inline bool isMovable(void) const { return functions & Func_Move; } inline bool isClosable(void) const { return functions & Func_Close; } - inline bool isDesktop(void) const { return window_type == Type_Desktop; } + // is a 'normal' window? meaning, a standard client application + inline bool isNormal(void) const + { return window_type == Type_Dialog || window_type == Type_Normal; } + inline bool isDesktop(void) const { return window_type == Type_Desktop; } + inline bool hasTitlebar(void) const { return decorations & Decor_Titlebar; } inline const BlackboxWindowList &getTransients(void) const @@ -379,15 +379,12 @@ public: void iconify(void); void deiconify(bool reassoc = True, bool raise = True); void show(void); - void showWindowMenu(int root_x, int root_y); void close(void); void withdraw(void); void maximize(unsigned int button); void remaximize(void); void shade(void); void stick(void); - void raise(void); - void lower(void); void reconfigure(void); void grabButtons(void); void ungrabButtons(void); @@ -395,7 +392,7 @@ public: void restore(bool remap); void configure(int dx, int dy, unsigned int dw, unsigned int dh); void setWorkspace(unsigned int n); - void changeBlackboxHints(BlackboxHints *net); + void changeBlackboxHints(const BlackboxHints *net); void restoreAttributes(void); void buttonPressEvent(const XButtonEvent *be); @@ -405,7 +402,7 @@ public: void mapRequestEvent(const XMapRequestEvent *mre); void unmapNotifyEvent(const XUnmapEvent */*unused*/); void reparentNotifyEvent(const XReparentEvent */*unused*/); - void propertyNotifyEvent(Atom atom); + void propertyNotifyEvent(const XPropertyEvent *pe); void exposeEvent(const XExposeEvent *ee); void configureRequestEvent(const XConfigureRequestEvent *cr);