[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