diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-08-03 17:47:10 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-08-03 17:47:10 +0000 |
| commit | 26827d875ad1fc1b8738f9456f20296241e0bdee (patch) | |
| tree | e45fe29f38c3181aec97a3db6d274bcf7495a42b /openbox/moveresize.c | |
| parent | 9ba3f7d0fd06cd8c29571a997c4092acfbbb2c98 (diff) | |
kill non-opaque move/resize
add an option for redrawing/resizing the client window while resizing, when disabled the client is not touched until the resize is complete.
Diffstat (limited to 'openbox/moveresize.c')
| -rw-r--r-- | openbox/moveresize.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 96eac5cf..88c76431 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -26,9 +26,6 @@ static guint32 corner; static ObCorner lockcorner; static Popup *popup = NULL; -static InternalWindow opaque_window = { { Window_Internal }, None }; -static GC opaque_gc = None; -static gboolean first_draw = FALSE; #define POPUP_X (10) #define POPUP_Y (10) @@ -36,37 +33,17 @@ static gboolean first_draw = FALSE; void moveresize_startup() { XSetWindowAttributes attrib; - XGCValues gcv; popup = popup_new(FALSE); popup_size_to_string(popup, "W: 0000 W: 0000"); attrib.save_under = True; - opaque_window.win = XCreateWindow(ob_display, - RootWindow(ob_display, ob_screen), - 0, 0, 1, 1, 0, - RrDepth(ob_rr_inst), InputOutput, - RrVisual(ob_rr_inst), - CWSaveUnder, &attrib); - stacking_add(INTERNAL_AS_WINDOW(&opaque_window)); - stacking_raise(INTERNAL_AS_WINDOW(&opaque_window)); - - /* a GC to invert stuff */ - gcv.function = GXxor; - gcv.line_width = ob_rr_theme->bwidth; - gcv.foreground = (WhitePixel(ob_display, ob_screen) ^ - BlackPixel(ob_display, ob_screen)); - opaque_gc = XCreateGC(ob_display, opaque_window.win, - GCFunction | GCForeground | GCLineWidth, &gcv); } void moveresize_shutdown() { popup_free(popup); popup = NULL; - stacking_remove(&opaque_window); - XFreeGC(ob_display, opaque_gc); - XDestroyWindow(ob_display, opaque_window.win); } static void popup_coords(char *format, int a, int b) @@ -85,7 +62,6 @@ static void popup_coords(char *format, int a, int b) void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) { ObCursor cur; - Rect *a; g_assert(!moveresize_in_progress); @@ -143,27 +119,10 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) grab_pointer(TRUE, cur); grab_keyboard(TRUE); - - a = screen_physical_area(); - - XMoveResizeWindow(ob_display, opaque_window.win, - a->x, a->y, a->width, a->height); - stacking_raise(INTERNAL_AS_WINDOW(&opaque_window)); - if (corner == prop_atoms.net_wm_moveresize_move || - corner == prop_atoms.net_wm_moveresize_move_keyboard) { - if (!config_opaque_move) - XMapWindow(ob_display, opaque_window.win); - } else { - if (!config_opaque_resize) - XMapWindow(ob_display, opaque_window.win); - } - first_draw = TRUE; } void moveresize_end(gboolean cancel) { - XUnmapWindow(ob_display, opaque_window.win); - grab_keyboard(FALSE); grab_pointer(FALSE, None); @@ -188,35 +147,12 @@ void moveresize_end(gboolean cancel) static void do_move() { - int oldx, oldy, oldw, oldh; - dispatch_move(moveresize_client, &cur_x, &cur_y); - oldx = moveresize_client->frame->area.x; - oldy = moveresize_client->frame->area.y; - oldw = moveresize_client->frame->area.width; - oldh = moveresize_client->frame->area.height; /* get where the client should be */ frame_frame_gravity(moveresize_client->frame, &cur_x, &cur_y); client_configure(moveresize_client, OB_CORNER_TOPLEFT, cur_x, cur_y, start_cw, start_ch, TRUE, FALSE); - /* draw the new one */ - if (moveresize_client->frame->area.x != oldx || - moveresize_client->frame->area.y != oldy || - moveresize_client->frame->area.width != oldw || - moveresize_client->frame->area.height != oldh) { - if (!config_opaque_move) - XDrawRectangle(ob_display, opaque_window.win, opaque_gc, - moveresize_client->frame->area.x, - moveresize_client->frame->area.y, - moveresize_client->frame->area.width - 1, - moveresize_client->frame->area.height - 1); - /* erase the old one */ - if (!config_opaque_move && !first_draw) - XDrawRectangle(ob_display, opaque_window.win, opaque_gc, - oldx, oldy, oldw - 1, oldh - 1); - first_draw = FALSE; - } /* this would be better with a fixed width font ... XXX can do it better if there are 2 text boxes */ @@ -226,8 +162,6 @@ static void do_move() static void do_resize() { - int oldx, oldy, oldw, oldh; - /* dispatch_resize needs the frame size */ cur_x += moveresize_client->frame->size.left + moveresize_client->frame->size.right; @@ -241,25 +175,9 @@ static void do_resize() cur_y -= moveresize_client->frame->size.top + moveresize_client->frame->size.bottom; - oldx = moveresize_client->frame->area.x; - oldy = moveresize_client->frame->area.y; - oldw = moveresize_client->frame->area.width; - oldh = moveresize_client->frame->area.height; client_configure(moveresize_client, lockcorner, moveresize_client->area.x, moveresize_client->area.y, cur_x, cur_y, TRUE, FALSE); - /* draw the new one */ - if (!config_opaque_resize) - XDrawRectangle(ob_display, opaque_window.win, opaque_gc, - moveresize_client->frame->area.x, - moveresize_client->frame->area.y, - moveresize_client->frame->area.width - 1, - moveresize_client->frame->area.height - 1); - /* erase the old one */ - if (!config_opaque_resize && !first_draw) - XDrawRectangle(ob_display, opaque_window.win, opaque_gc, - oldx, oldy, oldw - 1, oldh - 1); - first_draw = FALSE; /* this would be better with a fixed width font ... XXX can do it better if there are 2 text boxes */ |
