summaryrefslogtreecommitdiff
path: root/mozilla-gtk3-tab-size.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-gtk3-tab-size.patch')
-rw-r--r--mozilla-gtk3-tab-size.patch258
1 files changed, 0 insertions, 258 deletions
diff --git a/mozilla-gtk3-tab-size.patch b/mozilla-gtk3-tab-size.patch
deleted file mode 100644
index 9a92384..0000000
--- a/mozilla-gtk3-tab-size.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-diff -up src/widget/gtk/gtk3drawing.c.gtk3-tab-size src/widget/gtk/gtk3drawing.c
---- src/widget/gtk/gtk3drawing.c.gtk3-tab-size 2014-05-22 11:59:23.000000000 +0200
-+++ src/widget/gtk/gtk3drawing.c 2014-06-03 14:41:06.740369999 +0200
-@@ -2063,22 +2063,35 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
- * tab appear physically attached to the tabpanel; see details below. */
-
- GtkStyleContext* style;
-+ GdkRectangle tabRect;
- GdkRectangle focusRect;
- GdkRectangle backRect;
-+ int initial_gap = 0;
-
- ensure_tab_widget();
- gtk_widget_set_direction(gTabWidget, direction);
-
- style = gtk_widget_get_style_context(gTabWidget);
-- backRect = focusRect = *rect;
--
- gtk_style_context_save(style);
-
-+ tabRect = *rect;
-+
-+ if (flags & MOZ_GTK_TAB_FIRST) {
-+ gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
-+ tabRect.width -= initial_gap;
-+
-+ if (direction != GTK_TEXT_DIR_RTL) {
-+ tabRect.x += initial_gap;
-+ }
-+ }
-+
-+ focusRect = backRect = tabRect;
-+
- if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
- /* Only draw the tab */
- gtk_style_context_set_state(style, GTK_STATE_FLAG_NORMAL);
- gtk_render_extension(style, cr,
-- rect->x, rect->y, rect->width, rect->height,
-+ tabRect.x, tabRect.y, tabRect.width, tabRect.height,
- (flags & MOZ_GTK_TAB_BOTTOM) ?
- GTK_POS_TOP : GTK_POS_BOTTOM );
- } else {
-@@ -2132,15 +2145,17 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
- gap_loffset = gap_roffset = 20; /* should be enough */
- if (flags & MOZ_GTK_TAB_FIRST) {
- if (direction == GTK_TEXT_DIR_RTL)
-- gap_roffset = 0;
-+ gap_roffset = initial_gap;
- else
-- gap_loffset = 0;
-+ gap_loffset = initial_gap;
- }
-
-- gtk_style_context_set_state(style, GTK_STATE_FLAG_ACTIVE);
--
- /* Adwaita theme engine crashes without it (rhbz#713764) */
-- gtk_style_context_add_region(style, GTK_STYLE_REGION_TAB, 0);
-+ gtk_style_context_add_region(style, GTK_STYLE_REGION_TAB,
-+ (flags & MOZ_GTK_TAB_FIRST) ?
-+ GTK_REGION_FIRST : 0);
-+
-+ gtk_style_context_set_state(style, GTK_STATE_FLAG_ACTIVE);
-
- if (flags & MOZ_GTK_TAB_BOTTOM) {
- /* Draw the tab on bottom */
-@@ -2148,8 +2163,8 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
- focusRect.height -= gap_voffset;
-
- gtk_render_extension(style, cr,
-- rect->x, rect->y + gap_voffset, rect->width,
-- rect->height - gap_voffset, GTK_POS_TOP);
-+ tabRect.x, tabRect.y + gap_voffset, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_TOP);
-
- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-
-@@ -2165,38 +2180,39 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
- cairo_clip(cr);
-
- gtk_render_frame_gap(style, cr,
-- rect->x - gap_loffset,
-- rect->y + gap_voffset - 3 * gap_height,
-- rect->width + gap_loffset + gap_roffset,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + gap_voffset - 3 * gap_height,
-+ tabRect.width + gap_loffset + gap_roffset,
- 3 * gap_height, GTK_POS_BOTTOM,
-- gap_loffset, gap_loffset + rect->width);
-+ gap_loffset, gap_loffset + tabRect.width);
- cairo_restore(cr);
- } else {
- /* Draw the tab on top */
- focusRect.height -= gap_voffset;
- gtk_render_extension(style, cr,
-- rect->x, rect->y, rect->width,
-- rect->height - gap_voffset, GTK_POS_BOTTOM);
-+ tabRect.x, tabRect.y, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_BOTTOM);
-
- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-
-- backRect.y += (rect->height - gap_voffset);
-+ backRect.y += (tabRect.height - gap_voffset);
- backRect.height = gap_height;
-
- /* Draw the gap; erase with background color before painting in
- * case theme does not */
- gtk_render_background(style, cr, backRect.x, backRect.y,
- backRect.width, backRect.height);
-+
- cairo_save(cr);
- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
- cairo_clip(cr);
-
- gtk_render_frame_gap(style, cr,
-- rect->x - gap_loffset,
-- rect->y + rect->height - gap_voffset,
-- rect->width + gap_loffset + gap_roffset,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + tabRect.height - gap_voffset,
-+ tabRect.width + gap_loffset + gap_roffset,
- 3 * gap_height, GTK_POS_TOP,
-- gap_loffset, gap_loffset + rect->width);
-+ gap_loffset, gap_loffset + tabRect.width);
- cairo_restore(cr);
- }
- }
-@@ -2825,10 +2841,6 @@ moz_gtk_get_widget_border(GtkThemeWidget
- left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
-- case MOZ_GTK_TAB:
-- ensure_tab_widget();
-- w = gTabWidget;
-- break;
- /* These widgets have no borders, since they are not containers. */
- case MOZ_GTK_SPLITTER_HORIZONTAL:
- case MOZ_GTK_SPLITTER_VERTICAL:
-@@ -2871,6 +2883,58 @@ moz_gtk_get_widget_border(GtkThemeWidget
- return MOZ_GTK_SUCCESS;
- }
-
-+gint
-+moz_gtk_get_tab_border(GtkThemeWidgetType widget, gint* left, gint* top,
-+ gint* right, gint* bottom, GtkTextDirection direction,
-+ GtkTabFlags flags)
-+{
-+ GtkStyleContext* style;
-+ int tab_curvature;
-+
-+ ensure_tab_widget();
-+
-+ style = gtk_widget_get_style_context(gTabWidget);
-+ gtk_style_context_save(style);
-+
-+ gtk_style_context_set_state(style, ((flags & MOZ_GTK_TAB_SELECTED) == 0) ?
-+ GTK_STATE_FLAG_NORMAL :
-+ GTK_STATE_FLAG_ACTIVE);
-+ gtk_style_context_add_region(style, GTK_STYLE_REGION_TAB,
-+ (flags & MOZ_GTK_TAB_FIRST) ?
-+ GTK_REGION_FIRST : 0);
-+ gtk_style_context_add_class(style, (flags & MOZ_GTK_TAB_BOTTOM) ?
-+ GTK_STYLE_CLASS_BOTTOM :
-+ GTK_STYLE_CLASS_TOP);
-+
-+ *left = *top = *right = *bottom = 0;
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
-+
-+ gtk_widget_style_get (gTabWidget, "tab-curvature", &tab_curvature, NULL);
-+ *left += tab_curvature;
-+ *right += tab_curvature;
-+
-+ if (flags & MOZ_GTK_TAB_FIRST) {
-+ int initial_gap;
-+ gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
-+ if (direction == GTK_TEXT_DIR_RTL)
-+ *right += initial_gap;
-+ else
-+ *left += initial_gap;
-+ }
-+
-+ // Top tabs have no bottom border, bottom tabs have no top border
-+ if (flags & MOZ_GTK_TAB_BOTTOM) {
-+ *top = 0;
-+ } else {
-+ *bottom = 0;
-+ }
-+
-+ gtk_style_context_restore(style);
-+
-+ return MOZ_GTK_SUCCESS;
-+}
-+
- gint
- moz_gtk_get_combo_box_entry_button_size(gint* width, gint* height)
- {
-diff -up src/widget/gtk/gtkdrawing.h.gtk3-tab-size src/widget/gtk/gtkdrawing.h
---- src/widget/gtk/gtkdrawing.h.gtk3-tab-size 2014-04-22 17:06:04.000000000 +0200
-+++ src/widget/gtk/gtkdrawing.h 2014-06-03 14:39:09.240424957 +0200
-@@ -258,6 +258,13 @@ gint moz_gtk_get_widget_border(GtkThemeW
- gint* right, gint* bottom, GtkTextDirection direction,
- gboolean inhtml);
-
-+#if (MOZ_WIDGET_GTK == 3)
-+gint
-+moz_gtk_get_tab_border(GtkThemeWidgetType widget, gint* left, gint* top,
-+ gint* right, gint* bottom, GtkTextDirection direction,
-+ GtkTabFlags flags);
-+#endif
-+
- /**
- * Get the desired size of a GtkCheckButton
- * indicator_size: [OUT] the indicator size
-diff -up src/widget/gtk/nsNativeThemeGTK.cpp.gtk3-tab-size src/widget/gtk/nsNativeThemeGTK.cpp
---- src/widget/gtk/nsNativeThemeGTK.cpp.gtk3-tab-size 2014-05-21 13:29:44.000000000 +0200
-+++ src/widget/gtk/nsNativeThemeGTK.cpp 2014-06-03 14:39:09.240424957 +0200
-@@ -915,15 +915,31 @@ nsNativeThemeGTK::GetWidgetBorder(nsDevi
- // but don't reserve any space for it.
- break;
- case NS_THEME_TAB:
-- // Top tabs have no bottom border, bottom tabs have no top border
-- moz_gtk_get_widget_border(MOZ_GTK_TAB, &aResult->left, &aResult->top,
-- &aResult->right, &aResult->bottom, direction,
-- FALSE);
-- if (IsBottomTab(aFrame))
-- aResult->top = 0;
-- else
-- aResult->bottom = 0;
-- break;
-+ {
-+#if (MOZ_WIDGET_GTK == 2)
-+ // Top tabs have no bottom border, bottom tabs have no top border
-+ moz_gtk_get_widget_border(MOZ_GTK_TAB, &aResult->left, &aResult->top,
-+ &aResult->right, &aResult->bottom, direction,
-+ FALSE);
-+ if (IsBottomTab(aFrame))
-+ aResult->top = 0;
-+ else
-+ aResult->bottom = 0;
-+#else
-+ GtkWidgetState state;
-+ GtkThemeWidgetType gtkWidgetType;
-+ gint flags;
-+
-+ if (!GetGtkWidgetAndState(aWidgetType, aFrame, gtkWidgetType, &state,
-+ &flags))
-+ return NS_OK;
-+
-+ moz_gtk_get_tab_border(MOZ_GTK_TAB, &aResult->left, &aResult->top,
-+ &aResult->right, &aResult->bottom, direction,
-+ (GtkTabFlags)flags);
-+#endif
-+ }
-+ break;
- case NS_THEME_MENUITEM:
- case NS_THEME_CHECKMENUITEM:
- case NS_THEME_RADIOMENUITEM:
bgstack15