[Xfce4-commits] [xfce/xfwm4] 01/01: Added titleless maximization feature

noreply at xfce.org noreply at xfce.org
Sun Jan 11 18:08:03 CET 2015


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

olivier pushed a commit to branch master
in repository xfce/xfwm4.

commit 2c77f62868dc235657e305987932cc5caa04cd0a
Author: Viktor Semykin <thesame.ml at gmail.com>
Date:   Sun Mar 10 22:03:54 2013 +0200

    Added titleless maximization feature
    
    Bug: 9905
---
 defaults/defaults                          |    1 +
 settings-dialogs/tweaks-settings.c         |   23 +++++++++++++++++------
 settings-dialogs/xfwm4-tweaks-dialog.glade |   23 +++++++++++++++++++----
 src/client.h                               |    4 ++--
 src/settings.c                             |    8 ++++++++
 src/settings.h                             |    1 +
 6 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/defaults/defaults b/defaults/defaults
index 5f05833..e937178 100644
--- a/defaults/defaults
+++ b/defaults/defaults
@@ -60,6 +60,7 @@ title_shadow_active=false
 title_shadow_inactive=false
 title_vertical_offset_active=0
 title_vertical_offset_inactive=0
+titleless_maximize=false
 toggle_workspaces=false
 unredirect_overlays=true
 urgent_blink=false
diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c
index 385ebff..6086c5d 100644
--- a/settings-dialogs/tweaks-settings.c
+++ b/settings-dialogs/tweaks-settings.c
@@ -143,6 +143,13 @@ cb_urgent_blink_button_toggled (GtkToggleButton *toggle, GtkWidget *repeat_urgen
 }
 
 static void
+cb_borderless_maximize_button_toggled (GtkToggleButton *toggle, GtkWidget *titleless_maximize_check)
+{
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (titleless_maximize_check), FALSE);
+    gtk_widget_set_sensitive (titleless_maximize_check, gtk_toggle_button_get_active (toggle));
+}
+
+static void
 wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
 {
     GtkWidget *vbox;
@@ -175,6 +182,7 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
     GtkWidget *easy_click_combo_box = GTK_WIDGET (gtk_builder_get_object (builder, "easy_click_combo_box"));
     GtkWidget *raise_with_any_button_check = GTK_WIDGET (gtk_builder_get_object (builder, "raise_with_any_button_check"));
     GtkWidget *borderless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "borderless_maximize_check"));
+    GtkWidget *titleless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "titleless_maximize_check"));
     GtkWidget *tile_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "tile_on_move_check"));
     GtkWidget *snap_resist_check = GTK_WIDGET (gtk_builder_get_object (builder, "snap_resist_check"));
     GtkWidget *urgent_blink = GTK_WIDGET (gtk_builder_get_object (builder, "urgent_blink"));
@@ -261,13 +269,10 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
                       "toggled",
                       G_CALLBACK (cb_activate_action_none_radio_toggled),
                       xfwm4_channel);
-#if 0
-    /* OF: Actually, this is not related, so this callback is not needed */
-    g_signal_connect (G_OBJECT (prevent_focus_stealing_check),
+    g_signal_connect (G_OBJECT (borderless_maximize_check),
                       "toggled",
-                      G_CALLBACK (cb_prevent_focus_stealing_check_button_toggled),
-                      prevent_focus_stealing_box);
-#endif
+                      G_CALLBACK (cb_borderless_maximize_button_toggled),
+                      titleless_maximize_check);
     g_signal_connect (G_OBJECT (placement_center_option),
                       "toggled",
                       G_CALLBACK (cb_activate_placement_center_radio_toggled),
@@ -332,6 +337,10 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
                             G_TYPE_BOOLEAN,
                             (GObject *)borderless_maximize_check, "active");
     xfconf_g_property_bind (xfwm4_channel,
+                            "/general/titleless_maximize",
+                            G_TYPE_BOOLEAN,
+                            (GObject *)titleless_maximize_check, "active");
+    xfconf_g_property_bind (xfwm4_channel,
                             "/general/tile_on_move",
                             G_TYPE_BOOLEAN,
                             (GObject *)tile_on_move_check, "active");
@@ -353,6 +362,8 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
                             (GObject *)mousewheel_rollup, "active");
     gtk_widget_set_sensitive (repeat_urgent_blink,
                               gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (urgent_blink)));
+    gtk_widget_set_sensitive (titleless_maximize_check,
+                              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (borderless_maximize_check)));
 
     /* Workspaces tab */
     xfconf_g_property_bind (xfwm4_channel,
diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade
index b693142..7919ae0 100644
--- a/settings-dialogs/xfwm4-tweaks-dialog.glade
+++ b/settings-dialogs/xfwm4-tweaks-dialog.glade
@@ -431,6 +431,21 @@ or "skip taskbar" properties set</property>
                   </packing>
                 </child>
                 <child>
+                  <object class="GtkCheckButton" id="titleless_maximize_check">
+                    <property name="label" translatable="yes">Hide title of windows when maximized</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="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child>
                   <object class="GtkCheckButton" id="tile_on_move_check">
                     <property name="label" translatable="yes">Automatically _tile windows when moving toward the screen edge</property>
                     <property name="use_action_appearance">False</property>
@@ -443,7 +458,7 @@ or "skip taskbar" properties set</property>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="position">3</property>
+                    <property name="position">4</property>
                   </packing>
                 </child>
                 <child>
@@ -459,7 +474,7 @@ or "skip taskbar" properties set</property>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="position">4</property>
+                    <property name="position">5</property>
                   </packing>
                 </child>
                 <child>
@@ -475,7 +490,7 @@ or "skip taskbar" properties set</property>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="position">5</property>
+                    <property name="position">6</property>
                   </packing>
                 </child>
                 <child>
@@ -491,7 +506,7 @@ or "skip taskbar" properties set</property>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
-                    <property name="position">6</property>
+                    <property name="position">7</property>
                   </packing>
                 </child>
                 <child>
diff --git a/src/client.h b/src/client.h
index d64a098..711d88c 100644
--- a/src/client.h
+++ b/src/client.h
@@ -232,10 +232,10 @@
                                          !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) && \
                                          (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED) || \
                                           !FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) ||  \
-                                          !(FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR) && \
+                                          !((FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR) || \
+                                            (c->screen_info->params->titleless_maximize)) && \
                                             (c->screen_info->params->borderless_maximize))))
 
-
 typedef enum
 {
     UNSET = 0,
diff --git a/src/settings.c b/src/settings.c
index fc08648..ee0995c 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -700,6 +700,7 @@ loadSettings (ScreenInfo *screen_info)
         /* You can change the order of the following parameters */
         {"activate_action", NULL, G_TYPE_STRING, TRUE},
         {"borderless_maximize", NULL, G_TYPE_BOOLEAN, TRUE},
+        {"titleless_maximize", NULL, G_TYPE_BOOLEAN, TRUE},
         {"box_move", NULL, G_TYPE_BOOLEAN, TRUE},
         {"box_resize", NULL, G_TYPE_BOOLEAN, TRUE},
         {"button_layout", NULL, G_TYPE_STRING, TRUE},
@@ -788,6 +789,8 @@ loadSettings (ScreenInfo *screen_info)
 
     screen_info->params->borderless_maximize =
         getBoolValue ("borderless_maximize", rc);
+    screen_info->params->titleless_maximize =
+        getBoolValue ("titleless_maximize", rc);
     screen_info->params->box_resize =
         getBoolValue ("box_resize", rc);
     screen_info->params->box_move =
@@ -1308,6 +1311,11 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_
                     screen_info->params->borderless_maximize = g_value_get_boolean (value);
                     reloadScreenSettings (screen_info, UPDATE_MAXIMIZE);
                 }
+                else if (!strcmp (name, "titleless_maximize"))
+                {
+                    screen_info->params->titleless_maximize = g_value_get_boolean (value);
+                    reloadScreenSettings (screen_info, UPDATE_MAXIMIZE);
+                }
                 else if (!strcmp (name, "cycle_minimum"))
                 {
                     screen_info->params->cycle_minimum = g_value_get_boolean (value);
diff --git a/src/settings.h b/src/settings.h
index dc8edfa..0896e73 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -198,6 +198,7 @@ struct _XfwmParams
     int title_shadow[2];
     int wrap_resistance;
     gboolean borderless_maximize;
+    gboolean titleless_maximize;
     gboolean box_move;
     gboolean box_resize;
     gboolean click_to_focus;

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


More information about the Xfce4-commits mailing list