Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 392732 Details for
Bug 534060
x11-terms/gnome-terminal-3.14.2: Add Fedora's patch to restore background transparency
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Restores background transparency in gnome-terminal-3.14.2
restore-background-transparency.patch (text/plain), 13.90 KB, created by
Chandler Paul
on 2014-12-31 04:07:36 UTC
(
hide
)
Description:
Restores background transparency in gnome-terminal-3.14.2
Filename:
MIME Type:
Creator:
Chandler Paul
Created:
2014-12-31 04:07:36 UTC
Size:
13.90 KB
patch
obsolete
>diff -urN gnome-terminal-3.14.1/src/org.gnome.Terminal.gschema.xml gnome-terminal-3.14.1-patched/src/org.gnome.Terminal.gschema.xml >--- gnome-terminal-3.14.1/src/org.gnome.Terminal.gschema.xml 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/org.gnome.Terminal.gschema.xml 2014-10-22 00:45:03.942387959 -0400 >@@ -318,6 +318,16 @@ > <default>'narrow'</default> > <summary>Whether ambiguous-width characters are narrow or wide when using UTF-8 encoding</summary> > </key> >+ <key name="use-transparent-background" type="b"> >+ <default>false</default> >+ <summary>Whether to use a transparent background</summary> >+ </key> >+ <key name="background-transparency-percent" type="i"> >+ <default>50</default> >+ <range min="0" max="100"/> >+ <summary>Adjust the amount of transparency</summary> >+ <description>A value between 0 and 100, where 0 is opaque and 100 is fully transparent.</description> >+ </key> > </schema> > > <!-- Keybinding settings --> >diff -urN gnome-terminal-3.14.1/src/profile-editor.c gnome-terminal-3.14.1-patched/src/profile-editor.c >--- gnome-terminal-3.14.1/src/profile-editor.c 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/profile-editor.c 2014-10-22 00:45:03.952387960 -0400 >@@ -1099,7 +1099,18 @@ > "active-id", > G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); > >+ g_settings_bind (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND, >+ gtk_builder_get_object (builder, "use-transparent-background"), >+ "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); >+ g_settings_bind (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND, >+ gtk_builder_get_object (builder, "background-transparent-scale-box"), >+ "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY); >+ g_settings_bind (profile, TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT, >+ gtk_builder_get_object (builder, "background-transparent-adjustment"), >+ "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); >+ > /* Finished! */ >+ > terminal_util_bind_mnemonic_label_sensitivity (editor); > > terminal_util_dialog_focus_widget (editor, widget_name); >diff -urN gnome-terminal-3.14.1/src/profile-preferences.ui gnome-terminal-3.14.1-patched/src/profile-preferences.ui >--- gnome-terminal-3.14.1/src/profile-preferences.ui 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/profile-preferences.ui 2014-10-22 00:45:03.959387960 -0400 >@@ -23,6 +23,11 @@ > <property name="step_increment">1</property> > <property name="page_increment">100</property> > </object> >+ <object class="GtkAdjustment" id="background-transparent-adjustment"> >+ <property name="upper">100</property> >+ <property name="step_increment">1</property> >+ <property name="page_increment">10</property> >+ </object> > <object class="GtkListStore" id="model1"> > <columns> > <!-- column-name gchararray --> >@@ -1073,6 +1078,93 @@ > <property name="position">1</property> > </packing> > </child> >+ <child> >+ <object class="GtkBox" id="use-transparent-background-box"> >+ <property name="visible">True</property> >+ <property name="can_focus">False</property> >+ <property name="orientation">horizontal</property> >+ <property name="spacing">12</property> >+ <child> >+ <object class="GtkCheckButton" id="use-transparent-background"> >+ <property name="label" translatable="yes">Use t_ransparent background</property> >+ <property name="visible">True</property> >+ <property name="can_focus">True</property> >+ <property name="receives_default">False</property> >+ <property name="use_underline">True</property> >+ <property name="xalign">0</property> >+ <property name="draw_indicator">True</property> >+ </object> >+ <packing> >+ <property name="expand">False</property> >+ <property name="fill">False</property> >+ <property name="position">0</property> >+ </packing> >+ </child> >+ <child> >+ <object class="GtkBox" id="background-transparent-scale-box"> >+ <property name="visible">True</property> >+ <property name="can_focus">False</property> >+ <property name="orientation">horizontal</property> >+ <property name="spacing">6</property> >+ <child> >+ <object class="GtkLabel" id="background-transparent-min-label"> >+ <property name="visible">True</property> >+ <property name="can_focus">False</property> >+ <property name="xalign">0.5</property> >+ <property name="label" translatable="yes">none</property> >+ <style> >+ <class name="dim-label"/> >+ </style> >+ </object> >+ <packing> >+ <property name="expand">False</property> >+ <property name="fill">False</property> >+ <property name="position">0</property> >+ </packing> >+ </child> >+ <child> >+ <object class="GtkScale" id="background-transparent-scale"> >+ <property name="visible">True</property> >+ <property name="can_focus">True</property> >+ <property name="adjustment">background-transparent-adjustment</property> >+ <property name="draw_value">False</property> >+ </object> >+ <packing> >+ <property name="expand">True</property> >+ <property name="fill">True</property> >+ <property name="position">1</property> >+ </packing> >+ </child> >+ <child> >+ <object class="GtkLabel" id="background-transparent-max-label"> >+ <property name="visible">True</property> >+ <property name="can_focus">False</property> >+ <property name="xalign">0.5</property> >+ <property name="label" translatable="yes">full</property> >+ <style> >+ <class name="dim-label"/> >+ </style> >+ </object> >+ <packing> >+ <property name="expand">False</property> >+ <property name="fill">False</property> >+ <property name="position">2</property> >+ </packing> >+ </child> >+ </object> >+ <packing> >+ <property name="expand">True</property> >+ <property name="fill">True</property> >+ <property name="position">1</property> >+ </packing> >+ </child> >+ </object> >+ <packing> >+ <property name="expand">True</property> >+ <property name="fill">True</property> >+ <property name="position">2</property> >+ </packing> >+ </child> > </object> > </child> > </object> >diff -urN gnome-terminal-3.14.1/src/terminal-schemas.h gnome-terminal-3.14.1-patched/src/terminal-schemas.h >--- gnome-terminal-3.14.1/src/terminal-schemas.h 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/terminal-schemas.h 2014-10-22 00:45:03.966387960 -0400 >@@ -63,6 +63,9 @@ > #define TERMINAL_PROFILE_USE_THEME_COLORS_KEY "use-theme-colors" > #define TERMINAL_PROFILE_VISIBLE_NAME_KEY "visible-name" > >+#define TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND "use-transparent-background" >+#define TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT "background-transparency-percent" >+ > #define TERMINAL_SETTING_CONFIRM_CLOSE_KEY "confirm-close" > #define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY "default-show-menubar" > #define TERMINAL_SETTING_DARK_THEME_KEY "dark-theme" >diff -urN gnome-terminal-3.14.1/src/terminal-screen.c gnome-terminal-3.14.1-patched/src/terminal-screen.c >--- gnome-terminal-3.14.1/src/terminal-screen.c 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/terminal-screen.c 2014-10-22 00:45:03.976387961 -0400 >@@ -750,7 +750,9 @@ > prop_name == I_(TERMINAL_PROFILE_BACKGROUND_COLOR_KEY) || > prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY) || > prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR_KEY) || >- prop_name == I_(TERMINAL_PROFILE_PALETTE_KEY)) >+ prop_name == I_(TERMINAL_PROFILE_PALETTE_KEY) || >+ prop_name == I_(TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND) || >+ prop_name == I_(TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT)) > update_color_scheme (screen); > > if (!prop_name || prop_name == I_(TERMINAL_PROFILE_AUDIBLE_BELL_KEY)) >@@ -809,6 +811,8 @@ > GdkRGBA fg, bg, bold, theme_fg, theme_bg; > GdkRGBA *boldp; > GtkStyleContext *context; >+ GtkWidget *toplevel; >+ gboolean transparent; > > context = gtk_widget_get_style_context (widget); > gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &theme_fg); >@@ -829,9 +833,25 @@ > boldp = NULL; > > colors = terminal_g_settings_get_rgba_palette (priv->profile, TERMINAL_PROFILE_PALETTE_KEY, &n_colors); >+ >+ transparent = g_settings_get_boolean (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND); >+ if (transparent) >+ { >+ gint transparency_percent; >+ >+ transparency_percent = g_settings_get_int (profile, TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT); >+ bg.alpha = (100 - transparency_percent) / 100.0; >+ } >+ else >+ bg.alpha = 1.0; >+ > vte_terminal_set_colors (VTE_TERMINAL (screen), &fg, &bg, > colors, n_colors); > vte_terminal_set_color_bold (VTE_TERMINAL (screen), boldp); >+ >+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen)); >+ if (toplevel != NULL && gtk_widget_is_toplevel (toplevel)) >+ gtk_widget_set_app_paintable (toplevel, transparent); > } > > static void >diff -urN gnome-terminal-3.14.1/src/terminal-window.c gnome-terminal-3.14.1-patched/src/terminal-window.c >--- gnome-terminal-3.14.1/src/terminal-window.c 2014-09-23 14:15:23.000000000 -0400 >+++ gnome-terminal-3.14.1-patched/src/terminal-window.c 2014-10-22 00:45:03.981387961 -0400 >@@ -2189,6 +2189,26 @@ > } > > static gboolean >+terminal_window_draw (GtkWidget *widget, >+ cairo_t *cr) >+{ >+ if (gtk_widget_get_app_paintable (widget)) >+ { >+ GtkStyleContext *context; >+ int width; >+ int height; >+ >+ context = gtk_widget_get_style_context (widget); >+ width = gtk_widget_get_allocated_width (widget); >+ height = gtk_widget_get_allocated_height (widget); >+ gtk_render_background (context, cr, 0, 0, width, height); >+ gtk_render_frame (context, cr, 0, 0, width, height); >+ } >+ >+ return GTK_WIDGET_CLASS (terminal_window_parent_class)->draw (widget, cr); >+} >+ >+static gboolean > terminal_window_state_event (GtkWidget *widget, > GdkEventWindowState *event) > { >@@ -2549,6 +2569,8 @@ > TerminalWindowPrivate *priv; > TerminalApp *app; > TerminalSettingsList *profiles_list; >+ GdkScreen *screen; >+ GdkVisual *visual; > GtkActionGroup *action_group; > GtkAction *action; > GtkUIManager *manager; >@@ -2564,6 +2586,11 @@ > > gtk_widget_init_template (GTK_WIDGET (window)); > >+ screen = gtk_widget_get_screen (GTK_WIDGET (window)); >+ visual = gdk_screen_get_rgba_visual (screen); >+ if (visual != NULL) >+ gtk_widget_set_visual (GTK_WIDGET (window), visual); >+ > uuid_generate (u); > uuid_unparse (u, uuidstr); > priv->uuid = g_strdup (uuidstr); >@@ -2741,6 +2768,7 @@ > > widget_class->show = terminal_window_show; > widget_class->realize = terminal_window_realize; >+ widget_class->draw = terminal_window_draw; > widget_class->window_state_event = terminal_window_state_event; > widget_class->screen_changed = terminal_window_screen_changed; > widget_class->style_updated = terminal_window_style_updated;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 534060
: 392732