diff options
author | fluxgen <fluxgen> | 2003-12-30 20:56:41 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-12-30 20:56:41 (GMT) |
commit | 3490c73f570cb43fcdea5c2f8770a379d721a73d (patch) | |
tree | c90fdca53a52d99bd5ef5f02356ab13f33eea639 /src/fluxbox.hh | |
parent | 4a8a7a32d4e3df3ffa7dc68482ff8f1053d257eb (diff) | |
download | fluxbox_pavel-3490c73f570cb43fcdea5c2f8770a379d721a73d.zip fluxbox_pavel-3490c73f570cb43fcdea5c2f8770a379d721a73d.tar.bz2 |
fixed focus issue
Diffstat (limited to 'src/fluxbox.hh')
-rw-r--r-- | src/fluxbox.hh | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/src/fluxbox.hh b/src/fluxbox.hh index 3056f4c..a02ece0 100644 --- a/src/fluxbox.hh +++ b/src/fluxbox.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: fluxbox.hh,v 1.79 2003/12/21 23:24:25 fluxgen Exp $ | 25 | // $Id: fluxbox.hh,v 1.80 2003/12/30 20:56:40 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef FLUXBOX_HH | 27 | #ifndef FLUXBOX_HH |
28 | #define FLUXBOX_HH | 28 | #define FLUXBOX_HH |
@@ -149,11 +149,13 @@ public: | |||
149 | inline unsigned int getCacheLife() const { return *m_rc_cache_life * 60000; } | 149 | inline unsigned int getCacheLife() const { return *m_rc_cache_life * 60000; } |
150 | inline unsigned int getCacheMax() const { return *m_rc_cache_max; } | 150 | inline unsigned int getCacheMax() const { return *m_rc_cache_max; } |
151 | 151 | ||
152 | inline void maskWindowEvents(Window w, FluxboxWindow *bw) | ||
153 | { m_masked = w; m_masked_window = bw; } | ||
154 | |||
152 | void watchKeyRelease(BScreen &screen, unsigned int mods); | 155 | void watchKeyRelease(BScreen &screen, unsigned int mods); |
153 | 156 | ||
154 | void setFocusedWindow(WinClient *w); | 157 | void setFocusedWindow(WinClient *w); |
155 | // focus revert gets delayed until the end of the event handle | 158 | void revertFocus(BScreen &screen); |
156 | void revertFocus(BScreen &screen, bool wait_for_end = true); | ||
157 | void shutdown(); | 159 | void shutdown(); |
158 | void load_rc(BScreen &scr); | 160 | void load_rc(BScreen &scr); |
159 | void loadRootCommand(BScreen &scr); | 161 | void loadRootCommand(BScreen &scr); |
@@ -202,21 +204,6 @@ public: | |||
202 | // screen we are watching for modifier changes | 204 | // screen we are watching for modifier changes |
203 | BScreen *watchingScreen() { return m_watching_screen; } | 205 | BScreen *watchingScreen() { return m_watching_screen; } |
204 | const XEvent &lastEvent() const { return m_last_event; } | 206 | const XEvent &lastEvent() const { return m_last_event; } |
205 | |||
206 | /** | ||
207 | * Allows people to create special event exclusions/redirects | ||
208 | * useful for getting around X followup events, or for | ||
209 | * effectively grabbing things | ||
210 | * The ignore is automatically removed when it finds the stop_win | ||
211 | * with an event matching the stop_type | ||
212 | * ignore None means all windows | ||
213 | */ | ||
214 | void addRedirectEvent(BScreen *screen, long catch_type, Window catch_win, | ||
215 | long stop_type, Window stop_win, Window redirect_win); | ||
216 | |||
217 | // So that an object may remove the ignore on its own | ||
218 | void removeRedirectEvent(long stop_type, Window stop_win); | ||
219 | |||
220 | private: | 207 | private: |
221 | 208 | ||
222 | typedef struct MenuTimestamp { | 209 | typedef struct MenuTimestamp { |
@@ -259,7 +246,6 @@ private: | |||
259 | FbTk::Resource<TitlebarList> m_rc_titlebar_left, m_rc_titlebar_right; | 246 | FbTk::Resource<TitlebarList> m_rc_titlebar_left, m_rc_titlebar_right; |
260 | FbTk::Resource<unsigned int> m_rc_cache_life, m_rc_cache_max; | 247 | FbTk::Resource<unsigned int> m_rc_cache_life, m_rc_cache_max; |
261 | FbTk::Resource<time_t> m_rc_auto_raise_delay; | 248 | FbTk::Resource<time_t> m_rc_auto_raise_delay; |
262 | |||
263 | 249 | ||
264 | std::map<Window, WinClient *> m_window_search; | 250 | std::map<Window, WinClient *> m_window_search; |
265 | std::map<Window, FluxboxWindow *> m_window_search_group; | 251 | std::map<Window, FluxboxWindow *> m_window_search_group; |
@@ -275,19 +261,8 @@ private: | |||
275 | ScreenList m_screen_list; | 261 | ScreenList m_screen_list; |
276 | 262 | ||
277 | WinClient *m_focused_window; | 263 | WinClient *m_focused_window; |
264 | FluxboxWindow *m_masked_window; | ||
278 | 265 | ||
279 | typedef struct RedirectEvent { | ||
280 | BScreen *screen; | ||
281 | long catch_type; | ||
282 | Window catch_win; | ||
283 | long stop_type; | ||
284 | Window stop_win; | ||
285 | Window redirect_win; | ||
286 | } RedirectEvent; | ||
287 | |||
288 | typedef std::list<RedirectEvent *> RedirectEvents; | ||
289 | |||
290 | RedirectEvents m_redirect_events; | ||
291 | BScreen *m_mousescreen, *m_keyscreen; | 266 | BScreen *m_mousescreen, *m_keyscreen; |
292 | BScreen *m_watching_screen; | 267 | BScreen *m_watching_screen; |
293 | unsigned int m_watch_keyrelease; | 268 | unsigned int m_watch_keyrelease; |
@@ -296,6 +271,7 @@ private: | |||
296 | 271 | ||
297 | bool m_reconfigure_wait, m_reread_menu_wait; | 272 | bool m_reconfigure_wait, m_reread_menu_wait; |
298 | Time m_last_time; | 273 | Time m_last_time; |
274 | Window m_masked; | ||
299 | std::string m_rc_file; ///< resource filename | 275 | std::string m_rc_file; ///< resource filename |
300 | char **m_argv; | 276 | char **m_argv; |
301 | int m_argc; | 277 | int m_argc; |
@@ -320,9 +296,6 @@ private: | |||
320 | const char *m_RC_PATH; | 296 | const char *m_RC_PATH; |
321 | const char *m_RC_INIT_FILE; | 297 | const char *m_RC_INIT_FILE; |
322 | Atom m_kwm1_dockwindow, m_kwm2_dockwindow; | 298 | Atom m_kwm1_dockwindow, m_kwm2_dockwindow; |
323 | |||
324 | // each event can only affect one screen (right?) | ||
325 | BScreen *m_focus_revert_screen; | ||
326 | }; | 299 | }; |
327 | 300 | ||
328 | 301 | ||