[mutter] keybindings: Replace the incomprehensible set of flags with a gravity param
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] keybindings: Replace the incomprehensible set of flags with a gravity param
- Date: Thu, 22 May 2014 20:10:54 +0000 (UTC)
commit 0f37c1b58edb675f6cae041bfb43e532ab677a59
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu May 22 16:09:14 2014 -0400
keybindings: Replace the incomprehensible set of flags with a gravity param
src/core/keybindings.c | 80 ++++++++++++++++++++++++++---------------------
1 files changed, 44 insertions(+), 36 deletions(-)
---
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 2322d28..44cb4e4 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -2491,21 +2491,11 @@ handle_always_on_top (MetaDisplay *display,
meta_window_unmake_above (window);
}
-/* Move a window to a corner; to_bottom/to_right are FALSE for the
- * top or left edge, or TRUE for the bottom/right edge. xchange/ychange
- * are FALSE if that dimension is not to be changed, TRUE otherwise.
- * Together they describe which of the four corners, or four sides,
- * is desired.
- */
static void
-handle_move_to_corner_backend (MetaDisplay *display,
- MetaScreen *screen,
- MetaWindow *window,
- gboolean xchange,
- gboolean ychange,
- gboolean to_right,
- gboolean to_bottom,
- gpointer dummy)
+handle_move_to_corner_backend (MetaDisplay *display,
+ MetaScreen *screen,
+ MetaWindow *window,
+ int gravity)
{
MetaRectangle work_area;
MetaRectangle frame_rect;
@@ -2514,26 +2504,44 @@ handle_move_to_corner_backend (MetaDisplay *display,
meta_window_get_work_area_all_monitors (window, &work_area);
meta_window_get_frame_rect (window, &frame_rect);
- if (xchange)
- {
- new_x = work_area.x + (to_right ?
- work_area.width - frame_rect.width :
- 0);
- }
- else
+ switch (gravity)
{
+ case NorthWestGravity:
+ case WestGravity:
+ case SouthWestGravity:
+ new_x = work_area.x;
+ break;
+ case NorthGravity:
+ case SouthGravity:
new_x = frame_rect.x;
+ break;
+ case NorthEastGravity:
+ case EastGravity:
+ case SouthEastGravity:
+ new_x = work_area.x + work_area.width - frame_rect.width;
+ break;
+ default:
+ g_assert_not_reached ();
}
- if (ychange)
- {
- new_y = work_area.y + (to_bottom ?
- work_area.height - frame_rect.height :
- 0);
- }
- else
+ switch (gravity)
{
+ case NorthWestGravity:
+ case NorthGravity:
+ case NorthEastGravity:
+ new_y = work_area.y;
+ break;
+ case WestGravity:
+ case EastGravity:
new_y = frame_rect.y;
+ break;
+ case SouthWestGravity:
+ case SouthGravity:
+ case SouthEastGravity:
+ new_y = work_area.y + work_area.height - frame_rect.height;
+ break;
+ default:
+ g_assert_not_reached ();
}
meta_window_move_frame (window,
@@ -2550,7 +2558,7 @@ handle_move_to_corner_nw (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, FALSE, dummy);
+ handle_move_to_corner_backend (display, screen, window, NorthWestGravity);
}
static void
@@ -2561,7 +2569,7 @@ handle_move_to_corner_ne (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, FALSE, dummy);
+ handle_move_to_corner_backend (display, screen, window, NorthEastGravity);
}
static void
@@ -2572,7 +2580,7 @@ handle_move_to_corner_sw (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, TRUE, dummy);
+ handle_move_to_corner_backend (display, screen, window, SouthWestGravity);
}
static void
@@ -2583,7 +2591,7 @@ handle_move_to_corner_se (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, TRUE, dummy);
+ handle_move_to_corner_backend (display, screen, window, SouthEastGravity);
}
static void
@@ -2594,7 +2602,7 @@ handle_move_to_side_n (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, FALSE, dummy);
+ handle_move_to_corner_backend (display, screen, window, NorthGravity);
}
static void
@@ -2605,7 +2613,7 @@ handle_move_to_side_s (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, TRUE, dummy);
+ handle_move_to_corner_backend (display, screen, window, SouthGravity);
}
static void
@@ -2616,7 +2624,7 @@ handle_move_to_side_e (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, TRUE, FALSE, dummy);
+ handle_move_to_corner_backend (display, screen, window, EastGravity);
}
static void
@@ -2627,7 +2635,7 @@ handle_move_to_side_w (MetaDisplay *display,
MetaKeyBinding *binding,
gpointer dummy)
{
- handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, FALSE, FALSE, dummy);
+ handle_move_to_corner_backend (display, screen, window, WestGravity);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]