diff --git a/ChangeLog b/ChangeLog index bfc78b037..6152d5a35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Wed Mar 15 16:30:09 2006 Søren Sandmann + + * src/compositor.c (set_geometry): Use set_target_rect() instead + of set_size(). + + * src/c-screen.c: Add set_target_rect() as a way of scaling windows. + + * src/window.c (meta_window_handle_mouse_grab_op_event): Turn + updates on after a button release. + + * src/window.c (meta_window_move_resize_internal): Fix + indentation. + Wed Mar 15 11:34:54 2006 Søren Sandmann * src/c-screen.c (meta_screen_info_add_window): Use unset_patch() diff --git a/src/c-screen.c b/src/c-screen.c index 47e3a1ef5..e85e39c51 100644 --- a/src/c-screen.c +++ b/src/c-screen.c @@ -518,6 +518,10 @@ meta_screen_info_set_updates (MetaScreenInfo *info, { WindowInfo *win_info = find_win_info (info, xwindow); CmDrawableNode *node = CM_DRAWABLE_NODE (win_info->node); + +#if 0 + g_print ("setting updates to %s\n", updates? "on" : "off"); +#endif win_info->updates = updates; @@ -601,3 +605,15 @@ meta_screen_info_unmap (MetaScreenInfo *info, } #endif + +void +meta_screen_info_set_target_rect (MetaScreenInfo *info, + Window xwindow, + WsRectangle *rect) +{ + CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow)); + + if (node) + cm_drawable_node_set_scale_rect (node, rect); +} + diff --git a/src/c-screen.h b/src/c-screen.h index 54fd26c94..e0b96b7c3 100644 --- a/src/c-screen.h +++ b/src/c-screen.h @@ -38,3 +38,7 @@ void meta_screen_info_set_alpha (MetaScreenInfo *info, void meta_screen_info_get_real_size (MetaScreenInfo *info, Window xwindow, WsRectangle *size); +void meta_screen_info_set_target_rect (MetaScreenInfo *info, + Window xwindow, + WsRectangle *rect); + diff --git a/src/compositor.c b/src/compositor.c index 78de8d550..aa7622da1 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -211,8 +211,11 @@ process_configure_notify (MetaCompositor *compositor, #if 0 g_print ("minfo: %lx => %p\n", event->window, minfo); +#endif - g_print ("configure on %lx (above: %lx)\n", event->window, event->above); +#if 0 + g_print ("configure on %lx (above: %lx) %d %d %d %d\n", event->window, event->above, + event->x, event->y, event->width, event->height); #endif if (!minfo) @@ -887,10 +890,8 @@ set_geometry (MiniInfo *info, gdouble elapsed) g_print ("setting: %d %d %d %d\n", rect.x, rect.y, rect.width, rect.height); - meta_screen_info_set_size (info->scr_info, - get_xid (info->window), - rect.x, rect.y, - rect.width, rect.height); + meta_screen_info_set_target_rect (info->scr_info, + get_xid (info->window), &rect); } static int diff --git a/src/window.c b/src/window.c index 831146c90..1db08395c 100644 --- a/src/window.c +++ b/src/window.c @@ -3013,9 +3013,9 @@ meta_window_move_resize_internal (MetaWindow *window, change frame's extents property. */ if (window->frame && (window->frame->child_x != fgeom.left_width || - window->frame->child_y != fgeom.top_height || - window->frame->right_width != fgeom.right_width || - window->frame->bottom_height != fgeom.bottom_height)) + window->frame->child_y != fgeom.top_height || + window->frame->right_width != fgeom.right_width || + window->frame->bottom_height != fgeom.bottom_height)) { window->frame->child_x = fgeom.left_width; window->frame->child_y = fgeom.top_height; @@ -7231,6 +7231,8 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window, event->xbutton.x_root, event->xbutton.y_root, TRUE); + if (window->display->compositor) + meta_compositor_set_updates (window->display->compositor, window, TRUE); } }