[Xfce4-commits] [apps/xfce4-terminal] 01/01: Show warning and disable Opacity control in Preferences if WM does not support compositing

noreply at xfce.org noreply at xfce.org
Tue Sep 13 15:46:57 CEST 2016


This is an automated email from the git hooks/post-receive script.

f2404 pushed a commit to branch master
in repository apps/xfce4-terminal.

commit 8e044c22272e7740f6c42bbe155df0fed123dbe5
Author: Igor <f2404 at yandex.ru>
Date:   Tue Sep 13 16:46:51 2016 +0300

    Show warning and disable Opacity control in Preferences if WM does not support compositing
---
 terminal/terminal-preferences-dialog.c |  24 ++++-
 terminal/terminal-preferences.glade    | 163 +++++++++++++++++++--------------
 2 files changed, 118 insertions(+), 69 deletions(-)

diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
index de359cc..b6248d8 100644
--- a/terminal/terminal-preferences-dialog.c
+++ b/terminal/terminal-preferences-dialog.c
@@ -820,13 +820,15 @@ static void
 terminal_preferences_dialog_background_mode (GtkWidget                 *combobox,
                                              TerminalPreferencesDialog *dialog)
 {
-  GObject *object;
-  gint     active;
+  GObject  *object;
+  gint      active;
+  gboolean  composited;
 
   terminal_return_if_fail (TERMINAL_IS_PREFERENCES_DIALOG (dialog));
   terminal_return_if_fail (GTK_IS_COMBO_BOX (combobox));
 
   active = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox));
+  composited = gdk_screen_is_composited (gtk_widget_get_screen (combobox));
 
   object = gtk_builder_get_object (GTK_BUILDER (dialog), "box-file");
   terminal_return_if_fail (G_IS_OBJECT (object));
@@ -835,6 +837,11 @@ terminal_preferences_dialog_background_mode (GtkWidget                 *combobox
   object = gtk_builder_get_object (GTK_BUILDER (dialog), "box-opacity");
   terminal_return_if_fail (G_IS_OBJECT (object));
   g_object_set (G_OBJECT (object), "visible", active > 0, NULL);
+  g_object_set (G_OBJECT (object), "sensitive", active > 0 && composited, NULL);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "label-opacity-not-available");
+  terminal_return_if_fail (G_IS_OBJECT (object));
+  g_object_set (G_OBJECT (object), "visible", active > 0 && !composited, NULL);
 }
 
 
@@ -939,6 +946,7 @@ terminal_preferences_dialog_new (gboolean show_drop_down)
   GObject    *dialog;
   GObject    *object;
   GObject    *notebook;
+  gboolean    composited;
 
   builder = g_object_new (TERMINAL_TYPE_PREFERENCES_DIALOG, NULL);
 
@@ -953,6 +961,18 @@ terminal_preferences_dialog_new (gboolean show_drop_down)
       terminal_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
       gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook),
           gtk_notebook_page_num (GTK_NOTEBOOK (notebook), GTK_WIDGET (object)));
+
+      /* show warning and disable control if WM does not support compositing */
+      composited = gdk_screen_is_composited (gtk_widget_get_screen (GTK_WIDGET (object)));
+      if (!composited)
+        {
+          object = gtk_builder_get_object (builder, "dropdown-opacity-not-available");
+          terminal_return_if_fail (G_IS_OBJECT (object));
+          gtk_widget_set_visible (GTK_WIDGET (object), TRUE);
+          object = gtk_builder_get_object (builder, "scale-opacity");
+          terminal_return_if_fail (G_IS_OBJECT (object));
+          gtk_widget_set_sensitive (GTK_WIDGET (object), FALSE);
+        }
     }
 
   dialog = gtk_builder_get_object (builder, "dialog");
diff --git a/terminal/terminal-preferences.glade b/terminal/terminal-preferences.glade
index d18b881..212df57 100644
--- a/terminal/terminal-preferences.glade
+++ b/terminal/terminal-preferences.glade
@@ -884,92 +884,86 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label40">
+                              <object class="GtkScale" id="scale-width">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">_Opacity:</property>
-                                <property name="use_underline">True</property>
-                                <property name="mnemonic_widget">scale-opacity</property>
+                                <property name="can_focus">True</property>
+                                <property name="hexpand">True</property>
+                                <property name="adjustment">dropdown-width</property>
+                                <property name="round_digits">0</property>
+                                <property name="digits">0</property>
+                                <property name="value_pos">right</property>
                               </object>
                               <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">2</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label41">
+                              <object class="GtkScale" id="scale-height">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">D_uration:</property>
-                                <property name="use_underline">True</property>
-                                <property name="mnemonic_widget">scale-duration</property>
+                                <property name="can_focus">True</property>
+                                <property name="hexpand">True</property>
+                                <property name="adjustment">dropdown-height</property>
+                                <property name="round_digits">0</property>
+                                <property name="digits">0</property>
+                                <property name="value_pos">right</property>
                               </object>
                               <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">3</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkCheckButton" id="dropdown-always-show-tabs">
-                                <property name="label" translatable="yes">_Always show tabs</property>
+                              <object class="GtkLabel" id="label43">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
+                                <property name="can_focus">False</property>
                                 <property name="halign">start</property>
-                                <property name="use_underline">True</property>
-                                <property name="draw_indicator">True</property>
+                                <property name="label">%</property>
                               </object>
                               <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">3</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkScale" id="scale-width">
+                              <object class="GtkLabel" id="label44">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="hexpand">True</property>
-                                <property name="adjustment">dropdown-width</property>
-                                <property name="round_digits">0</property>
-                                <property name="digits">0</property>
-                                <property name="value_pos">right</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label">%</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">0</property>
+                                <property name="left_attach">2</property>
+                                <property name="top_attach">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkScale" id="scale-height">
+                              <object class="GtkCheckButton" id="dropdown-always-show-tabs">
+                                <property name="label" translatable="yes">_Always show tabs</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="hexpand">True</property>
-                                <property name="adjustment">dropdown-height</property>
-                                <property name="round_digits">0</property>
-                                <property name="digits">0</property>
-                                <property name="value_pos">right</property>
+                                <property name="receives_default">False</property>
+                                <property name="halign">start</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">5</property>
+                                <property name="width">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkScale" id="scale-opacity">
+                              <object class="GtkLabel" id="label41">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="hexpand">True</property>
-                                <property name="adjustment">dropdown-opacity</property>
-                                <property name="round_digits">0</property>
-                                <property name="digits">0</property>
-                                <property name="value_pos">right</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label" translatable="yes">D_uration:</property>
+                                <property name="use_underline">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
@@ -984,31 +978,47 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="top_attach">3</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label43">
+                              <object class="GtkLabel" id="label42">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="halign">start</property>
-                                <property name="label">%</property>
+                                <property name="label" translatable="yes">ms</property>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="top_attach">0</property>
+                                <property name="top_attach">4</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label44">
+                              <object class="GtkLabel" id="label40">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="halign">start</property>
-                                <property name="label">%</property>
+                                <property name="label" translatable="yes">_Opacity:</property>
+                                <property name="use_underline">True</property>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">1</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkScale" id="scale-opacity">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="hexpand">True</property>
+                                <property name="adjustment">dropdown-opacity</property>
+                                <property name="round_digits">0</property>
+                                <property name="digits">0</property>
+                                <property name="value_pos">right</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
@@ -1020,19 +1030,22 @@
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
-                                <property name="top_attach">2</property>
+                                <property name="top_attach">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="label42">
-                                <property name="visible">True</property>
+                              <object class="GtkLabel" id="dropdown-opacity-not-available">
                                 <property name="can_focus">False</property>
-                                <property name="halign">start</property>
-                                <property name="label" translatable="yes">ms</property>
+                                <property name="label" translatable="yes">Sorry, your Window Manager does not support compositing:
+Opacity setting is not available.</property>
+                                <attributes>
+                                  <attribute name="foreground" value="#efef29292929"/>
+                                </attributes>
                               </object>
                               <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">3</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                                <property name="width">3</property>
                               </packing>
                             </child>
                           </object>
@@ -1373,6 +1386,21 @@
                               </packing>
                             </child>
                             <child>
+                              <object class="GtkLabel" id="label-opacity-not-available">
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Sorry, your Window Manager does not support compositing:
+Opacity setting is not available.</property>
+                                <attributes>
+                                  <attribute name="foreground" value="#efef29292929"/>
+                                </attributes>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
                               <object class="GtkBox" id="box-opacity">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
@@ -1396,6 +1424,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="adjustment">background-darkness</property>
+                                    <property name="round_digits">2</property>
                                     <property name="digits">2</property>
                                     <property name="value_pos">right</property>
                                   </object>
@@ -1409,7 +1438,7 @@
                               <packing>
                                 <property name="expand">True</property>
                                 <property name="fill">True</property>
-                                <property name="position">2</property>
+                                <property name="position">3</property>
                               </packing>
                             </child>
                           </object>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list