| /* { dg-do assemble { target ia64-*-* } } */ |
| typedef int gint; |
| typedef gint gboolean; |
| typedef unsigned int guint; |
| typedef struct _MetaRectangle MetaRectangle; |
| struct _MetaRectangle |
| { |
| int x; |
| int y; |
| }; |
| typedef struct _MetaDisplay MetaDisplay; |
| typedef struct _MetaFrame MetaFrame; |
| typedef struct _MetaWindow MetaWindow; |
| typedef struct |
| { |
| int win_gravity; |
| } |
| XSizeHints; |
| typedef enum |
| { |
| META_DEBUG_FOCUS = 1 << 0, META_DEBUG_WORKAREA = 1 << 1, META_DEBUG_STACK = |
| 1 << 6, META_DEBUG_WINDOW_OPS = 1 << 7, META_DEBUG_GEOMETRY = |
| 1 << 20, META_DEBUG_EDGE_RESISTANCE = 1 << 21 |
| } |
| MetaStackLayer; |
| struct _MetaWindow |
| { |
| MetaDisplay *display; |
| MetaFrame *frame; |
| guint user_has_move_resized:1; |
| MetaRectangle user_rect; |
| XSizeHints size_hints; |
| }; |
| void meta_window_get_position (MetaWindow * window, int *x, int *y); |
| typedef struct _MetaFrameGeometry MetaFrameGeometry; |
| struct _MetaFrameGeometry |
| { |
| }; |
| struct _MetaFrame |
| { |
| MetaWindow *window; |
| MetaRectangle rect; |
| int child_x; |
| int child_y; |
| }; |
| typedef enum |
| { |
| META_IS_CONFIGURE_REQUEST = 1 << 0, META_DO_GRAVITY_ADJUST = |
| 1 << 3, META_IS_RESIZE_ACTION = 1 << 4 |
| } |
| MetaMoveResizeFlags; |
| adjust_for_gravity (MetaWindow * window, MetaFrameGeometry * fgeom, |
| gboolean coords_assume_border, int gravity, |
| MetaRectangle * rect) |
| { |
| int ref_x, ref_y; |
| int child_x, child_y; |
| int frame_width, frame_height; |
| switch (gravity) |
| { |
| case 1: |
| ref_x = rect->x; |
| } |
| switch (gravity) |
| { |
| case 1: |
| rect->y = ref_y + child_y; |
| case 2: |
| rect->x = ref_x - frame_width / 2 + child_x; |
| break; |
| case 3: |
| case 5: |
| case 6: |
| rect->x = ref_x - frame_width + child_x; |
| } |
| } |
| meta_window_move_resize_internal (MetaWindow * window, |
| MetaMoveResizeFlags flags, |
| int resize_gravity, int root_x_nw, |
| int root_y_nw, int w, int h) |
| { |
| unsigned int mask; |
| MetaFrameGeometry fgeom; |
| gboolean need_resize_client = (0); |
| gboolean is_configure_request; |
| MetaRectangle new_rect; |
| MetaRectangle old_rect; |
| { |
| adjust_for_gravity (window, window->frame ? &fgeom : ((void *) 0), |
| is_configure_request, window->size_hints.win_gravity, |
| &new_rect); |
| } |
| meta_window_constrain (window, window->frame ? &fgeom : ((void *) 0), flags, |
| resize_gravity, &old_rect, &new_rect); |
| if (mask != 0) |
| { |
| { |
| meta_topic_real (META_DEBUG_GEOMETRY, |
| need_resize_client ? "true" : "false"); |
| } |
| } |
| { |
| window->user_has_move_resized = (!(0)); |
| meta_window_get_position (window, &window->user_rect.x, |
| &window->user_rect.y); |
| } |
| } |
| void |
| meta_window_get_position (MetaWindow * window, int *x, int *y) |
| { |
| if (window->frame) |
| { |
| *x = window->frame->rect.x + window->frame->child_x; |
| *y = window->frame->rect.y + window->frame->child_y; |
| } |
| } |