diff options
author | fluxgen <fluxgen> | 2002-04-04 13:19:10 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2002-04-04 13:19:10 (GMT) |
commit | e4d3840f267f95c50299ca725b2dfb1202a09801 (patch) | |
tree | 6fbde1b292cfb64736c6558db44ddefddac8dcc5 /src | |
parent | 1717c112802ac6828ced2890fd8cfe99ba96cd96 (diff) | |
download | fluxbox-e4d3840f267f95c50299ca725b2dfb1202a09801.zip fluxbox-e4d3840f267f95c50299ca725b2dfb1202a09801.tar.bz2 |
added startMoving, stopMoving, startResizing and stopResizing and fixed bug 528101
Diffstat (limited to 'src')
-rw-r--r-- | src/Window.cc | 229 | ||||
-rw-r--r-- | src/Window.hh | 67 |
2 files changed, 161 insertions, 135 deletions
diff --git a/src/Window.cc b/src/Window.cc index ba18a05..a6689cb 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.37 2002/04/04 11:28:19 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.38 2002/04/04 13:19:10 fluxgen Exp $ |
26 | 26 | ||
27 | //use GNU extensions | 27 | //use GNU extensions |
28 | #ifndef _GNU_SOURCE | 28 | #ifndef _GNU_SOURCE |
@@ -1495,9 +1495,9 @@ void FluxboxWindow::getWMIconName(void) { | |||
1495 | 1495 | ||
1496 | XFree((char *) text_prop.value); | 1496 | XFree((char *) text_prop.value); |
1497 | } else | 1497 | } else |
1498 | client.icon_title = getTitle(); //assign title to icon title | 1498 | client.icon_title = getTitle(); |
1499 | } else | 1499 | } else |
1500 | client.icon_title = getTitle(); //assign title to icon title | 1500 | client.icon_title = getTitle(); |
1501 | } | 1501 | } |
1502 | 1502 | ||
1503 | 1503 | ||
@@ -2035,6 +2035,10 @@ void FluxboxWindow::close(void) { | |||
2035 | void FluxboxWindow::withdraw(void) { | 2035 | void FluxboxWindow::withdraw(void) { |
2036 | visible = false; | 2036 | visible = false; |
2037 | iconic = false; | 2037 | iconic = false; |
2038 | if (isMoving()) | ||
2039 | stopMoving(); | ||
2040 | if (isResizing()) | ||
2041 | stopResizing(); | ||
2038 | 2042 | ||
2039 | XUnmapWindow(display, frame.window); | 2043 | XUnmapWindow(display, frame.window); |
2040 | 2044 | ||
@@ -3295,46 +3299,11 @@ void FluxboxWindow::buttonReleaseEvent(XButtonEvent *re) { | |||
3295 | if (! validateClient()) | 3299 | if (! validateClient()) |
3296 | return; | 3300 | return; |
3297 | 3301 | ||
3298 | if (moving) { | 3302 | if (isMoving()) |
3299 | moving = false; | 3303 | stopMoving(); |
3300 | 3304 | else if (isResizing()) | |
3301 | fluxbox->maskWindowEvents(0, (FluxboxWindow *) 0); | 3305 | stopResizing(); |
3302 | 3306 | else if (re->window == frame.window) { | |
3303 | if (! screen->doOpaqueMove()) { | ||
3304 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3305 | frame.move_x, frame.move_y, frame.resize_w, | ||
3306 | frame.resize_h); | ||
3307 | |||
3308 | configure(frame.move_x, frame.move_y, frame.width, frame.height); | ||
3309 | fluxbox->ungrab(); | ||
3310 | } else | ||
3311 | configure(frame.x, frame.y, frame.width, frame.height); | ||
3312 | |||
3313 | screen->hideGeometry(); | ||
3314 | XUngrabPointer(display, CurrentTime); | ||
3315 | } else if (resizing) { | ||
3316 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3317 | frame.resize_x, frame.resize_y, | ||
3318 | frame.resize_w, frame.resize_h); | ||
3319 | |||
3320 | screen->hideGeometry(); | ||
3321 | |||
3322 | if (re->window == frame.left_grip) | ||
3323 | left_fixsize(); | ||
3324 | else | ||
3325 | right_fixsize(); | ||
3326 | |||
3327 | resizing = false; | ||
3328 | configure(frame.resize_x, frame.resize_y, | ||
3329 | frame.resize_w - screen->getBorderWidth2x(), | ||
3330 | frame.resize_h - screen->getBorderWidth2x()); | ||
3331 | |||
3332 | if (tab) | ||
3333 | tab->resize(); | ||
3334 | |||
3335 | fluxbox->ungrab(); | ||
3336 | XUngrabPointer(display, CurrentTime); | ||
3337 | } else if (re->window == frame.window) { | ||
3338 | if (re->button == 2 && re->state == Mod1Mask) | 3307 | if (re->button == 2 && re->state == Mod1Mask) |
3339 | XUngrabPointer(display, CurrentTime); | 3308 | XUngrabPointer(display, CurrentTime); |
3340 | } else { | 3309 | } else { |
@@ -3356,39 +3325,13 @@ void FluxboxWindow::buttonReleaseEvent(XButtonEvent *re) { | |||
3356 | 3325 | ||
3357 | 3326 | ||
3358 | void FluxboxWindow::motionNotifyEvent(XMotionEvent *me) { | 3327 | void FluxboxWindow::motionNotifyEvent(XMotionEvent *me) { |
3359 | Fluxbox *fluxbox = Fluxbox::instance(); | ||
3360 | if ((me->state & Button1Mask) && functions.move && | 3328 | if ((me->state & Button1Mask) && functions.move && |
3361 | (frame.title == me->window || frame.label == me->window || | 3329 | (frame.title == me->window || frame.label == me->window || |
3362 | frame.handle == me->window || frame.window == me->window) && !resizing) { | 3330 | frame.handle == me->window || frame.window == me->window) && !isResizing()) { |
3363 | 3331 | ||
3364 | if (! moving) { | 3332 | if (! isMoving()) { |
3365 | XGrabPointer(display, me->window, False, Button1MotionMask | | 3333 | startMoving(me->window); |
3366 | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, | 3334 | } else { |
3367 | None, fluxbox->getMoveCursor(), CurrentTime); | ||
3368 | |||
3369 | if (windowmenu && windowmenu->isVisible()) | ||
3370 | windowmenu->hide(); | ||
3371 | |||
3372 | moving = true; | ||
3373 | |||
3374 | fluxbox->maskWindowEvents(client.window, this); | ||
3375 | |||
3376 | if (! screen->doOpaqueMove()) { | ||
3377 | fluxbox->grab(); | ||
3378 | |||
3379 | frame.move_x = frame.x; | ||
3380 | frame.move_y = frame.y; | ||
3381 | frame.resize_w = frame.width + screen->getBorderWidth2x(); | ||
3382 | frame.resize_h = ((shaded) ? frame.title_h : frame.height) + | ||
3383 | screen->getBorderWidth2x(); | ||
3384 | |||
3385 | screen->showPosition(frame.x, frame.y); | ||
3386 | |||
3387 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3388 | frame.move_x, frame.move_y, | ||
3389 | frame.resize_w, frame.resize_h); | ||
3390 | } | ||
3391 | } else { | ||
3392 | int dx = me->x_root - frame.grab_x, dy = me->y_root - frame.grab_y; | 3335 | int dx = me->x_root - frame.grab_x, dy = me->y_root - frame.grab_y; |
3393 | 3336 | ||
3394 | dx -= screen->getBorderWidth(); | 3337 | dx -= screen->getBorderWidth(); |
@@ -3429,8 +3372,7 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent *me) { | |||
3429 | 3372 | ||
3430 | if (! screen->doOpaqueMove()) { | 3373 | if (! screen->doOpaqueMove()) { |
3431 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | 3374 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), |
3432 | frame.move_x, frame.move_y, frame.resize_w, | 3375 | frame.move_x, frame.move_y, frame.resize_w, frame.resize_h); |
3433 | frame.resize_h); | ||
3434 | 3376 | ||
3435 | frame.move_x = dx; | 3377 | frame.move_x = dx; |
3436 | frame.move_y = dy; | 3378 | frame.move_y = dy; |
@@ -3441,7 +3383,7 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent *me) { | |||
3441 | } else | 3383 | } else |
3442 | configure(dx, dy, frame.width, frame.height); | 3384 | configure(dx, dy, frame.width, frame.height); |
3443 | 3385 | ||
3444 | screen->showPosition(dx, dy); | 3386 | screen->showPosition(dx, dy); |
3445 | } | 3387 | } |
3446 | } else if (functions.resize && | 3388 | } else if (functions.resize && |
3447 | (((me->state & Button1Mask) && (me->window == frame.right_grip || | 3389 | (((me->state & Button1Mask) && (me->window == frame.right_grip || |
@@ -3449,35 +3391,8 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent *me) { | |||
3449 | me->window == frame.window)) { | 3391 | me->window == frame.window)) { |
3450 | bool left = (me->window == frame.left_grip); | 3392 | bool left = (me->window == frame.left_grip); |
3451 | 3393 | ||
3452 | if (! resizing) { | 3394 | if (! resizing) { |
3453 | XGrabPointer(display, me->window, false, ButtonMotionMask | | 3395 | startResizing(me, left); |
3454 | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, | ||
3455 | ((left) ? fluxbox->getLowerLeftAngleCursor() : | ||
3456 | fluxbox->getLowerRightAngleCursor()), | ||
3457 | CurrentTime); | ||
3458 | |||
3459 | resizing = true; | ||
3460 | |||
3461 | // fluxbox->grab(); | ||
3462 | |||
3463 | int gx, gy; | ||
3464 | frame.grab_x = me->x - screen->getBorderWidth(); | ||
3465 | frame.grab_y = me->y - screen->getBorderWidth2x(); | ||
3466 | frame.resize_x = frame.x; | ||
3467 | frame.resize_y = frame.y; | ||
3468 | frame.resize_w = frame.width + screen->getBorderWidth2x(); | ||
3469 | frame.resize_h = frame.height + screen->getBorderWidth2x(); | ||
3470 | |||
3471 | if (left) | ||
3472 | left_fixsize(&gx, &gy); | ||
3473 | else | ||
3474 | right_fixsize(&gx, &gy); | ||
3475 | |||
3476 | screen->showGeometry(gx, gy); | ||
3477 | |||
3478 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3479 | frame.resize_x, frame.resize_y, | ||
3480 | frame.resize_w, frame.resize_h); | ||
3481 | } else if (resizing) { | 3396 | } else if (resizing) { |
3482 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | 3397 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), |
3483 | frame.resize_x, frame.resize_y, | 3398 | frame.resize_x, frame.resize_y, |
@@ -3566,6 +3481,110 @@ bool FluxboxWindow::validateClient(void) { | |||
3566 | return true; | 3481 | return true; |
3567 | } | 3482 | } |
3568 | 3483 | ||
3484 | void FluxboxWindow::startMoving(Window win) { | ||
3485 | moving = true; | ||
3486 | Fluxbox *fluxbox = Fluxbox::instance(); | ||
3487 | XGrabPointer(display, win, False, Button1MotionMask | | ||
3488 | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, | ||
3489 | None, fluxbox->getMoveCursor(), CurrentTime); | ||
3490 | |||
3491 | if (windowmenu && windowmenu->isVisible()) | ||
3492 | windowmenu->hide(); | ||
3493 | |||
3494 | fluxbox->maskWindowEvents(client.window, this); | ||
3495 | |||
3496 | if (! screen->doOpaqueMove()) { | ||
3497 | fluxbox->grab(); | ||
3498 | |||
3499 | frame.move_x = frame.x; | ||
3500 | frame.move_y = frame.y; | ||
3501 | frame.resize_w = frame.width + screen->getBorderWidth2x(); | ||
3502 | frame.resize_h = ((shaded) ? frame.title_h : frame.height) + | ||
3503 | screen->getBorderWidth2x(); | ||
3504 | |||
3505 | screen->showPosition(frame.x, frame.y); | ||
3506 | |||
3507 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3508 | frame.move_x, frame.move_y, | ||
3509 | frame.resize_w, frame.resize_h); | ||
3510 | } | ||
3511 | } | ||
3512 | |||
3513 | void FluxboxWindow::stopMoving() { | ||
3514 | moving = false; | ||
3515 | Fluxbox *fluxbox = Fluxbox::instance(); | ||
3516 | |||
3517 | fluxbox->maskWindowEvents(0, (FluxboxWindow *) 0); | ||
3518 | |||
3519 | if (! screen->doOpaqueMove()) { | ||
3520 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3521 | frame.move_x, frame.move_y, frame.resize_w, | ||
3522 | frame.resize_h); | ||
3523 | |||
3524 | configure(frame.move_x, frame.move_y, frame.width, frame.height); | ||
3525 | fluxbox->ungrab(); | ||
3526 | } else | ||
3527 | configure(frame.x, frame.y, frame.width, frame.height); | ||
3528 | |||
3529 | screen->hideGeometry(); | ||
3530 | XUngrabPointer(display, CurrentTime); | ||
3531 | |||
3532 | XSync(display, False); //make sure the redraw is made before we continue | ||
3533 | } | ||
3534 | |||
3535 | void FluxboxWindow::startResizing(XMotionEvent *me, bool left) { | ||
3536 | resizing = true; | ||
3537 | Fluxbox *fluxbox = Fluxbox::instance(); | ||
3538 | XGrabPointer(display, me->window, false, ButtonMotionMask | ButtonReleaseMask, | ||
3539 | GrabModeAsync, GrabModeAsync, None, | ||
3540 | ((left) ? fluxbox->getLowerLeftAngleCursor() : fluxbox->getLowerRightAngleCursor()), | ||
3541 | CurrentTime); | ||
3542 | |||
3543 | int gx, gy; | ||
3544 | frame.grab_x = me->x - screen->getBorderWidth(); | ||
3545 | frame.grab_y = me->y - screen->getBorderWidth2x(); | ||
3546 | frame.resize_x = frame.x; | ||
3547 | frame.resize_y = frame.y; | ||
3548 | frame.resize_w = frame.width + screen->getBorderWidth2x(); | ||
3549 | frame.resize_h = frame.height + screen->getBorderWidth2x(); | ||
3550 | |||
3551 | if (left) | ||
3552 | left_fixsize(&gx, &gy); | ||
3553 | else | ||
3554 | right_fixsize(&gx, &gy); | ||
3555 | |||
3556 | screen->showGeometry(gx, gy); | ||
3557 | |||
3558 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3559 | frame.resize_x, frame.resize_y, | ||
3560 | frame.resize_w, frame.resize_h); | ||
3561 | } | ||
3562 | |||
3563 | void FluxboxWindow::stopResizing(Window win) { | ||
3564 | resizing = false; | ||
3565 | |||
3566 | XDrawRectangle(display, screen->getRootWindow(), screen->getOpGC(), | ||
3567 | frame.resize_x, frame.resize_y, | ||
3568 | frame.resize_w, frame.resize_h); | ||
3569 | |||
3570 | screen->hideGeometry(); | ||
3571 | |||
3572 | if (win == frame.left_grip) | ||
3573 | left_fixsize(); | ||
3574 | else | ||
3575 | right_fixsize(); | ||
3576 | |||
3577 | |||
3578 | configure(frame.resize_x, frame.resize_y, | ||
3579 | frame.resize_w - screen->getBorderWidth2x(), | ||
3580 | frame.resize_h - screen->getBorderWidth2x()); | ||
3581 | |||
3582 | if (tab) | ||
3583 | tab->resize(); | ||
3584 | |||
3585 | Fluxbox::instance()->ungrab(); | ||
3586 | XUngrabPointer(display, CurrentTime); | ||
3587 | } | ||
3569 | 3588 | ||
3570 | void FluxboxWindow::restore(void) { | 3589 | void FluxboxWindow::restore(void) { |
3571 | XChangeSaveSet(display, client.window, SetModeDelete); | 3590 | XChangeSaveSet(display, client.window, SetModeDelete); |
diff --git a/src/Window.hh b/src/Window.hh index 73612d9..7d61873 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.15 2002/04/03 23:01:04 fluxgen Exp $ | 25 | // $Id: Window.hh,v 1.16 2002/04/04 13:19:10 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef WINDOW_HH | 27 | #ifndef WINDOW_HH |
28 | #define WINDOW_HH | 28 | #define WINDOW_HH |
@@ -120,22 +120,23 @@ public: | |||
120 | FluxboxWindow(Window, BScreen * = 0); | 120 | FluxboxWindow(Window, BScreen * = 0); |
121 | virtual ~FluxboxWindow(void); | 121 | virtual ~FluxboxWindow(void); |
122 | 122 | ||
123 | inline const bool isTransient(void) const { return ((transient) ? true : false); } | 123 | inline bool isTransient(void) const { return ((transient) ? true : false); } |
124 | inline const bool hasTransient(void) const { return ((client.transient) ? true : false); } | 124 | inline bool hasTransient(void) const { return ((client.transient) ? true : false); } |
125 | inline const bool isManaged() const { return managed; } | 125 | inline bool isManaged() const { return managed; } |
126 | inline const bool isFocused(void) const { return focused; } | 126 | inline bool isFocused(void) const { return focused; } |
127 | inline const bool isVisible(void) const { return visible; } | 127 | inline bool isVisible(void) const { return visible; } |
128 | inline const bool isIconic(void) const { return iconic; } | 128 | inline bool isIconic(void) const { return iconic; } |
129 | inline const bool isShaded(void) const { return shaded; } | 129 | inline bool isShaded(void) const { return shaded; } |
130 | inline const bool isMaximized(void) const { return maximized; } | 130 | inline bool isMaximized(void) const { return maximized; } |
131 | inline const bool isIconifiable(void) const { return functions.iconify; } | 131 | inline bool isIconifiable(void) const { return functions.iconify; } |
132 | inline const bool isMaximizable(void) const { return functions.maximize; } | 132 | inline bool isMaximizable(void) const { return functions.maximize; } |
133 | inline const bool isResizable(void) const { return functions.resize; } | 133 | inline bool isResizable(void) const { return functions.resize; } |
134 | inline const bool isClosable(void) const { return functions.close; } | 134 | inline bool isClosable(void) const { return functions.close; } |
135 | inline const bool isStuck(void) const { return stuck; } | 135 | inline bool isStuck(void) const { return stuck; } |
136 | inline const bool hasTitlebar(void) const { return decorations.titlebar; } | 136 | inline bool hasTitlebar(void) const { return decorations.titlebar; } |
137 | inline const bool hasTab(void) const { return (tab!=0 ? true : false); } | 137 | inline bool hasTab(void) const { return (tab!=0 ? true : false); } |
138 | static void showError(FluxboxWindow::Error error); | 138 | inline bool isMoving(void) const { return moving; } |
139 | inline bool isResizing(void) const { return resizing; } | ||
139 | inline BScreen *getScreen(void) const { return screen; } | 140 | inline BScreen *getScreen(void) const { return screen; } |
140 | inline Tab *getTab(void) const { return tab; } | 141 | inline Tab *getTab(void) const { return tab; } |
141 | inline FluxboxWindow *getTransient(void) const { return client.transient; } | 142 | inline FluxboxWindow *getTransient(void) const { return client.transient; } |
@@ -148,18 +149,18 @@ public: | |||
148 | 149 | ||
149 | inline const std::string &getTitle(void) const { return client.title; } | 150 | inline const std::string &getTitle(void) const { return client.title; } |
150 | inline const std::string &getIconTitle(void) const { return client.icon_title; } | 151 | inline const std::string &getIconTitle(void) const { return client.icon_title; } |
151 | inline const int getXFrame(void) const { return frame.x; } | 152 | inline int getXFrame(void) const { return frame.x; } |
152 | inline const int getYFrame(void) const { return frame.y; } | 153 | inline int getYFrame(void) const { return frame.y; } |
153 | inline const int getXClient(void) const { return client.x; } | 154 | inline int getXClient(void) const { return client.x; } |
154 | inline const int getYClient(void) const { return client.y; } | 155 | inline int getYClient(void) const { return client.y; } |
155 | inline const unsigned int getWorkspaceNumber(void) const { return workspace_number; } | 156 | inline unsigned int getWorkspaceNumber(void) const { return workspace_number; } |
156 | inline const int getWindowNumber(void) const { return window_number; } | 157 | inline int getWindowNumber(void) const { return window_number; } |
157 | inline const WinLayer getLayer(void) const { return m_layer; } | 158 | inline WinLayer getLayer(void) const { return m_layer; } |
158 | inline const unsigned int getWidth(void) const { return frame.width; } | 159 | inline unsigned int getWidth(void) const { return frame.width; } |
159 | inline const unsigned int getHeight(void) const { return frame.height; } | 160 | inline unsigned int getHeight(void) const { return frame.height; } |
160 | inline const unsigned int getClientHeight(void) const { return client.height; } | 161 | inline unsigned int getClientHeight(void) const { return client.height; } |
161 | inline const unsigned int getClientWidth(void) const { return client.width; } | 162 | inline unsigned int getClientWidth(void) const { return client.width; } |
162 | inline const unsigned int getTitleHeight(void) const { return frame.title_h; } | 163 | inline unsigned int getTitleHeight(void) const { return frame.title_h; } |
163 | 164 | ||
164 | inline void setWindowNumber(int n) { window_number = n; } | 165 | inline void setWindowNumber(int n) { window_number = n; } |
165 | 166 | ||
@@ -197,6 +198,8 @@ public: | |||
197 | void exposeEvent(XExposeEvent *); | 198 | void exposeEvent(XExposeEvent *); |
198 | void configureRequestEvent(XConfigureRequestEvent *); | 199 | void configureRequestEvent(XConfigureRequestEvent *); |
199 | 200 | ||
201 | static void showError(FluxboxWindow::Error error); | ||
202 | |||
200 | #ifdef SHAPE | 203 | #ifdef SHAPE |
201 | void shapeEvent(XShapeEvent *); | 204 | void shapeEvent(XShapeEvent *); |
202 | #endif // SHAPE | 205 | #endif // SHAPE |
@@ -212,6 +215,7 @@ public: | |||
212 | void setGnomeState(int state); | 215 | void setGnomeState(int state); |
213 | inline int getGnomeHints() const { return gnome_hints; } | 216 | inline int getGnomeHints() const { return gnome_hints; } |
214 | #endif | 217 | #endif |
218 | |||
215 | private: | 219 | private: |
216 | BImageControl *image_ctrl; | 220 | BImageControl *image_ctrl; |
217 | 221 | ||
@@ -302,7 +306,10 @@ private: | |||
302 | void grabButtons(); | 306 | void grabButtons(); |
303 | 307 | ||
304 | void createButton(int type, ButtonEventProc, ButtonEventProc, ButtonDrawProc); | 308 | void createButton(int type, ButtonEventProc, ButtonEventProc, ButtonDrawProc); |
305 | 309 | void startMoving(Window win); | |
310 | void stopMoving(); | ||
311 | void startResizing(XMotionEvent *me, bool left); | ||
312 | void stopResizing(Window win=0); | ||
306 | #ifdef GNOME | 313 | #ifdef GNOME |
307 | 314 | ||
308 | void updateGnomeAtoms(); | 315 | void updateGnomeAtoms(); |