]> Dogcows Code - chaz/openbox/blobdiff - src/Window.hh
Fix send to menu, having deleted workspaces in it.
[chaz/openbox] / src / Window.hh
index 72cefe618a4d4513376922d80ccec88d649c4a09..695d3e1c5bd6cf831900538fbbe5894f63fa0aa9 100644 (file)
@@ -134,6 +134,7 @@ private:
 
   unsigned int window_number;
   unsigned long current_state;
+  unsigned int mod_mask;    // the mod mask used to grab buttons
 
   enum FocusMode { F_NoInput = 0, F_Passive,
                    F_LocallyActive, F_GloballyActive };
@@ -183,16 +184,16 @@ private:
       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;
   /*
    * what decorations do we have?
    * this is based on the type of the client window as well as user input
-   * the menu is not really decor, but it goes hand in hand with the decor
    */
   DecorationFlags decorations;
+  DecorationFlags mwm_decorations;
   Corner resize_dir;
   WindowType window_type;
 
@@ -256,7 +257,7 @@ private:
   Window createToplevelWindow();
   Window createChildWindow(Window parent, Cursor = None);
 
-  void getWindowType(void);
+  bool getWindowType(void);
   void updateStrut(void);
   void getWMName(void);
   void getWMIconName(void);
@@ -267,7 +268,6 @@ private:
   void getMWMHints(void);
   bool getBlackboxHints(void);
   void getTransientInfo(void);
-  bool isKDESystrayWindow(void);
   void setNetWMAttributes(void);
   void associateClientWindow(void);
   void decorate(void);
@@ -296,11 +296,13 @@ private:
   void setState(unsigned long new_state);
   void upsize(void);
   void doMove(int x_root, int y_root);
+  void 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);
 
-  void constrain(Corner anchor, int *pw = 0, int *ph = 0);
+  void constrain(Corner anchor, unsigned int *pw = 0, unsigned int *ph = 0);
 
 public:
   BlackboxWindow(Blackbox *b, Window w, BScreen *s);
@@ -321,8 +323,15 @@ public:
   inline bool isMaximizable(void) const { return functions & Func_Maximize; }
   inline bool isResizable(void) const { return functions & Func_Resize; }
   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 ||
+           window_type == Type_Toolbar || window_type == Type_Utility; }
+  inline bool isTopmost(void) const
+  { return window_type == Type_Toolbar || window_type == Type_Utility; }
+  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
@@ -370,6 +379,8 @@ public:
 
   void beginMove(int x_root, int y_root);
   void beginResize(int x_root, int y_root, Corner dir);
+  void enableDecor(bool enable);
+  void setupDecor();
   void setFocusFlag(bool focus);
   void iconify(void);
   void deiconify(bool reassoc = True, bool raise = True);
@@ -387,19 +398,21 @@ 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);
   void buttonReleaseEvent(const XButtonEvent *re);
   void motionNotifyEvent(const XMotionEvent *me);
-  void destroyNotifyEvent(const XDestroyWindowEvent */*unused*/);
+  void destroyNotifyEvent(const XDestroyWindowEvent/*unused*/);
   void mapRequestEvent(const XMapRequestEvent *mre);
-  void unmapNotifyEvent(const XUnmapEvent */*unused*/);
-  void reparentNotifyEvent(const XReparentEvent */*unused*/);
+  void unmapNotifyEvent(const XUnmapEvent/*unused*/);
+  void reparentNotifyEvent(const XReparentEvent/*unused*/);
   void propertyNotifyEvent(const XPropertyEvent *pe);
   void exposeEvent(const XExposeEvent *ee);
   void configureRequestEvent(const XConfigureRequestEvent *cr);
+  void enterNotifyEvent(const XCrossingEvent *ce);
+  void leaveNotifyEvent(const XCrossingEvent* /*unused*/);
 
 #ifdef    SHAPE
   void configureShape(void);
This page took 0.025103 seconds and 4 git commands to generate.