diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/prefs.c | 32 | ||||
| -rw-r--r-- | src/core/window.c | 13 | ||||
| -rw-r--r-- | src/include/prefs.h | 8 | ||||
| -rw-r--r-- | src/org.mate.marco.gschema.xml | 11 | 
4 files changed, 44 insertions, 20 deletions
| diff --git a/src/core/prefs.c b/src/core/prefs.c index 61c957ad..021ad874 100644 --- a/src/core/prefs.c +++ b/src/core/prefs.c @@ -120,7 +120,8 @@ static gboolean resize_with_right_button = FALSE;  static gboolean show_tab_border = FALSE;  static gboolean center_new_windows = FALSE;  static gboolean force_fullscreen = TRUE; -static gboolean side_by_side_tiling = FALSE; +static gboolean allow_tiling = FALSE; +static gboolean allow_top_tiling = TRUE;  static GList *show_desktop_skip_list = NULL;  static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH; @@ -422,10 +423,16 @@ static MetaBoolPreference preferences_bool[] =        ¢er_new_windows,        FALSE,      }, -    { "side-by-side-tiling", +    { "allow-tiling",        KEY_GENERAL_SCHEMA, -      META_PREF_SIDE_BY_SIDE_TILING, -      &side_by_side_tiling, +      META_PREF_ALLOW_TILING, +      &allow_tiling, +      FALSE, +    }, +    { "allow-top-tiling", +      KEY_GENERAL_SCHEMA, +      META_PREF_ALLOW_TOP_TILING, +      &allow_top_tiling,        FALSE,      },      { NULL, NULL, 0, NULL, FALSE }, @@ -1618,8 +1625,11 @@ meta_preference_to_string (MetaPreference pref)      case META_PREF_FORCE_FULLSCREEN:        return "FORCE_FULLSCREEN"; -    case META_PREF_SIDE_BY_SIDE_TILING: -      return "SIDE_BY_SIDE_TILING"; +    case META_PREF_ALLOW_TILING: +      return "ALLOW_TILING"; + +    case META_PREF_ALLOW_TOP_TILING: +      return "ALLOW_TOP_TILING";      case META_PREF_PLACEMENT_MODE:        return "PLACEMENT_MODE"; @@ -2288,9 +2298,15 @@ meta_prefs_get_center_new_windows (void)  }  gboolean -meta_prefs_get_side_by_side_tiling () +meta_prefs_get_allow_tiling () +{ +  return allow_tiling; +} + +gboolean +meta_prefs_get_allow_top_tiling ()  { -  return side_by_side_tiling; +  return allow_top_tiling;  }  guint diff --git a/src/core/window.c b/src/core/window.c index bdc9a712..530bc407 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -7033,7 +7033,7 @@ update_move (MetaWindow  *window,        window->tile_mode = META_TILE_NONE;        window->tile_monitor_number = -1;      } -  else if (meta_prefs_get_side_by_side_tiling () && +  else if (meta_prefs_get_allow_tiling () &&             !META_WINDOW_MAXIMIZED (window) &&             !META_WINDOW_TILED (window))      { @@ -7061,16 +7061,16 @@ update_move (MetaWindow  *window,        /* Check if the cursor is in a position which triggers tiling         * and set tile_mode accordingly.         */ -      MetaTileMode tile_mode = window->tile_mode; +      MetaTileMode old_tile_mode = window->tile_mode;        window->tile_mode = calculate_tiling_mode(x, y, window, monitor,                                                  work_area, shake_threshold); - - +       +              if (window->tile_mode != META_TILE_NONE)          window->tile_monitor_number = monitor->number;        /* Reset resized flag when changing tile mode */ -      if (tile_mode != window->tile_mode) +      if (old_tile_mode != window->tile_mode)          window->tile_resized = FALSE;      }   @@ -7265,7 +7265,8 @@ static MetaTileMode calculate_tiling_mode(int x,          return META_TILE_RIGHT;       }    else if (meta_window_can_tile_maximized (window) && -           y >= monitor->rect.y && y <= work_area.y) +           y >= monitor->rect.y && y <= work_area.y && +           meta_prefs_get_allow_top_tiling ())      return META_TILE_MAXIMIZED;     else      return META_TILE_NONE; diff --git a/src/include/prefs.h b/src/include/prefs.h index 76ee8958..2baf24bd 100644 --- a/src/include/prefs.h +++ b/src/include/prefs.h @@ -64,7 +64,8 @@ typedef enum    META_PREF_RESIZE_WITH_RIGHT_BUTTON,    META_PREF_SHOW_TAB_BORDER,    META_PREF_CENTER_NEW_WINDOWS, -  META_PREF_SIDE_BY_SIDE_TILING, +  META_PREF_ALLOW_TILING, +  META_PREF_ALLOW_TOP_TILING,    META_PREF_FORCE_FULLSCREEN,    META_PREF_PLACEMENT_MODE,    META_PREF_SHOW_DESKTOP_SKIP_LIST @@ -98,8 +99,9 @@ int                         meta_prefs_get_auto_raise_delay   (void);  MetaWrapStyle               meta_prefs_get_wrap_style         (void);  gboolean                    meta_prefs_get_reduced_resources  (void);  gboolean                    meta_prefs_get_mate_accessibility (void); -gboolean                    meta_prefs_get_mate_animations   (void); -gboolean                    meta_prefs_get_side_by_side_tiling (void); +gboolean                    meta_prefs_get_mate_animations    (void); +gboolean                    meta_prefs_get_allow_tiling       (void); +gboolean                    meta_prefs_get_allow_top_tiling   (void);  const char*                 meta_prefs_get_command            (int i); diff --git a/src/org.mate.marco.gschema.xml b/src/org.mate.marco.gschema.xml index 4d76700e..cdfaa520 100644 --- a/src/org.mate.marco.gschema.xml +++ b/src/org.mate.marco.gschema.xml @@ -176,10 +176,15 @@        <summary>Determines if new windows are created on the center of the screen</summary>        <description>If set to true, new windows are opened in the center of the screen. Otherwise, they are opened at the top left of the screen.</description>      </key> -    <key name="side-by-side-tiling" type="b"> +    <key name="allow-tiling" type="b">        <default>true</default> -      <summary>Whether to enable side-by-side tiling</summary> -      <description>If enabled, dropping windows on screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Drag-dropping to the top maximizes the window.</description> +      <summary>Whether to enable window tiling</summary> +      <description>If enabled, dropping windows on screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Drag-dropping to the top maximizes the windowif allow-top-tiling is enabled.</description> +    </key> +    <key name="allow-top-tiling" type="b"> +      <default>true</default> +      <summary>Wether to maximize the window when dragged to the top of the screen</summary> +      <description>If enabled, drag-dropping a window to the top of the screen will maximize it. Only works when allow-tiling is enabled.</description>      </key>      <key name="placement-mode" enum="org.mate.Marco.placement_type">        <default>'automatic'</default> | 
