diff options
-rw-r--r-- | src/Window.cc | 35 | ||||
-rw-r--r-- | src/Window.hh | 4 |
2 files changed, 23 insertions, 16 deletions
diff --git a/src/Window.cc b/src/Window.cc index 3c229a9..9ec789b 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -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: Window.cc,v 1.66 2002/08/11 22:44:29 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.67 2002/08/12 03:28:17 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -321,9 +321,9 @@ tab(0) | |||
321 | 321 | ||
322 | setFocusFlag(false); | 322 | setFocusFlag(false); |
323 | 323 | ||
324 | #ifdef GNOME | 324 | #ifdef GNOME |
325 | updateGnomeAtoms(); | 325 | updateGnomeAtoms(); |
326 | #endif | 326 | #endif // GNOME |
327 | 327 | ||
328 | #ifdef DEBUG | 328 | #ifdef DEBUG |
329 | fprintf(stderr, "%s(%d): FluxboxWindow(this=%p)\n", __FILE__, __LINE__, this); | 329 | fprintf(stderr, "%s(%d): FluxboxWindow(this=%p)\n", __FILE__, __LINE__, this); |
@@ -333,7 +333,7 @@ tab(0) | |||
333 | 333 | ||
334 | 334 | ||
335 | FluxboxWindow::~FluxboxWindow() { | 335 | FluxboxWindow::~FluxboxWindow() { |
336 | if (screen==0) //the window wasn't created | 336 | if (screen == 0) //the window wasn't created |
337 | return; | 337 | return; |
338 | 338 | ||
339 | Fluxbox *fluxbox = Fluxbox::instance(); | 339 | Fluxbox *fluxbox = Fluxbox::instance(); |
@@ -360,12 +360,12 @@ FluxboxWindow::~FluxboxWindow() { | |||
360 | tab = 0; | 360 | tab = 0; |
361 | } | 361 | } |
362 | 362 | ||
363 | if (client.mwm_hint!=0) { | 363 | if (client.mwm_hint != 0) { |
364 | XFree(client.mwm_hint); | 364 | XFree(client.mwm_hint); |
365 | client.mwm_hint = 0; | 365 | client.mwm_hint = 0; |
366 | } | 366 | } |
367 | 367 | ||
368 | if (client.blackbox_hint!=0) { | 368 | if (client.blackbox_hint != 0) { |
369 | XFree(client.blackbox_hint); | 369 | XFree(client.blackbox_hint); |
370 | client.blackbox_hint = 0; | 370 | client.blackbox_hint = 0; |
371 | } | 371 | } |
@@ -374,9 +374,9 @@ FluxboxWindow::~FluxboxWindow() { | |||
374 | if (isTransient()) { | 374 | if (isTransient()) { |
375 | //guard from having transient_for = this | 375 | //guard from having transient_for = this |
376 | if (client.transient_for == this) { | 376 | if (client.transient_for == this) { |
377 | #ifdef DEBUG | 377 | #ifdef DEBUG |
378 | cerr<<__FILE__<<"("<<__LINE__<<"): WARNING! client.transient_for == this WARNING!"<<endl; | 378 | cerr<<__FILE__<<"("<<__LINE__<<"): WARNING! client.transient_for == this WARNING!"<<endl; |
379 | #endif //DEBUG | 379 | #endif //DEBUG |
380 | client.transient_for = 0; | 380 | client.transient_for = 0; |
381 | } | 381 | } |
382 | 382 | ||
@@ -1954,6 +1954,10 @@ void FluxboxWindow::withdraw() { | |||
1954 | 1954 | ||
1955 | 1955 | ||
1956 | void FluxboxWindow::maximize(unsigned int button) { | 1956 | void FluxboxWindow::maximize(unsigned int button) { |
1957 | // deiconify if we're iconic | ||
1958 | if (isIconic()) | ||
1959 | deiconify(); | ||
1960 | |||
1957 | if (! maximized) { | 1961 | if (! maximized) { |
1958 | int dx, dy; | 1962 | int dx, dy; |
1959 | unsigned int dw, dh, slitModL = 0, slitModR = 0, slitModT = 0, slitModB = 0; | 1963 | unsigned int dw, dh, slitModL = 0, slitModR = 0, slitModT = 0, slitModB = 0; |
@@ -2619,7 +2623,14 @@ void FluxboxWindow::restoreAttributes() { | |||
2619 | setState(current_state); | 2623 | setState(current_state); |
2620 | } | 2624 | } |
2621 | 2625 | ||
2622 | 2626 | void FluxboxWindow::showMenu(int mx, int my) { | |
2627 | windowmenu->move(mx, my); | ||
2628 | windowmenu->show(); | ||
2629 | XRaiseWindow(display, windowmenu->windowID()); | ||
2630 | XRaiseWindow(display, windowmenu->getSendToMenu()->windowID()); | ||
2631 | XRaiseWindow(display, windowmenu->getSendGroupToMenu()->windowID()); | ||
2632 | } | ||
2633 | |||
2623 | void FluxboxWindow::restoreGravity() { | 2634 | void FluxboxWindow::restoreGravity() { |
2624 | // restore x coordinate | 2635 | // restore x coordinate |
2625 | switch (client.win_gravity) { | 2636 | switch (client.win_gravity) { |
@@ -3173,11 +3184,7 @@ void FluxboxWindow::buttonPressEvent(XButtonEvent *be) { | |||
3173 | 3184 | ||
3174 | if (windowmenu) { | 3185 | if (windowmenu) { |
3175 | if (! windowmenu->isVisible()) { // if not window menu is visible then show it | 3186 | if (! windowmenu->isVisible()) { // if not window menu is visible then show it |
3176 | windowmenu->move(mx, my); | 3187 | showMenu(mx, my); |
3177 | windowmenu->show(); | ||
3178 | XRaiseWindow(display, windowmenu->windowID()); | ||
3179 | XRaiseWindow(display, windowmenu->getSendToMenu()->windowID()); | ||
3180 | XRaiseWindow(display, windowmenu->getSendGroupToMenu()->windowID()); | ||
3181 | } else //else hide menu | 3188 | } else //else hide menu |
3182 | windowmenu->hide(); | 3189 | windowmenu->hide(); |
3183 | } | 3190 | } |
diff --git a/src/Window.hh b/src/Window.hh index 549971e..33a348f 100644 --- a/src/Window.hh +++ b/src/Window.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: Window.hh,v 1.26 2002/08/11 22:33:41 fluxgen Exp $ | 25 | // $Id: Window.hh,v 1.27 2002/08/12 03:28:17 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef WINDOW_HH | 27 | #ifndef WINDOW_HH |
28 | #define WINDOW_HH | 28 | #define WINDOW_HH |
@@ -201,7 +201,7 @@ public: | |||
201 | void setWorkspace(int n); | 201 | void setWorkspace(int n); |
202 | void changeBlackboxHints(BaseDisplay::BlackboxHints *bh); | 202 | void changeBlackboxHints(BaseDisplay::BlackboxHints *bh); |
203 | void restoreAttributes(); | 203 | void restoreAttributes(); |
204 | 204 | void showMenu(int mx, int my); | |
205 | 205 | ||
206 | void buttonPressEvent(XButtonEvent *be); | 206 | void buttonPressEvent(XButtonEvent *be); |
207 | void buttonReleaseEvent(XButtonEvent *be); | 207 | void buttonReleaseEvent(XButtonEvent *be); |