edge-resistance: Replace booleans with flags parameter
Multiple boolean parameters don't make for great API, so before we add another one, replace them with a single flag parameter. https://bugzilla.gnome.org/show_bug.cgi?id=679609
This commit is contained in:
parent
64ced1632e
commit
f9edb6bad3
@ -192,7 +192,7 @@ struct _MetaDisplay
|
|||||||
gboolean grab_threshold_movement_reached; /* raise_on_click == FALSE. */
|
gboolean grab_threshold_movement_reached; /* raise_on_click == FALSE. */
|
||||||
int64_t grab_last_moveresize_time;
|
int64_t grab_last_moveresize_time;
|
||||||
MetaEdgeResistanceData *grab_edge_resistance_data;
|
MetaEdgeResistanceData *grab_edge_resistance_data;
|
||||||
unsigned int grab_last_user_action_was_snap;
|
unsigned int grab_last_edge_resistance_flags;
|
||||||
|
|
||||||
int grab_resize_timeout_id;
|
int grab_resize_timeout_id;
|
||||||
|
|
||||||
|
@ -1903,7 +1903,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
|
|||||||
display->grab_latest_motion_x = root_x;
|
display->grab_latest_motion_x = root_x;
|
||||||
display->grab_latest_motion_y = root_y;
|
display->grab_latest_motion_y = root_y;
|
||||||
display->grab_last_moveresize_time = 0;
|
display->grab_last_moveresize_time = 0;
|
||||||
display->grab_last_user_action_was_snap = FALSE;
|
display->grab_last_edge_resistance_flags = META_EDGE_RESISTANCE_DEFAULT;
|
||||||
display->grab_frame_action = frame_action;
|
display->grab_frame_action = frame_action;
|
||||||
|
|
||||||
meta_display_update_cursor (display);
|
meta_display_update_cursor (display);
|
||||||
|
@ -537,19 +537,22 @@ apply_edge_snapping (int old_pos,
|
|||||||
* function will cause a crash.
|
* function will cause a crash.
|
||||||
*/
|
*/
|
||||||
static gboolean
|
static gboolean
|
||||||
apply_edge_resistance_to_each_side (MetaDisplay *display,
|
apply_edge_resistance_to_each_side (MetaDisplay *display,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
const MetaRectangle *old_outer,
|
const MetaRectangle *old_outer,
|
||||||
MetaRectangle *new_outer,
|
MetaRectangle *new_outer,
|
||||||
GSourceFunc timeout_func,
|
GSourceFunc timeout_func,
|
||||||
gboolean auto_snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
gboolean keyboard_op,
|
gboolean is_resize)
|
||||||
gboolean is_resize)
|
|
||||||
{
|
{
|
||||||
MetaEdgeResistanceData *edge_data;
|
MetaEdgeResistanceData *edge_data;
|
||||||
MetaRectangle modified_rect;
|
MetaRectangle modified_rect;
|
||||||
gboolean modified;
|
gboolean modified;
|
||||||
int new_left, new_right, new_top, new_bottom;
|
int new_left, new_right, new_top, new_bottom;
|
||||||
|
gboolean auto_snap, keyboard_op;
|
||||||
|
|
||||||
|
auto_snap = flags & META_EDGE_RESISTANCE_SNAP;
|
||||||
|
keyboard_op = flags & META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
|
||||||
if (display->grab_edge_resistance_data == NULL)
|
if (display->grab_edge_resistance_data == NULL)
|
||||||
compute_resistance_and_snapping_edges (display);
|
compute_resistance_and_snapping_edges (display);
|
||||||
@ -1174,15 +1177,15 @@ compute_resistance_and_snapping_edges (MetaDisplay *display)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_window_edge_resistance_for_move (MetaWindow *window,
|
meta_window_edge_resistance_for_move (MetaWindow *window,
|
||||||
int *new_x,
|
int *new_x,
|
||||||
int *new_y,
|
int *new_y,
|
||||||
GSourceFunc timeout_func,
|
GSourceFunc timeout_func,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags)
|
||||||
gboolean is_keyboard_op)
|
|
||||||
{
|
{
|
||||||
MetaRectangle old_outer, proposed_outer, new_outer;
|
MetaRectangle old_outer, proposed_outer, new_outer;
|
||||||
gboolean is_resize;
|
MetaEdgeResistanceFlags saved_flags;
|
||||||
|
gboolean is_resize, is_keyboard_op, snap;
|
||||||
|
|
||||||
meta_window_get_frame_rect (window, &old_outer);
|
meta_window_get_frame_rect (window, &old_outer);
|
||||||
|
|
||||||
@ -1191,15 +1194,18 @@ meta_window_edge_resistance_for_move (MetaWindow *window,
|
|||||||
proposed_outer.y = *new_y;
|
proposed_outer.y = *new_y;
|
||||||
new_outer = proposed_outer;
|
new_outer = proposed_outer;
|
||||||
|
|
||||||
window->display->grab_last_user_action_was_snap = snap;
|
snap = flags & META_EDGE_RESISTANCE_SNAP;
|
||||||
|
is_keyboard_op = flags & META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
saved_flags = flags & ~META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
|
||||||
|
window->display->grab_last_edge_resistance_flags = saved_flags;
|
||||||
is_resize = FALSE;
|
is_resize = FALSE;
|
||||||
if (apply_edge_resistance_to_each_side (window->display,
|
if (apply_edge_resistance_to_each_side (window->display,
|
||||||
window,
|
window,
|
||||||
&old_outer,
|
&old_outer,
|
||||||
&new_outer,
|
&new_outer,
|
||||||
timeout_func,
|
timeout_func,
|
||||||
snap,
|
flags,
|
||||||
is_keyboard_op,
|
|
||||||
is_resize))
|
is_resize))
|
||||||
{
|
{
|
||||||
/* apply_edge_resistance_to_each_side independently applies
|
/* apply_edge_resistance_to_each_side independently applies
|
||||||
@ -1252,15 +1258,15 @@ meta_window_edge_resistance_for_move (MetaWindow *window,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_window_edge_resistance_for_resize (MetaWindow *window,
|
meta_window_edge_resistance_for_resize (MetaWindow *window,
|
||||||
int *new_width,
|
int *new_width,
|
||||||
int *new_height,
|
int *new_height,
|
||||||
MetaGravity gravity,
|
MetaGravity gravity,
|
||||||
GSourceFunc timeout_func,
|
GSourceFunc timeout_func,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags)
|
||||||
gboolean is_keyboard_op)
|
|
||||||
{
|
{
|
||||||
MetaRectangle old_outer, new_outer;
|
MetaRectangle old_outer, new_outer;
|
||||||
|
MetaEdgeResistanceFlags saved_flags;
|
||||||
int proposed_outer_width, proposed_outer_height;
|
int proposed_outer_width, proposed_outer_height;
|
||||||
|
|
||||||
meta_window_get_frame_rect (window, &old_outer);
|
meta_window_get_frame_rect (window, &old_outer);
|
||||||
@ -1272,14 +1278,15 @@ meta_window_edge_resistance_for_resize (MetaWindow *window,
|
|||||||
proposed_outer_width,
|
proposed_outer_width,
|
||||||
proposed_outer_height);
|
proposed_outer_height);
|
||||||
|
|
||||||
window->display->grab_last_user_action_was_snap = snap;
|
saved_flags = flags & ~META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
window->display->grab_last_edge_resistance_flags = saved_flags;
|
||||||
|
|
||||||
if (apply_edge_resistance_to_each_side (window->display,
|
if (apply_edge_resistance_to_each_side (window->display,
|
||||||
window,
|
window,
|
||||||
&old_outer,
|
&old_outer,
|
||||||
&new_outer,
|
&new_outer,
|
||||||
timeout_func,
|
timeout_func,
|
||||||
snap,
|
flags,
|
||||||
is_keyboard_op,
|
|
||||||
TRUE))
|
TRUE))
|
||||||
{
|
{
|
||||||
*new_width = new_outer.width;
|
*new_width = new_outer.width;
|
||||||
|
@ -24,19 +24,17 @@
|
|||||||
|
|
||||||
#include "core/window-private.h"
|
#include "core/window-private.h"
|
||||||
|
|
||||||
void meta_window_edge_resistance_for_move (MetaWindow *window,
|
void meta_window_edge_resistance_for_move (MetaWindow *window,
|
||||||
int *new_x,
|
int *new_x,
|
||||||
int *new_y,
|
int *new_y,
|
||||||
GSourceFunc timeout_func,
|
GSourceFunc timeout_func,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags);
|
||||||
gboolean is_keyboard_op);
|
void meta_window_edge_resistance_for_resize (MetaWindow *window,
|
||||||
void meta_window_edge_resistance_for_resize (MetaWindow *window,
|
int *new_width,
|
||||||
int *new_width,
|
int *new_height,
|
||||||
int *new_height,
|
MetaGravity gravity,
|
||||||
MetaGravity gravity,
|
GSourceFunc timeout_func,
|
||||||
GSourceFunc timeout_func,
|
MetaEdgeResistanceFlags flags);
|
||||||
gboolean snap,
|
|
||||||
gboolean is_keyboard_op);
|
|
||||||
|
|
||||||
#endif /* META_EDGE_RESISTANCE_H */
|
#endif /* META_EDGE_RESISTANCE_H */
|
||||||
|
|
||||||
|
@ -2400,11 +2400,11 @@ process_keyboard_move_grab (MetaDisplay *display,
|
|||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
ClutterKeyEvent *event)
|
ClutterKeyEvent *event)
|
||||||
{
|
{
|
||||||
|
MetaEdgeResistanceFlags flags;
|
||||||
gboolean handled;
|
gboolean handled;
|
||||||
MetaRectangle frame_rect;
|
MetaRectangle frame_rect;
|
||||||
int x, y;
|
int x, y;
|
||||||
int incr;
|
int incr;
|
||||||
gboolean smart_snap;
|
|
||||||
|
|
||||||
handled = FALSE;
|
handled = FALSE;
|
||||||
|
|
||||||
@ -2420,12 +2420,15 @@ process_keyboard_move_grab (MetaDisplay *display,
|
|||||||
x = frame_rect.x;
|
x = frame_rect.x;
|
||||||
y = frame_rect.y;
|
y = frame_rect.y;
|
||||||
|
|
||||||
smart_snap = (event->modifier_state & CLUTTER_SHIFT_MASK) != 0;
|
flags = META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
|
||||||
|
if ((event->modifier_state & CLUTTER_SHIFT_MASK) != 0)
|
||||||
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
|
|
||||||
#define SMALL_INCREMENT 1
|
#define SMALL_INCREMENT 1
|
||||||
#define NORMAL_INCREMENT 10
|
#define NORMAL_INCREMENT 10
|
||||||
|
|
||||||
if (smart_snap)
|
if (flags & META_EDGE_RESISTANCE_SNAP)
|
||||||
incr = 1;
|
incr = 1;
|
||||||
else if (event->modifier_state & CLUTTER_CONTROL_MASK)
|
else if (event->modifier_state & CLUTTER_CONTROL_MASK)
|
||||||
incr = SMALL_INCREMENT;
|
incr = SMALL_INCREMENT;
|
||||||
@ -2501,8 +2504,7 @@ process_keyboard_move_grab (MetaDisplay *display,
|
|||||||
&x,
|
&x,
|
||||||
&y,
|
&y,
|
||||||
NULL,
|
NULL,
|
||||||
smart_snap,
|
flags);
|
||||||
TRUE);
|
|
||||||
|
|
||||||
meta_window_move_frame (window, TRUE, x, y);
|
meta_window_move_frame (window, TRUE, x, y);
|
||||||
meta_window_update_keyboard_move (window);
|
meta_window_update_keyboard_move (window);
|
||||||
@ -2641,7 +2643,7 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
|||||||
int height_inc;
|
int height_inc;
|
||||||
int width_inc;
|
int width_inc;
|
||||||
int width, height;
|
int width, height;
|
||||||
gboolean smart_snap;
|
MetaEdgeResistanceFlags flags;
|
||||||
MetaGravity gravity;
|
MetaGravity gravity;
|
||||||
|
|
||||||
handled = FALSE;
|
handled = FALSE;
|
||||||
@ -2679,12 +2681,15 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
|||||||
|
|
||||||
gravity = meta_resize_gravity_from_grab_op (display->grab_op);
|
gravity = meta_resize_gravity_from_grab_op (display->grab_op);
|
||||||
|
|
||||||
smart_snap = (event->modifier_state & CLUTTER_SHIFT_MASK) != 0;
|
flags = META_EDGE_RESISTANCE_KEYBOARD_OP;
|
||||||
|
|
||||||
|
if ((event->modifier_state & CLUTTER_SHIFT_MASK) != 0)
|
||||||
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
|
|
||||||
#define SMALL_INCREMENT 1
|
#define SMALL_INCREMENT 1
|
||||||
#define NORMAL_INCREMENT 10
|
#define NORMAL_INCREMENT 10
|
||||||
|
|
||||||
if (smart_snap)
|
if (flags & META_EDGE_RESISTANCE_SNAP)
|
||||||
{
|
{
|
||||||
height_inc = 1;
|
height_inc = 1;
|
||||||
width_inc = 1;
|
width_inc = 1;
|
||||||
@ -2853,8 +2858,7 @@ process_keyboard_resize_grab (MetaDisplay *display,
|
|||||||
&height,
|
&height,
|
||||||
gravity,
|
gravity,
|
||||||
NULL,
|
NULL,
|
||||||
smart_snap,
|
flags);
|
||||||
TRUE);
|
|
||||||
|
|
||||||
meta_window_resize_frame_with_gravity (window,
|
meta_window_resize_frame_with_gravity (window,
|
||||||
TRUE,
|
TRUE,
|
||||||
|
@ -157,6 +157,13 @@ typedef enum
|
|||||||
META_EDGE_CONSTRAINT_MONITOR = 2,
|
META_EDGE_CONSTRAINT_MONITOR = 2,
|
||||||
} MetaEdgeConstraint;
|
} MetaEdgeConstraint;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
META_EDGE_RESISTANCE_DEFAULT = 0,
|
||||||
|
META_EDGE_RESISTANCE_SNAP = 1 << 0,
|
||||||
|
META_EDGE_RESISTANCE_KEYBOARD_OP = 1 << 1,
|
||||||
|
} MetaEdgeResistanceFlags;
|
||||||
|
|
||||||
struct _MetaWindow
|
struct _MetaWindow
|
||||||
{
|
{
|
||||||
GObject parent_instance;
|
GObject parent_instance;
|
||||||
@ -843,7 +850,7 @@ void meta_window_set_urgent (MetaWindow *window,
|
|||||||
gboolean urgent);
|
gboolean urgent);
|
||||||
|
|
||||||
void meta_window_update_resize (MetaWindow *window,
|
void meta_window_update_resize (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x, int y,
|
int x, int y,
|
||||||
gboolean force);
|
gboolean force);
|
||||||
|
|
||||||
|
@ -131,16 +131,16 @@ static void meta_window_move_resize_now (MetaWindow *window);
|
|||||||
|
|
||||||
static void meta_window_unqueue (MetaWindow *window, guint queuebits);
|
static void meta_window_unqueue (MetaWindow *window, guint queuebits);
|
||||||
|
|
||||||
static void update_move (MetaWindow *window,
|
static void update_move (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x,
|
int x,
|
||||||
int y);
|
int y);
|
||||||
static gboolean update_move_timeout (gpointer data);
|
static gboolean update_move_timeout (gpointer data);
|
||||||
static void update_resize (MetaWindow *window,
|
static void update_resize (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x,
|
int x,
|
||||||
int y,
|
int y,
|
||||||
gboolean force);
|
gboolean force);
|
||||||
static gboolean update_resize_timeout (gpointer data);
|
static gboolean update_resize_timeout (gpointer data);
|
||||||
static gboolean should_be_on_all_workspaces (MetaWindow *window);
|
static gboolean should_be_on_all_workspaces (MetaWindow *window);
|
||||||
|
|
||||||
@ -5980,7 +5980,7 @@ update_move_timeout (gpointer data)
|
|||||||
MetaWindow *window = data;
|
MetaWindow *window = data;
|
||||||
|
|
||||||
update_move (window,
|
update_move (window,
|
||||||
window->display->grab_last_user_action_was_snap,
|
window->display->grab_last_edge_resistance_flags,
|
||||||
window->display->grab_latest_motion_x,
|
window->display->grab_latest_motion_x,
|
||||||
window->display->grab_latest_motion_y);
|
window->display->grab_latest_motion_y);
|
||||||
|
|
||||||
@ -6043,10 +6043,10 @@ update_move_maybe_tile (MetaWindow *window,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_move (MetaWindow *window,
|
update_move (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x,
|
int x,
|
||||||
int y)
|
int y)
|
||||||
{
|
{
|
||||||
int dx, dy;
|
int dx, dy;
|
||||||
int new_x, new_y;
|
int new_x, new_y;
|
||||||
@ -6086,7 +6086,7 @@ update_move (MetaWindow *window,
|
|||||||
shake_threshold = meta_prefs_get_drag_threshold () *
|
shake_threshold = meta_prefs_get_drag_threshold () *
|
||||||
DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR;
|
DRAG_THRESHOLD_TO_SHAKE_THRESHOLD_FACTOR;
|
||||||
|
|
||||||
if (snap)
|
if (flags & META_EDGE_RESISTANCE_SNAP)
|
||||||
{
|
{
|
||||||
/* We don't want to tile while snapping. Also, clear any previous tile
|
/* We don't want to tile while snapping. Also, clear any previous tile
|
||||||
request. */
|
request. */
|
||||||
@ -6222,8 +6222,7 @@ update_move (MetaWindow *window,
|
|||||||
&new_x,
|
&new_x,
|
||||||
&new_y,
|
&new_y,
|
||||||
update_move_timeout,
|
update_move_timeout,
|
||||||
snap,
|
flags);
|
||||||
FALSE);
|
|
||||||
|
|
||||||
meta_window_move_frame (window, TRUE, new_x, new_y);
|
meta_window_move_frame (window, TRUE, new_x, new_y);
|
||||||
}
|
}
|
||||||
@ -6234,7 +6233,7 @@ update_resize_timeout (gpointer data)
|
|||||||
MetaWindow *window = data;
|
MetaWindow *window = data;
|
||||||
|
|
||||||
update_resize (window,
|
update_resize (window,
|
||||||
window->display->grab_last_user_action_was_snap,
|
window->display->grab_last_edge_resistance_flags,
|
||||||
window->display->grab_latest_motion_x,
|
window->display->grab_latest_motion_x,
|
||||||
window->display->grab_latest_motion_y,
|
window->display->grab_latest_motion_y,
|
||||||
TRUE);
|
TRUE);
|
||||||
@ -6242,10 +6241,11 @@ update_resize_timeout (gpointer data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_resize (MetaWindow *window,
|
update_resize (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x, int y,
|
int x,
|
||||||
gboolean force)
|
int y,
|
||||||
|
gboolean force)
|
||||||
{
|
{
|
||||||
int dx, dy;
|
int dx, dy;
|
||||||
int new_w, new_h;
|
int new_w, new_h;
|
||||||
@ -6359,8 +6359,7 @@ update_resize (MetaWindow *window,
|
|||||||
&new_h,
|
&new_h,
|
||||||
gravity,
|
gravity,
|
||||||
update_resize_timeout,
|
update_resize_timeout,
|
||||||
snap,
|
flags);
|
||||||
FALSE);
|
|
||||||
|
|
||||||
meta_window_resize_frame_with_gravity (window, TRUE, new_w, new_h, gravity);
|
meta_window_resize_frame_with_gravity (window, TRUE, new_w, new_h, gravity);
|
||||||
|
|
||||||
@ -6389,11 +6388,11 @@ maybe_maximize_tiled_window (MetaWindow *window)
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_window_update_resize (MetaWindow *window,
|
meta_window_update_resize (MetaWindow *window,
|
||||||
gboolean snap,
|
MetaEdgeResistanceFlags flags,
|
||||||
int x, int y,
|
int x, int y,
|
||||||
gboolean force)
|
gboolean force)
|
||||||
{
|
{
|
||||||
update_resize (window, snap, x, y, force);
|
update_resize (window, flags, x, y, force);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -6401,6 +6400,7 @@ end_grab_op (MetaWindow *window,
|
|||||||
const ClutterEvent *event)
|
const ClutterEvent *event)
|
||||||
{
|
{
|
||||||
ClutterModifierType modifiers;
|
ClutterModifierType modifiers;
|
||||||
|
MetaEdgeResistanceFlags last_flags;
|
||||||
gfloat x, y;
|
gfloat x, y;
|
||||||
|
|
||||||
clutter_event_get_coords (event, &x, &y);
|
clutter_event_get_coords (event, &x, &y);
|
||||||
@ -6413,23 +6413,27 @@ end_grab_op (MetaWindow *window,
|
|||||||
* not want a non-snapped movement to occur from the button
|
* not want a non-snapped movement to occur from the button
|
||||||
* release.
|
* release.
|
||||||
*/
|
*/
|
||||||
if (!window->display->grab_last_user_action_was_snap)
|
last_flags = window->display->grab_last_edge_resistance_flags;
|
||||||
|
if ((last_flags & META_EDGE_RESISTANCE_SNAP) == 0)
|
||||||
{
|
{
|
||||||
|
MetaEdgeResistanceFlags flags = META_EDGE_RESISTANCE_DEFAULT;
|
||||||
|
|
||||||
|
if (modifiers & CLUTTER_SHIFT_MASK)
|
||||||
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
|
|
||||||
if (meta_grab_op_is_moving (window->display->grab_op))
|
if (meta_grab_op_is_moving (window->display->grab_op))
|
||||||
{
|
{
|
||||||
if (window->display->preview_tile_mode != META_TILE_NONE)
|
if (window->display->preview_tile_mode != META_TILE_NONE)
|
||||||
meta_window_tile (window, window->display->preview_tile_mode);
|
meta_window_tile (window, window->display->preview_tile_mode);
|
||||||
else
|
else
|
||||||
update_move (window,
|
update_move (window, flags, x, y);
|
||||||
modifiers & CLUTTER_SHIFT_MASK,
|
|
||||||
x, y);
|
|
||||||
}
|
}
|
||||||
else if (meta_grab_op_is_resizing (window->display->grab_op))
|
else if (meta_grab_op_is_resizing (window->display->grab_op))
|
||||||
{
|
{
|
||||||
update_resize (window,
|
if (window->tile_match != NULL)
|
||||||
modifiers & CLUTTER_SHIFT_MASK || window->tile_match != NULL,
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
x, y,
|
|
||||||
TRUE);
|
update_resize (window, flags, x, y, TRUE);
|
||||||
maybe_maximize_tiled_window (window);
|
maybe_maximize_tiled_window (window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6443,6 +6447,7 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
|
|||||||
{
|
{
|
||||||
ClutterEventSequence *sequence = clutter_event_get_event_sequence (event);
|
ClutterEventSequence *sequence = clutter_event_get_event_sequence (event);
|
||||||
ClutterModifierType modifier_state;
|
ClutterModifierType modifier_state;
|
||||||
|
MetaEdgeResistanceFlags flags;
|
||||||
gfloat x, y;
|
gfloat x, y;
|
||||||
|
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
@ -6493,20 +6498,22 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
|
|||||||
case CLUTTER_MOTION:
|
case CLUTTER_MOTION:
|
||||||
modifier_state = clutter_event_get_state (event);
|
modifier_state = clutter_event_get_state (event);
|
||||||
clutter_event_get_coords (event, &x, &y);
|
clutter_event_get_coords (event, &x, &y);
|
||||||
|
flags = META_EDGE_RESISTANCE_DEFAULT;
|
||||||
|
|
||||||
|
if (modifier_state & CLUTTER_SHIFT_MASK)
|
||||||
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
|
|
||||||
meta_display_check_threshold_reached (window->display, x, y);
|
meta_display_check_threshold_reached (window->display, x, y);
|
||||||
if (meta_grab_op_is_moving (window->display->grab_op))
|
if (meta_grab_op_is_moving (window->display->grab_op))
|
||||||
{
|
{
|
||||||
update_move (window,
|
update_move (window, flags, x, y);
|
||||||
modifier_state & CLUTTER_SHIFT_MASK,
|
|
||||||
x, y);
|
|
||||||
}
|
}
|
||||||
else if (meta_grab_op_is_resizing (window->display->grab_op))
|
else if (meta_grab_op_is_resizing (window->display->grab_op))
|
||||||
{
|
{
|
||||||
update_resize (window,
|
if (window->tile_match != NULL)
|
||||||
modifier_state & CLUTTER_SHIFT_MASK || window->tile_match != NULL,
|
flags |= META_EDGE_RESISTANCE_SNAP;
|
||||||
x, y,
|
|
||||||
FALSE);
|
update_resize (window, flags, x, y, FALSE);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@ -1226,7 +1226,7 @@ sync_request_timeout (gpointer data)
|
|||||||
meta_grab_op_is_resizing (window->display->grab_op))
|
meta_grab_op_is_resizing (window->display->grab_op))
|
||||||
{
|
{
|
||||||
meta_window_update_resize (window,
|
meta_window_update_resize (window,
|
||||||
window->display->grab_last_user_action_was_snap,
|
window->display->grab_last_edge_resistance_flags,
|
||||||
window->display->grab_latest_motion_x,
|
window->display->grab_latest_motion_x,
|
||||||
window->display->grab_latest_motion_y,
|
window->display->grab_latest_motion_y,
|
||||||
TRUE);
|
TRUE);
|
||||||
@ -4028,7 +4028,7 @@ meta_window_x11_update_sync_request_counter (MetaWindow *window,
|
|||||||
/* This means we are ready for another configure;
|
/* This means we are ready for another configure;
|
||||||
* no pointer round trip here, to keep in sync */
|
* no pointer round trip here, to keep in sync */
|
||||||
meta_window_update_resize (window,
|
meta_window_update_resize (window,
|
||||||
window->display->grab_last_user_action_was_snap,
|
window->display->grab_last_edge_resistance_flags,
|
||||||
window->display->grab_latest_motion_x,
|
window->display->grab_latest_motion_x,
|
||||||
window->display->grab_latest_motion_y,
|
window->display->grab_latest_motion_y,
|
||||||
TRUE);
|
TRUE);
|
||||||
|
Loading…
Reference in New Issue
Block a user