summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorIllia Danko <[email protected]>2016-10-07 23:58:41 +0300
committerraveit65 <[email protected]>2016-12-05 07:28:31 +0100
commit9a4b1e0bb71cd991cd1d86d4fb432377ba4f4eab (patch)
tree09d1d1858d2fc197c3e662952d945b6f521c7942 /src/core
parentd2a4748d7df1c160eb4d7e15d898c2ae4219e88f (diff)
downloadmarco-9a4b1e0bb71cd991cd1d86d4fb432377ba4f4eab.tar.bz2
marco-9a4b1e0bb71cd991cd1d86d4fb432377ba4f4eab.tar.xz
Added functionality to disable display preselected tab window border
Diffstat (limited to 'src/core')
-rw-r--r--src/core/prefs.c16
-rw-r--r--src/core/screen.c74
2 files changed, 57 insertions, 33 deletions
diff --git a/src/core/prefs.c b/src/core/prefs.c
index 2f3e9392..8dd1008a 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -117,6 +117,7 @@ static gboolean force_compositor_manager = FALSE;
static gboolean compositing_manager = FALSE;
static gboolean compositing_fast_alt_tab = FALSE;
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;
@@ -407,6 +408,12 @@ static MetaBoolPreference preferences_bool[] =
&resize_with_right_button,
FALSE,
},
+ { "show-tab-border",
+ KEY_GENERAL_SCHEMA,
+ META_PREF_SHOW_TAB_BORDER,
+ &show_tab_border,
+ FALSE,
+ },
{ "center-new-windows",
KEY_GENERAL_SCHEMA,
META_PREF_CENTER_NEW_WINDOWS,
@@ -1558,6 +1565,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_RESIZE_WITH_RIGHT_BUTTON:
return "RESIZE_WITH_RIGHT_BUTTON";
+ case META_PREF_SHOW_TAB_BORDER:
+ return "SHOW_TAB_BORDER";
+
case META_PREF_FORCE_FULLSCREEN:
return "FORCE_FULLSCREEN";
@@ -2246,6 +2256,12 @@ meta_prefs_get_mouse_button_menu (void)
}
gboolean
+meta_prefs_show_tab_border(void)
+{
+ return show_tab_border;
+}
+
+gboolean
meta_prefs_get_force_fullscreen (void)
{
return force_fullscreen;
diff --git a/src/core/screen.c b/src/core/screen.c
index 3c1caf61..34016d51 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -1273,6 +1273,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
GList *tmp;
int len;
int i;
+ gint border;
if (screen->tab_popup)
return;
@@ -1289,6 +1290,8 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
entries[len].title = NULL;
entries[len].icon = NULL;
+ border = meta_prefs_show_tab_border() ? BORDER_OUTLINE_TAB |
+ BORDER_OUTLINE_WINDOW : BORDER_OUTLINE_TAB;
i = 0;
tmp = tab_list;
while (i < len)
@@ -1353,38 +1356,43 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
* sides. On the top it should be the size of the south frame
* edge.
*/
-#define OUTLINE_WIDTH 5
- /* Top side */
- if (!entries[i].hidden &&
- window->frame && window->frame->bottom_height > 0 &&
- window->frame->child_y >= window->frame->bottom_height)
- entries[i].inner_rect.y = window->frame->bottom_height;
- else
- entries[i].inner_rect.y = OUTLINE_WIDTH;
-
- /* Bottom side */
- if (!entries[i].hidden &&
- window->frame && window->frame->bottom_height != 0)
- entries[i].inner_rect.height = r.height
- - entries[i].inner_rect.y - window->frame->bottom_height;
- else
- entries[i].inner_rect.height = r.height
- - entries[i].inner_rect.y - OUTLINE_WIDTH;
-
- /* Left side */
- if (!entries[i].hidden && window->frame && window->frame->child_x != 0)
- entries[i].inner_rect.x = window->frame->child_x;
- else
- entries[i].inner_rect.x = OUTLINE_WIDTH;
+ if (border & BORDER_OUTLINE_WINDOW)
+ {
+ const gint border_outline_width = 5;
+
+ /* Top side */
+ if (!entries[i].hidden &&
+ window->frame && window->frame->bottom_height > 0 &&
+ window->frame->child_y >= window->frame->bottom_height)
+ entries[i].inner_rect.y = window->frame->bottom_height;
+ else
+ entries[i].inner_rect.y = border_outline_width;
+
+ /* Bottom side */
+ if (!entries[i].hidden &&
+ window->frame && window->frame->bottom_height != 0)
+ entries[i].inner_rect.height = r.height
+ - entries[i].inner_rect.y - window->frame->bottom_height;
+ else
+ entries[i].inner_rect.height = r.height
+ - entries[i].inner_rect.y - border_outline_width;
+
+ /* Left side */
+ if (!entries[i].hidden && window->frame && window->frame->child_x != 0)
+ entries[i].inner_rect.x = window->frame->child_x;
+ else
+ entries[i].inner_rect.x = border_outline_width;
+
+ /* Right side */
+ if (!entries[i].hidden &&
+ window->frame && window->frame->right_width != 0)
+ entries[i].inner_rect.width = r.width
+ - entries[i].inner_rect.x - window->frame->right_width;
+ else
+ entries[i].inner_rect.width = r.width
+ - entries[i].inner_rect.x - border_outline_width;
+ }
- /* Right side */
- if (!entries[i].hidden &&
- window->frame && window->frame->right_width != 0)
- entries[i].inner_rect.width = r.width
- - entries[i].inner_rect.x - window->frame->right_width;
- else
- entries[i].inner_rect.width = r.width
- - entries[i].inner_rect.x - OUTLINE_WIDTH;
++i;
tmp = tmp->next;
@@ -1394,7 +1402,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
screen->number,
len,
5, /* FIXME */
- TRUE);
+ border);
for (i = 0; i < len; i++)
g_object_unref (entries[i].icon);
@@ -1466,7 +1474,7 @@ meta_screen_ensure_workspace_popup (MetaScreen *screen)
screen->number,
len,
layout.cols,
- FALSE);
+ BORDER_OUTLINE_WORKSPACE);
g_free (entries);
meta_screen_free_workspace_layout (&layout);