summaryrefslogtreecommitdiff
path: root/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch')
-rw-r--r--pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch1456
1 files changed, 0 insertions, 1456 deletions
diff --git a/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch b/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch
deleted file mode 100644
index fa43b6b8e..000000000
--- a/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch
+++ /dev/null
@@ -1,1456 +0,0 @@
-From 999c375f5342947525813584fbdc92f3b63dced6 Mon Sep 17 00:00:00 2001
-From: Christian Hesse <eworm@leda.eworm.de>
-Date: Wed, 25 Sep 2013 15:16:57 +0200
-Subject: [PATCH 1/1] xfwm4: hide titlebar when maximized
-
----
- defaults/defaults | 1 +
- settings-dialogs/tweaks-settings.c | 5 +
- settings-dialogs/xfwm4-tweaks-dialog.glade | 25 +-
- settings-dialogs/xfwm4-tweaks-dialog_ui.h | 612 +++++++++++++++--------------
- src/client.c | 6 +
- src/client.h | 1 +
- src/display.c | 3 +-
- src/display.h | 1 +
- src/events.c | 5 +
- src/frame.c | 366 ++++++++++-------
- src/netwm.c | 38 ++
- src/placement.c | 4 +-
- src/settings.c | 8 +
- src/settings.h | 1 +
- 14 files changed, 616 insertions(+), 460 deletions(-)
-
-diff --git a/defaults/defaults b/defaults/defaults
-index 6db210a..1582fc1 100644
---- a/defaults/defaults
-+++ b/defaults/defaults
-@@ -1,5 +1,6 @@
- activate_action=bring
- borderless_maximize=true
-+titleless_maximize=false
- box_move=false
- box_resize=false
- button_layout=O|SHMC
-diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c
-index f60b606..2532733 100644
---- a/settings-dialogs/tweaks-settings.c
-+++ b/settings-dialogs/tweaks-settings.c
-@@ -180,6 +180,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 *restore_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "restore_on_move_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"));
-@@ -336,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/restore_on_move",
- G_TYPE_BOOLEAN,
- (GObject *)restore_on_move_check, "active");
-diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade
-index bd2a86f..7d604c6 100644
---- a/settings-dialogs/xfwm4-tweaks-dialog.glade
-+++ b/settings-dialogs/xfwm4-tweaks-dialog.glade
-@@ -343,6 +343,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="restore_on_move_check">
- <property name="label" translatable="yes">Restore original _size of maximized windows when moving</property>
- <property name="visible">True</property>
-@@ -354,7 +369,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>
-@@ -369,7 +384,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>
-@@ -384,7 +399,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>
-@@ -399,7 +414,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">7</property>
- </packing>
- </child>
- <child>
-@@ -414,7 +429,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">8</property>
- </packing>
- </child>
- </object>
-diff --git a/settings-dialogs/xfwm4-tweaks-dialog_ui.h b/settings-dialogs/xfwm4-tweaks-dialog_ui.h
-index a6121dd..8ddbf30 100644
---- a/settings-dialogs/xfwm4-tweaks-dialog_ui.h
-+++ b/settings-dialogs/xfwm4-tweaks-dialog_ui.h
-@@ -177,332 +177,340 @@ static const char tweaks_dialog_ui[] =
- "y><property name=\"draw_indicator\">True</property></object><packing><p"
- "roperty name=\"expand\">False</property><property name=\"fill\">False</"
- "property><property name=\"position\">2</property></packing></child><chi"
-- "ld><object class=\"GtkCheckButton\" id=\"restore_on_move_check\"><prope"
-- "rty name=\"label\" translatable=\"yes\">Restore original _size of maxim"
-- "ized windows when moving</property><property name=\"visible\">True</pro"
-- "perty><property name=\"can_focus\">True</property><property name=\"rece"
-- "ives_default\">False</property><property name=\"use_underline\">True</p"
-- "roperty><property name=\"draw_indicator\">True</property></object><pack"
-- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
-- "alse</property><property name=\"position\">3</property></packing></chil"
-- "d><child><object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><pr"
-- "operty name=\"label\" translatable=\"yes\">Automatically _tile windows "
-- "when moving toward the screen edge</property><property name=\"visible\""
-- ">True</property><property name=\"can_focus\">True</property><property n"
-- "ame=\"receives_default\">False</property><property name=\"use_underline"
-- "\">True</property><property name=\"draw_indicator\">True</property></ob"
-- "ject><packing><property name=\"expand\">False</property><property name="
-- "\"fill\">False</property><property name=\"position\">4</property></pack"
-- "ing></child><child><object class=\"GtkCheckButton\" id=\"snap_resist_ch"
-- "eck\"><property name=\"label\" translatable=\"yes\">Use _edge resistanc"
-- "e instead of window snapping</property><property name=\"visible\">True<"
-- "/property><property name=\"can_focus\">True</property><property name=\""
-- "receives_default\">False</property><property name=\"use_underline\">Tru"
-- "e</property><property name=\"draw_indicator\">True</property></object><"
-- "packing><property name=\"expand\">False</property><property name=\"fill"
-- "\">False</property><property name=\"position\">5</property></packing></"
-- "child><child><object class=\"GtkCheckButton\" id=\"urgent_blink\"><prop"
-- "erty name=\"label\" translatable=\"yes\">Notify of _urgency by making w"
-- "indow\'s decoration blink</property><property name=\"visible\">True</pr"
-+ "ld><object class=\"GtkCheckButton\" id=\"titleless_maximize_check\"><pr"
-+ "operty 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><proper"
-+ "ty name=\"draw_indicator\">True</property></object><packing><property n"
-+ "ame=\"expand\">False</property><property name=\"fill\">False</property>"
-+ "<property name=\"position\">3</property></packing></child><child><objec"
-+ "t class=\"GtkCheckButton\" id=\"restore_on_move_check\"><property name="
-+ "\"label\" translatable=\"yes\">Restore original _size of maximized wind"
-+ "ows when moving</property><property name=\"visible\">True</property><pr"
-+ "operty name=\"can_focus\">True</property><property name=\"receives_defa"
-+ "ult\">False</property><property name=\"use_underline\">True</property><"
-+ "property name=\"draw_indicator\">True</property></object><packing><prop"
-+ "erty name=\"expand\">False</property><property name=\"fill\">False</pro"
-+ "perty><property name=\"position\">4</property></packing></child><child>"
-+ "<object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><property na"
-+ "me=\"label\" translatable=\"yes\">Automatically _tile windows when movi"
-+ "ng toward the screen edge</property><property name=\"visible\">True</pr"
- "operty><property name=\"can_focus\">True</property><property name=\"rec"
- "eives_default\">False</property><property name=\"use_underline\">True</"
- "property><property name=\"draw_indicator\">True</property></object><pac"
- "king><property name=\"expand\">False</property><property name=\"fill\">"
- "False</property><property name=\"position\">5</property></packing></chi"
-- "ld><child><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><"
-- "property name=\"label\" translatable=\"yes\">Keep urgent windows _blink"
-- "ing repeatedly</property><property name=\"visible\">True</property><pro"
-+ "ld><child><object class=\"GtkCheckButton\" id=\"snap_resist_check\"><pr"
-+ "operty name=\"label\" translatable=\"yes\">Use _edge resistance instead"
-+ " of window snapping</property><property name=\"visible\">True</property"
-+ "><property name=\"can_focus\">True</property><property name=\"receives_"
-+ "default\">False</property><property name=\"use_underline\">True</proper"
-+ "ty><property name=\"draw_indicator\">True</property></object><packing><"
-+ "property name=\"expand\">False</property><property name=\"fill\">False<"
-+ "/property><property name=\"position\">6</property></packing></child><ch"
-+ "ild><object class=\"GtkCheckButton\" id=\"urgent_blink\"><property name"
-+ "=\"label\" translatable=\"yes\">Notify of _urgency by making window\'s "
-+ "decoration blink</property><property name=\"visible\">True</property><p"
-+ "roperty name=\"can_focus\">True</property><property name=\"receives_def"
-+ "ault\">False</property><property name=\"use_underline\">True</property>"
-+ "<property name=\"draw_indicator\">True</property></object><packing><pro"
-+ "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
-+ "operty><property name=\"position\">7</property></packing></child><child"
-+ "><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><property "
-+ "name=\"label\" translatable=\"yes\">Keep urgent windows _blinking repea"
-+ "tedly</property><property name=\"visible\">True</property><property nam"
-+ "e=\"can_focus\">True</property><property name=\"receives_default\">Fals"
-+ "e</property><property name=\"use_underline\">True</property><property n"
-+ "ame=\"draw_indicator\">True</property></object><packing><property name="
-+ "\"expand\">False</property><property name=\"fill\">False</property><pro"
-+ "perty name=\"position\">8</property></packing></child></object><packing"
-+ "><property name=\"position\">2</property></packing></child><child type="
-+ "\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property name=\"visib"
-+ "le\">True</property><property name=\"label\" translatable=\"yes\">_Acce"
-+ "ssibility</property><property name=\"use_underline\">True</property></o"
-+ "bject><packing><property name=\"position\">2</property><property name=\""
-+ "tab_fill\">False</property></packing></child><child><object class=\"Gtk"
-+ "VBox\" id=\"vbox5\"><property name=\"visible\">True</property><property"
-+ " name=\"border_width\">12</property><property name=\"orientation\">vert"
-+ "ical</property><property name=\"spacing\">6</property><child><object cl"
-+ "ass=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><property name=\""
-+ "label\" translatable=\"yes\">Use the _mouse wheel on the desktop to swi"
-+ "tch workspaces</property><property name=\"visible\">True</property><pro"
- "perty name=\"can_focus\">True</property><property name=\"receives_defau"
- "lt\">False</property><property name=\"use_underline\">True</property><p"
- "roperty name=\"draw_indicator\">True</property></object><packing><prope"
- "rty name=\"expand\">False</property><property name=\"fill\">False</prop"
-- "erty><property name=\"position\">6</property></packing></child></object"
-- "><packing><property name=\"position\">2</property></packing></child><ch"
-- "ild type=\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property nam"
-- "e=\"visible\">True</property><property name=\"label\" translatable=\"ye"
-- "s\">_Accessibility</property><property name=\"use_underline\">True</pro"
-- "perty></object><packing><property name=\"position\">2</property><proper"
-- "ty name=\"tab_fill\">False</property></packing></child><child><object c"
-- "lass=\"GtkVBox\" id=\"vbox5\"><property name=\"visible\">True</property"
-- "><property name=\"border_width\">12</property><property name=\"orientat"
-- "ion\">vertical</property><property name=\"spacing\">6</property><child>"
-- "<object class=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><proper"
-- "ty name=\"label\" translatable=\"yes\">Use the _mouse wheel on the desk"
-- "top to switch workspaces</property><property name=\"visible\">True</pro"
-- "perty><property name=\"can_focus\">True</property><property name=\"rece"
-- "ives_default\">False</property><property name=\"use_underline\">True</p"
-- "roperty><property name=\"draw_indicator\">True</property></object><pack"
-- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
-- "alse</property><property name=\"position\">0</property></packing></chil"
-- "d><child><object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\""
-- "><property name=\"label\" translatable=\"yes\">_Remember and recall pre"
-- "vious workspace\nwhen switching via keyboard shortcuts</property><prope"
-- "rty 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</prop"
-- "erty><property name=\"fill\">False</property><property name=\"position\""
-- ">1</property></packing></child><child><object class=\"GtkCheckButton\" "
-- "id=\"wrap_layout_check\"><property name=\"label\" translatable=\"yes\">"
-- "Wrap workspaces depending on the actual desktop _layout</property><prop"
-- "erty 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</prop"
-- "erty><property name=\"fill\">False</property><property name=\"position\""
-- ">2</property></packing></child><child><object class=\"GtkCheckButton\" "
-- "id=\"wrap_cycle_check\"><property name=\"label\" translatable=\"yes\">W"
-- "rap workspaces when the _first or the last workspace is reached</proper"
-- "ty><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_in"
-- "dicator\">True</property></object><packing><property name=\"expand\">Fa"
-- "lse</property><property name=\"fill\">False</property><property name=\""
-- "position\">3</property></packing></child></object><packing><property na"
-- "me=\"position\">3</property></packing></child><child type=\"tab\"><obje"
-- "ct class=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</pr"
-- "operty><property name=\"label\" translatable=\"yes\">_Workspaces</prope"
-- "rty><property name=\"use_underline\">True</property></object><packing><"
-- "property name=\"position\">3</property><property name=\"tab_fill\">Fals"
-- "e</property></packing></child><child><object class=\"GtkVBox\" id=\"vbo"
-- "x6\"><property name=\"visible\">True</property><property name=\"border_"
-- "width\">12</property><property name=\"orientation\">vertical</property>"
-- "<property name=\"spacing\">6</property><child><object class=\"GtkLabel\""
-- " id=\"label8\"><property name=\"visible\">True</property><property name"
-- "=\"xalign\">0</property><property name=\"label\" translatable=\"yes\">_"
-- "Minimum size of windows to trigger smart placement:</property><property"
-- " name=\"use_underline\">True</property><property name=\"mnemonic_widget"
-- "\">placement_ratio_scale</property></object><packing><property name=\"e"
-- "xpand\">False</property><property name=\"fill\">False</property><proper"
-- "ty name=\"position\">0</property></packing></child><child><object class"
-- "=\"GtkAlignment\" id=\"alignment4\"><property name=\"visible\">True</pr"
-- "operty><property name=\"bottom_padding\">6</property><property name=\"l"
-- "eft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\""
-- "><property name=\"visible\">True</property><property name=\"spacing\">1"
-- "2</property><child><object class=\"GtkLabel\" id=\"label9\"><property n"
-- "ame=\"visible\">True</property><property name=\"label\" translatable=\""
-- "yes\" comments=\"Smart placement size\">&lt;i&gt;Small&lt;/i&gt;</prope"
-- "rty><property name=\"use_markup\">True</property></object><packing><pro"
-- "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
-- "operty><property name=\"position\">0</property></packing></child><child"
-- "><object class=\"GtkHScale\" id=\"placement_ratio_scale\"><property nam"
-- "e=\"visible\">True</property><property name=\"can_focus\">True</propert"
-- "y><property name=\"adjustment\">adjustment1</property><property name=\""
-- "restrict_to_fill_level\">False</property><property name=\"draw_value\">"
-- "False</property></object><packing><property name=\"position\">1</proper"
-- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label10\"><"
-- "property name=\"visible\">True</property><property name=\"label\" trans"
-- "latable=\"yes\" comments=\"Smart placement size\">&lt;i&gt;Large&lt;/i&"
-- "gt;</property><property name=\"use_markup\">True</property></object><pa"
-- "cking><property name=\"expand\">False</property><property name=\"positi"
-- "on\">2</property></packing></child></object></child></object><packing><"
-- "property name=\"expand\">False</property><property name=\"fill\">False<"
-- "/property><property name=\"position\">1</property></packing></child><ch"
-- "ild><object class=\"GtkVBox\" id=\"default_placement_box\"><property na"
-- "me=\"visible\">True</property><property name=\"orientation\">vertical</"
-- "property><property name=\"spacing\">6</property><child><object class=\""
-- "GtkLabel\" id=\"label27\"><property name=\"visible\">True</property><pr"
-- "operty name=\"xalign\">0</property><property name=\"label\" translatabl"
-- "e=\"yes\">By default, place windows:</property></object><packing><prope"
-- "rty name=\"position\">0</property></packing></child><child><object clas"
-- "s=\"GtkAlignment\" id=\"alignment10\"><property name=\"visible\">True</"
-- "property><property name=\"bottom_padding\">6</property><property name=\""
-- "left_padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox1"
-- "8\"><property name=\"visible\">True</property><property name=\"border_w"
-- "idth\">6</property><property name=\"orientation\">vertical</property><p"
-- "roperty name=\"spacing\">6</property><child><object class=\"GtkRadioBut"
-- "ton\" id=\"placement_center_option\"><property name=\"label\" translata"
-- "ble=\"yes\">At the _center of the screen</property><property name=\"vis"
-- "ible\">True</property><property name=\"can_focus\">True</property><prop"
-- "erty name=\"receives_default\">False</property><property name=\"use_und"
-- "erline\">True</property><property name=\"draw_indicator\">True</propert"
-- "y></object><packing><property name=\"position\">0</property></packing><"
-- "/child><child><object class=\"GtkRadioButton\" id=\"placement_mouse_opt"
-- "ion\"><property name=\"label\" translatable=\"yes\">Under the mouse _po"
-- "inter</property><property name=\"visible\">True</property><property nam"
-- "e=\"can_focus\">True</property><property name=\"receives_default\">Fals"
-- "e</property><property name=\"use_underline\">True</property><property n"
-- "ame=\"active\">True</property><property name=\"draw_indicator\">True</p"
-- "roperty><property name=\"group\">placement_center_option</property></ob"
-- "ject><packing><property name=\"position\">1</property></packing></child"
-- "></object></child></object><packing><property name=\"position\">1</prop"
-- "erty></packing></child></object><packing><property name=\"expand\">Fals"
-- "e</property><property name=\"fill\">False</property><property name=\"po"
-- "sition\">2</property></packing></child></object><packing><property name"
-- "=\"position\">4</property></packing></child><child type=\"tab\"><object"
-- " class=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</prop"
-- "erty><property name=\"label\" translatable=\"yes\">_Placement</property"
-- "><property name=\"use_underline\">True</property></object><packing><pro"
-- "perty name=\"position\">4</property><property name=\"tab_fill\">False</"
-- "property></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\""
-- "><property name=\"visible\">True</property><property name=\"border_widt"
-- "h\">12</property><property name=\"orientation\">vertical</property><pro"
-- "perty name=\"spacing\">6</property><child><object class=\"GtkCheckButto"
-- "n\" id=\"use_compositing_check\"><property name=\"label\" translatable="
-- "\"yes\">_Enable display compositing</property><property name=\"visible\""
-- ">True</property><property name=\"can_focus\">True</property><property n"
-- "ame=\"receives_default\">False</property><property name=\"use_underline"
-- "\">True</property><property name=\"draw_indicator\">True</property></ob"
-- "ject><packing><property name=\"expand\">False</property><property name="
-- "\"fill\">False</property><property name=\"position\">0</property></pack"
-- "ing></child><child><object class=\"GtkScrolledWindow\" id=\"use_composi"
-- "ting_box\"><property name=\"visible\">True</property><property name=\"s"
-- "ensitive\">False</property><property name=\"can_focus\">True</property>"
-- "<property name=\"hscrollbar_policy\">never</property><property name=\"v"
-- "scrollbar_policy\">automatic</property><child><object class=\"GtkViewpo"
-- "rt\" id=\"viewport1\"><property name=\"visible\">True</property><proper"
-- "ty name=\"resize_mode\">queue</property><property name=\"shadow_type\">"
-- "none</property><child><object class=\"GtkAlignment\" id=\"alignment3\">"
-- "<property name=\"visible\">True</property><property name=\"bottom_paddi"
-- "ng\">6</property><property name=\"left_padding\">12</property><child><o"
-- "bject class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</p"
-- "roperty><property name=\"orientation\">vertical</property><property nam"
-- "e=\"spacing\">6</property><child><object class=\"GtkCheckButton\" id=\""
-- "unredirect_overlays_check\"><property name=\"label\" translatable=\"yes"
-- "\">Display _fullscreen overlay windows directly</property><property nam"
-+ "erty><property name=\"position\">0</property></packing></child><child><"
-+ "object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\"><propert"
-+ "y name=\"label\" translatable=\"yes\">_Remember and recall previous wor"
-+ "kspace\nwhen switching via keyboard shortcuts</property><property name="
-+ "\"visible\">True</property><property name=\"can_focus\">True</property>"
-+ "<property name=\"receives_default\">False</property><property name=\"us"
-+ "e_underline\">True</property><property name=\"draw_indicator\">True</pr"
-+ "operty></object><packing><property name=\"expand\">False</property><pro"
-+ "perty name=\"fill\">False</property><property name=\"position\">1</prop"
-+ "erty></packing></child><child><object class=\"GtkCheckButton\" id=\"wra"
-+ "p_layout_check\"><property name=\"label\" translatable=\"yes\">Wrap wor"
-+ "kspaces depending on the actual desktop _layout</property><property nam"
- "e=\"visible\">True</property><property name=\"can_focus\">True</propert"
- "y><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><p"
-- "roperty name=\"position\">0</property></packing></child><child><object "
-- "class=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name="
-- "\"label\" translatable=\"yes\">Show shadows under _regular windows</pro"
-- "perty><property name=\"visible\">True</property><property name=\"can_fo"
-- "cus\">True</property><property name=\"receives_default\">False</propert"
-- "y><property name=\"use_underline\">True</property><property name=\"draw"
-- "_indicator\">True</property></object><packing><property name=\"expand\""
-- ">False</property><property name=\"position\">1</property></packing></ch"
-- "ild><child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_chec"
-- "k\"><property name=\"label\" translatable=\"yes\">Show shadows under po"
-- "p_up windows</property><property name=\"visible\">True</property><prope"
-- "rty name=\"can_focus\">True</property><property name=\"receives_default"
-- "\">False</property><property name=\"use_underline\">True</property><pro"
-- "perty name=\"draw_indicator\">True</property></object><packing><propert"
-- "y name=\"expand\">False</property><property name=\"position\">2</proper"
-- "ty></packing></child><child><object class=\"GtkCheckButton\" id=\"show_"
-- "dock_shadow_check\"><property name=\"label\" translatable=\"yes\">Show "
-- "shadows under _dock windows</property><property name=\"visible\">True</"
-- "property><property name=\"can_focus\">True</property><property name=\"r"
-- "eceives_default\">False</property><property name=\"use_underline\">True"
-- "</property><property name=\"draw_indicator\">True</property></object><p"
-- "acking><property name=\"expand\">False</property><property name=\"posit"
-- "ion\">3</property></packing></child><child><object class=\"GtkLabel\" i"
-- "d=\"label12\"><property name=\"visible\">True</property><property name="
-- "\"xalign\">0</property><property name=\"label\" translatable=\"yes\">Op"
-- "aci_ty of window decorations:</property><property name=\"use_underline\""
-- ">True</property><property name=\"mnemonic_widget\">frame_opacity_scale<"
-- "/property></object><packing><property name=\"expand\">False</property><"
-- "property name=\"position\">4</property></packing></child><child><object"
-- " class=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">Tr"
-- "ue</property><property name=\"top_padding\">2</property><property name="
-- "\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbo"
-- "x3\"><property name=\"visible\">True</property><child><object class=\"G"
-- "tkLabel\" id=\"label17\"><property name=\"visible\">True</property><pro"
-- "perty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt"
-- ";</property><property name=\"use_markup\">True</property></object><pack"
-- "ing><property name=\"expand\">False</property><property name=\"fill\">F"
-- "alse</property><property name=\"position\">0</property></packing></chil"
-- "d><child><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><proper"
-+ "roperty name=\"fill\">False</property><property name=\"position\">2</pr"
-+ "operty></packing></child><child><object class=\"GtkCheckButton\" id=\"w"
-+ "rap_cycle_check\"><property name=\"label\" translatable=\"yes\">Wrap wo"
-+ "rkspaces when the _first or the last workspace is reached</property><pr"
-+ "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
-+ "e</property><property name=\"receives_default\">False</property><proper"
-+ "ty name=\"use_underline\">True</property><property name=\"draw_indicato"
-+ "r\">True</property></object><packing><property name=\"expand\">False</p"
-+ "roperty><property name=\"fill\">False</property><property name=\"positi"
-+ "on\">3</property></packing></child></object><packing><property name=\"p"
-+ "osition\">3</property></packing></child><child type=\"tab\"><object cla"
-+ "ss=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</property"
-+ "><property name=\"label\" translatable=\"yes\">_Workspaces</property><p"
-+ "roperty name=\"use_underline\">True</property></object><packing><proper"
-+ "ty name=\"position\">3</property><property name=\"tab_fill\">False</pro"
-+ "perty></packing></child><child><object class=\"GtkVBox\" id=\"vbox6\"><"
-+ "property name=\"visible\">True</property><property name=\"border_width\""
-+ ">12</property><property name=\"orientation\">vertical</property><proper"
-+ "ty name=\"spacing\">6</property><child><object class=\"GtkLabel\" id=\""
-+ "label8\"><property name=\"visible\">True</property><property name=\"xal"
-+ "ign\">0</property><property name=\"label\" translatable=\"yes\">_Minimu"
-+ "m size of windows to trigger smart placement:</property><property name="
-+ "\"use_underline\">True</property><property name=\"mnemonic_widget\">pla"
-+ "cement_ratio_scale</property></object><packing><property name=\"expand\""
-+ ">False</property><property name=\"fill\">False</property><property name"
-+ "=\"position\">0</property></packing></child><child><object class=\"GtkA"
-+ "lignment\" id=\"alignment4\"><property name=\"visible\">True</property>"
-+ "<property name=\"bottom_padding\">6</property><property name=\"left_pad"
-+ "ding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\"><prop"
-+ "erty name=\"visible\">True</property><property name=\"spacing\">12</pro"
-+ "perty><child><object class=\"GtkLabel\" id=\"label9\"><property name=\""
-+ "visible\">True</property><property name=\"label\" translatable=\"yes\" "
-+ "comments=\"Smart placement size\">&lt;i&gt;Small&lt;/i&gt;</property><p"
-+ "roperty name=\"use_markup\">True</property></object><packing><property "
-+ "name=\"expand\">False</property><property name=\"fill\">False</property"
-+ "><property name=\"position\">0</property></packing></child><child><obje"
-+ "ct class=\"GtkHScale\" id=\"placement_ratio_scale\"><property name=\"vi"
-+ "sible\">True</property><property name=\"can_focus\">True</property><pro"
-+ "perty name=\"adjustment\">adjustment1</property><property name=\"restri"
-+ "ct_to_fill_level\">False</property><property name=\"draw_value\">False<"
-+ "/property></object><packing><property name=\"position\">1</property></p"
-+ "acking></child><child><object class=\"GtkLabel\" id=\"label10\"><proper"
-+ "ty name=\"visible\">True</property><property name=\"label\" translatabl"
-+ "e=\"yes\" comments=\"Smart placement size\">&lt;i&gt;Large&lt;/i&gt;</p"
-+ "roperty><property name=\"use_markup\">True</property></object><packing>"
-+ "<property name=\"expand\">False</property><property name=\"position\">2"
-+ "</property></packing></child></object></child></object><packing><proper"
-+ "ty name=\"expand\">False</property><property name=\"fill\">False</prope"
-+ "rty><property name=\"position\">1</property></packing></child><child><o"
-+ "bject class=\"GtkVBox\" id=\"default_placement_box\"><property name=\"v"
-+ "isible\">True</property><property name=\"orientation\">vertical</proper"
-+ "ty><property name=\"spacing\">6</property><child><object class=\"GtkLab"
-+ "el\" id=\"label27\"><property name=\"visible\">True</property><property"
-+ " name=\"xalign\">0</property><property name=\"label\" translatable=\"ye"
-+ "s\">By default, place windows:</property></object><packing><property na"
-+ "me=\"position\">0</property></packing></child><child><object class=\"Gt"
-+ "kAlignment\" id=\"alignment10\"><property name=\"visible\">True</proper"
-+ "ty><property name=\"bottom_padding\">6</property><property name=\"left_"
-+ "padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox18\"><"
-+ "property name=\"visible\">True</property><property name=\"border_width\""
-+ ">6</property><property name=\"orientation\">vertical</property><propert"
-+ "y name=\"spacing\">6</property><child><object class=\"GtkRadioButton\" "
-+ "id=\"placement_center_option\"><property name=\"label\" translatable=\""
-+ "yes\">At the _center of the screen</property><property name=\"visible\""
-+ ">True</property><property name=\"can_focus\">True</property><property n"
-+ "ame=\"receives_default\">False</property><property name=\"use_underline"
-+ "\">True</property><property name=\"draw_indicator\">True</property></ob"
-+ "ject><packing><property name=\"position\">0</property></packing></child"
-+ "><child><object class=\"GtkRadioButton\" id=\"placement_mouse_option\">"
-+ "<property name=\"label\" translatable=\"yes\">Under the mouse _pointer<"
-+ "/property><property name=\"visible\">True</property><property name=\"ca"
-+ "n_focus\">True</property><property name=\"receives_default\">False</pro"
-+ "perty><property name=\"use_underline\">True</property><property name=\""
-+ "active\">True</property><property name=\"draw_indicator\">True</propert"
-+ "y><property name=\"group\">placement_center_option</property></object><"
-+ "packing><property name=\"position\">1</property></packing></child></obj"
-+ "ect></child></object><packing><property name=\"position\">1</property><"
-+ "/packing></child></object><packing><property name=\"expand\">False</pro"
-+ "perty><property name=\"fill\">False</property><property name=\"position"
-+ "\">2</property></packing></child></object><packing><property name=\"pos"
-+ "ition\">4</property></packing></child><child type=\"tab\"><object class"
-+ "=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</property><"
-+ "property name=\"label\" translatable=\"yes\">_Placement</property><prop"
-+ "erty name=\"use_underline\">True</property></object><packing><property "
-+ "name=\"position\">4</property><property name=\"tab_fill\">False</proper"
-+ "ty></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\"><pro"
-+ "perty name=\"visible\">True</property><property name=\"border_width\">1"
-+ "2</property><property name=\"orientation\">vertical</property><property"
-+ " name=\"spacing\">6</property><child><object class=\"GtkCheckButton\" i"
-+ "d=\"use_compositing_check\"><property name=\"label\" translatable=\"yes"
-+ "\">_Enable display compositing</property><property name=\"visible\">Tru"
-+ "e</property><property name=\"can_focus\">True</property><property name="
-+ "\"receives_default\">False</property><property name=\"use_underline\">T"
-+ "rue</property><property name=\"draw_indicator\">True</property></object"
-+ "><packing><property name=\"expand\">False</property><property name=\"fi"
-+ "ll\">False</property><property name=\"position\">0</property></packing>"
-+ "</child><child><object class=\"GtkScrolledWindow\" id=\"use_compositing"
-+ "_box\"><property name=\"visible\">True</property><property name=\"sensi"
-+ "tive\">False</property><property name=\"can_focus\">True</property><pro"
-+ "perty name=\"hscrollbar_policy\">never</property><property name=\"vscro"
-+ "llbar_policy\">automatic</property><child><object class=\"GtkViewport\""
-+ " id=\"viewport1\"><property name=\"visible\">True</property><property n"
-+ "ame=\"resize_mode\">queue</property><property name=\"shadow_type\">none"
-+ "</property><child><object class=\"GtkAlignment\" id=\"alignment3\"><pro"
-+ "perty name=\"visible\">True</property><property name=\"bottom_padding\""
-+ ">6</property><property name=\"left_padding\">12</property><child><objec"
-+ "t class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</prope"
-+ "rty><property name=\"orientation\">vertical</property><property name=\""
-+ "spacing\">6</property><child><object class=\"GtkCheckButton\" id=\"unre"
-+ "direct_overlays_check\"><property name=\"label\" translatable=\"yes\">D"
-+ "isplay _fullscreen overlay windows directly</property><property name=\""
-+ "visible\">True</property><property name=\"can_focus\">True</property><p"
-+ "roperty name=\"receives_default\">False</property><property name=\"use_"
-+ "underline\">True</property><property name=\"draw_indicator\">True</prop"
-+ "erty></object><packing><property name=\"expand\">False</property><prope"
-+ "rty name=\"position\">0</property></packing></child><child><object clas"
-+ "s=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name=\"la"
-+ "bel\" translatable=\"yes\">Show shadows under _regular windows</propert"
-+ "y><property name=\"visible\">True</property><property name=\"can_focus\""
-+ ">True</property><property name=\"receives_default\">False</property><pr"
-+ "operty name=\"use_underline\">True</property><property name=\"draw_indi"
-+ "cator\">True</property></object><packing><property name=\"expand\">Fals"
-+ "e</property><property name=\"position\">1</property></packing></child><"
-+ "child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_check\"><"
-+ "property name=\"label\" translatable=\"yes\">Show shadows under pop_up "
-+ "windows</property><property name=\"visible\">True</property><property n"
-+ "ame=\"can_focus\">True</property><property name=\"receives_default\">Fa"
-+ "lse</property><property name=\"use_underline\">True</property><property"
-+ " name=\"draw_indicator\">True</property></object><packing><property nam"
-+ "e=\"expand\">False</property><property name=\"position\">2</property></"
-+ "packing></child><child><object class=\"GtkCheckButton\" id=\"show_dock_"
-+ "shadow_check\"><property name=\"label\" translatable=\"yes\">Show shado"
-+ "ws under _dock windows</property><property name=\"visible\">True</prope"
-+ "rty><property name=\"can_focus\">True</property><property name=\"receiv"
-+ "es_default\">False</property><property name=\"use_underline\">True</pro"
-+ "perty><property name=\"draw_indicator\">True</property></object><packin"
-+ "g><property name=\"expand\">False</property><property name=\"position\""
-+ ">3</property></packing></child><child><object class=\"GtkLabel\" id=\"l"
-+ "abel12\"><property name=\"visible\">True</property><property name=\"xal"
-+ "ign\">0</property><property name=\"label\" translatable=\"yes\">Opaci_t"
-+ "y of window decorations:</property><property name=\"use_underline\">Tru"
-+ "e</property><property name=\"mnemonic_widget\">frame_opacity_scale</pro"
-+ "perty></object><packing><property name=\"expand\">False</property><prop"
-+ "erty name=\"position\">4</property></packing></child><child><object cla"
-+ "ss=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">True</"
-+ "property><property name=\"top_padding\">2</property><property name=\"le"
-+ "ft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox3\""
-+ "><property name=\"visible\">True</property><child><object class=\"GtkLa"
-+ "bel\" id=\"label17\"><property name=\"visible\">True</property><propert"
-+ "y name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt;</p"
-+ "roperty><property name=\"use_markup\">True</property></object><packing>"
-+ "<property name=\"expand\">False</property><property name=\"fill\">False"
-+ "</property><property name=\"position\">0</property></packing></child><c"
-+ "hild><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><property n"
-+ "ame=\"visible\">True</property><property name=\"can_focus\">True</prope"
-+ "rty><property name=\"update_policy\">discontinuous</property><property "
-+ "name=\"adjustment\">adjustment2</property><property name=\"restrict_to_"
-+ "fill_level\">False</property><property name=\"draw_value\">False</prope"
-+ "rty></object><packing><property name=\"position\">1</property></packing"
-+ "></child><child><object class=\"GtkLabel\" id=\"label18\"><property nam"
-+ "e=\"visible\">True</property><property name=\"label\" translatable=\"ye"
-+ "s\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_markup\">T"
-+ "rue</property></object><packing><property name=\"expand\">False</proper"
-+ "ty><property name=\"fill\">False</property><property name=\"position\">"
-+ "2</property></packing></child></object></child></object><packing><prope"
-+ "rty name=\"expand\">False</property><property name=\"fill\">False</prop"
-+ "erty><property name=\"position\">5</property></packing></child><child><"
-+ "object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\">Tru"
-+ "e</property><property name=\"xalign\">0</property><property name=\"labe"
-+ "l\" translatable=\"yes\">Opacity of _inactive windows:</property><prope"
-+ "rty name=\"use_underline\">True</property><property name=\"mnemonic_wid"
-+ "get\">inactive_opacity_scale</property></object><packing><property name"
-+ "=\"expand\">False</property><property name=\"fill\">False</property><pr"
-+ "operty name=\"position\">6</property></packing></child><child><object c"
-+ "lass=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">True"
-+ "</property><property name=\"top_padding\">2</property><property name=\""
-+ "left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox4"
-+ "\"><property name=\"visible\">True</property><child><object class=\"Gtk"
-+ "Label\" id=\"label19\"><property name=\"visible\">True</property><prope"
-+ "rty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&gt;<"
-+ "/property><property name=\"use_markup\">True</property></object><packin"
-+ "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
-+ "se</property><property name=\"position\">0</property></packing></child>"
-+ "<child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><prope"
-+ "rty name=\"visible\">True</property><property name=\"can_focus\">True</"
-+ "property><property name=\"update_policy\">discontinuous</property><prop"
-+ "erty name=\"adjustment\">adjustment3</property><property name=\"restric"
-+ "t_to_fill_level\">False</property><property name=\"draw_value\">False</"
-+ "property></object><packing><property name=\"position\">1</property></pa"
-+ "cking></child><child><object class=\"GtkLabel\" id=\"label20\"><propert"
-+ "y name=\"visible\">True</property><property name=\"label\" translatable"
-+ "=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_marku"
-+ "p\">True</property></object><packing><property name=\"expand\">False</p"
-+ "roperty><property name=\"fill\">False</property><property name=\"positi"
-+ "on\">2</property></packing></child></object></child></object><packing><"
-+ "property name=\"expand\">False</property><property name=\"fill\">False<"
-+ "/property><property name=\"position\">7</property></packing></child><ch"
-+ "ild><object class=\"GtkLabel\" id=\"label14\"><property name=\"visible\""
-+ ">True</property><property name=\"xalign\">0</property><property name=\""
-+ "label\" translatable=\"yes\">Opacity of windows during _move:</property"
-+ "><property name=\"use_underline\">True</property><property name=\"mnemo"
-+ "nic_widget\">move_opacity_scale</property></object><packing><property n"
-+ "ame=\"expand\">False</property><property name=\"fill\">False</property>"
-+ "<property name=\"position\">8</property></packing></child><child><objec"
-+ "t class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible\">T"
-+ "rue</property><property name=\"top_padding\">2</property><property name"
-+ "=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hb"
-+ "ox5\"><property name=\"visible\">True</property><child><object class=\""
-+ "GtkLabel\" id=\"label21\"><property name=\"visible\">True</property><pr"
-+ "operty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&g"
-+ "t;</property><property name=\"use_markup\">True</property></object><pac"
-+ "king><property name=\"expand\">False</property><property name=\"fill\">"
-+ "False</property><property name=\"position\">0</property></packing></chi"
-+ "ld><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><proper"
- "ty name=\"visible\">True</property><property name=\"can_focus\">True</p"
- "roperty><property name=\"update_policy\">discontinuous</property><prope"
-- "rty name=\"adjustment\">adjustment2</property><property name=\"restrict"
-+ "rty name=\"adjustment\">adjustment4</property><property name=\"restrict"
- "_to_fill_level\">False</property><property name=\"draw_value\">False</p"
- "roperty></object><packing><property name=\"position\">1</property></pac"
-- "king></child><child><object class=\"GtkLabel\" id=\"label18\"><property"
-+ "king></child><child><object class=\"GtkLabel\" id=\"label22\"><property"
- " name=\"visible\">True</property><property name=\"label\" translatable="
- "\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_markup"
- "\">True</property></object><packing><property name=\"expand\">False</pr"
- "operty><property name=\"fill\">False</property><property name=\"positio"
- "n\">2</property></packing></child></object></child></object><packing><p"
- "roperty name=\"expand\">False</property><property name=\"fill\">False</"
-- "property><property name=\"position\">5</property></packing></child><chi"
-- "ld><object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\""
-+ "property><property name=\"position\">9</property></packing></child><chi"
-+ "ld><object class=\"GtkLabel\" id=\"label15\"><property name=\"visible\""
- ">True</property><property name=\"xalign\">0</property><property name=\""
-- "label\" translatable=\"yes\">Opacity of _inactive windows:</property><p"
-- "roperty name=\"use_underline\">True</property><property name=\"mnemonic"
-- "_widget\">inactive_opacity_scale</property></object><packing><property "
-- "name=\"expand\">False</property><property name=\"fill\">False</property"
-- "><property name=\"position\">6</property></packing></child><child><obje"
-- "ct class=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">"
-- "True</property><property name=\"top_padding\">2</property><property nam"
-- "e=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"h"
-- "box4\"><property name=\"visible\">True</property><child><object class=\""
-- "GtkLabel\" id=\"label19\"><property name=\"visible\">True</property><pr"
-- "operty name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;/i&g"
-- "t;</property><property name=\"use_markup\">True</property></object><pac"
-- "king><property name=\"expand\">False</property><property name=\"fill\">"
-- "False</property><property name=\"position\">0</property></packing></chi"
-- "ld><child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><pr"
-- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
-- "e</property><property name=\"update_policy\">discontinuous</property><p"
-- "roperty name=\"adjustment\">adjustment3</property><property name=\"rest"
-- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals"
-- "e</property></object><packing><property name=\"position\">1</property><"
-- "/packing></child><child><object class=\"GtkLabel\" id=\"label20\"><prop"
-- "erty name=\"visible\">True</property><property name=\"label\" translata"
-- "ble=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_ma"
-- "rkup\">True</property></object><packing><property name=\"expand\">False"
-- "</property><property name=\"fill\">False</property><property name=\"pos"
-- "ition\">2</property></packing></child></object></child></object><packin"
-- "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
-- "se</property><property name=\"position\">7</property></packing></child>"
-- "<child><object class=\"GtkLabel\" id=\"label14\"><property name=\"visib"
-- "le\">True</property><property name=\"xalign\">0</property><property nam"
-- "e=\"label\" translatable=\"yes\">Opacity of windows during _move:</prop"
-- "erty><property name=\"use_underline\">True</property><property name=\"m"
-- "nemonic_widget\">move_opacity_scale</property></object><packing><proper"
-+ "label\" translatable=\"yes\">Opacity of windows during resi_ze:</proper"
-+ "ty><property name=\"use_underline\">True</property><property name=\"mne"
-+ "monic_widget\">resize_opacity_scale</property></object><packing><proper"
- "ty name=\"expand\">False</property><property name=\"fill\">False</prope"
-- "rty><property name=\"position\">8</property></packing></child><child><o"
-- "bject class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible"
-- "\">True</property><property name=\"top_padding\">2</property><property "
-- "name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id="
-- "\"hbox5\"><property name=\"visible\">True</property><child><object clas"
-- "s=\"GtkLabel\" id=\"label21\"><property name=\"visible\">True</property"
-- "><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt;"
-- "/i&gt;</property><property name=\"use_markup\">True</property></object>"
-- "<packing><property name=\"expand\">False</property><property name=\"fil"
-- "l\">False</property><property name=\"position\">0</property></packing><"
-- "/child><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><pr"
-- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru"
-- "e</property><property name=\"update_policy\">discontinuous</property><p"
-- "roperty name=\"adjustment\">adjustment4</property><property name=\"rest"
-- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals"
-- "e</property></object><packing><property name=\"position\">1</property><"
-- "/packing></child><child><object class=\"GtkLabel\" id=\"label22\"><prop"
-- "erty name=\"visible\">True</property><property name=\"label\" translata"
-- "ble=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use_ma"
-- "rkup\">True</property></object><packing><property name=\"expand\">False"
-- "</property><property name=\"fill\">False</property><property name=\"pos"
-- "ition\">2</property></packing></child></object></child></object><packin"
-- "g><property name=\"expand\">False</property><property name=\"fill\">Fal"
-- "se</property><property name=\"position\">9</property></packing></child>"
-- "<child><object class=\"GtkLabel\" id=\"label15\"><property name=\"visib"
-- "le\">True</property><property name=\"xalign\">0</property><property nam"
-- "e=\"label\" translatable=\"yes\">Opacity of windows during resi_ze:</pr"
-- "operty><property name=\"use_underline\">True</property><property name=\""
-- "mnemonic_widget\">resize_opacity_scale</property></object><packing><pro"
-- "perty name=\"expand\">False</property><property name=\"fill\">False</pr"
-- "operty><property name=\"position\">10</property></packing></child><chil"
-- "d><object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"vis"
-- "ible\">True</property><property name=\"top_padding\">2</property><prope"
-- "rty name=\"left_padding\">12</property><child><object class=\"GtkHBox\""
-- " id=\"hbox6\"><property name=\"visible\">True</property><child><object "
-- "class=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</prop"
-- "erty><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent"
-- "&lt;/i&gt;</property><property name=\"use_markup\">True</property></obj"
-- "ect><packing><property name=\"expand\">False</property><property name=\""
-- "fill\">False</property><property name=\"position\">0</property></packin"
-- "g></child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\""
-- "><property name=\"visible\">True</property><property name=\"can_focus\""
-- ">True</property><property name=\"update_policy\">discontinuous</propert"
-- "y><property name=\"adjustment\">adjustment5</property><property name=\""
-- "restrict_to_fill_level\">False</property><property name=\"draw_value\">"
-- "False</property></object><packing><property name=\"position\">1</proper"
-- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><"
-- "property name=\"visible\">True</property><property name=\"label\" trans"
-- "latable=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"us"
-- "e_markup\">True</property></object><packing><property name=\"expand\">F"
-- "alse</property><property name=\"fill\">False</property><property name=\""
-+ "rty><property name=\"position\">10</property></packing></child><child><"
-+ "object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"visibl"
-+ "e\">True</property><property name=\"top_padding\">2</property><property"
-+ " name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id"
-+ "=\"hbox6\"><property name=\"visible\">True</property><child><object cla"
-+ "ss=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</propert"
-+ "y><property name=\"label\" translatable=\"yes\">&lt;i&gt;Transparent&lt"
-+ ";/i&gt;</property><property name=\"use_markup\">True</property></object"
-+ "><packing><property name=\"expand\">False</property><property name=\"fi"
-+ "ll\">False</property><property name=\"position\">0</property></packing>"
-+ "</child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\">"
-+ "<property name=\"visible\">True</property><property name=\"can_focus\">"
-+ "True</property><property name=\"update_policy\">discontinuous</property"
-+ "><property name=\"adjustment\">adjustment5</property><property name=\"r"
-+ "estrict_to_fill_level\">False</property><property name=\"draw_value\">F"
-+ "alse</property></object><packing><property name=\"position\">1</propert"
-+ "y></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><p"
-+ "roperty name=\"visible\">True</property><property name=\"label\" transl"
-+ "atable=\"yes\">&lt;i&gt;Opaque&lt;/i&gt;</property><property name=\"use"
-+ "_markup\">True</property></object><packing><property name=\"expand\">Fa"
-+ "lse</property><property name=\"fill\">False</property><property name=\""
- "position\">2</property></packing></child></object></child></object><pac"
- "king><property name=\"expand\">False</property><property name=\"fill\">"
- "False</property><property name=\"position\">11</property></packing></ch"
-@@ -568,5 +576,5 @@ static const char tweaks_dialog_ui[] =
- "et></action-widgets></object></interface>"
- };
-
--static const unsigned tweaks_dialog_ui_length = 37803u;
-+static const unsigned tweaks_dialog_ui_length = 38338u;
-
-diff --git a/src/client.c b/src/client.c
-index 4e86808..b92c264 100644
---- a/src/client.c
-+++ b/src/client.c
-@@ -64,6 +64,8 @@
- #include "xsync.h"
- #include "event_filter.h"
-
-+//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout);
-+
- /* Event mask definition */
-
- #define POINTER_EVENT_MASK \
-@@ -173,6 +175,7 @@ clientCreateTitleName (Client *c, gchar *name, gchar *hostname)
- gchar *title;
-
- g_return_val_if_fail (c != NULL, NULL);
-+
- TRACE ("entering clientCreateTitleName");
-
- screen_info = c->screen_info;
-@@ -1729,6 +1732,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
- clientGetInitialNetWmDesktop (c);
- /* workarea will be updated when shown, no need to worry here */
- clientGetNetStruts (c);
-+ clientGetExtra (c);
-
- /* Once we know the type of window, we can initialize window position */
- if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_SESSION_MANAGED))
-@@ -3137,6 +3141,8 @@ clientNewMaxSize (Client *c, XWindowChanges *wc, GdkRectangle *rect, tilePositio
- wc->width = full_w - frameLeft (c) - frameRight (c);
- wc->height = full_h - frameTop (c) - frameBottom (c);
-
-+ TRACE ("clientNewMaxSize %d %d %d %d", wc->x, wc->y, wc->width, wc->height);
-+
- return ((wc->width <= c->size->max_width) && (wc->height <= c->size->max_height));
- }
-
-diff --git a/src/client.h b/src/client.h
-index e8bc4e3..b5e54df 100644
---- a/src/client.h
-+++ b/src/client.h
-@@ -161,6 +161,7 @@
- #define CLIENT_FLAG_DEMANDS_ATTENTION (1L<<17)
- #define CLIENT_FLAG_HAS_SHAPE (1L<<18)
- #define CLIENT_FLAG_FULLSCREN_MONITORS (1L<<19)
-+#define CLIENT_FLAG_TITLELESS_MAXIMIZE (1L<<20)
-
- #define WM_FLAG_DELETE (1L<<0)
- #define WM_FLAG_INPUT (1L<<1)
-diff --git a/src/display.c b/src/display.c
-index 00318d5..4f847f4 100644
---- a/src/display.c
-+++ b/src/display.c
-@@ -169,7 +169,8 @@ myDisplayInitAtoms (DisplayInfo *display_info)
- "XFWM4_COMPOSITING_MANAGER",
- "XFWM4_TIMESTAMP_PROP",
- "_XROOTPMAP_ID",
-- "_XSETROOT_ID"
-+ "_XSETROOT_ID",
-+ "_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED"
- };
-
- g_assert (ATOM_COUNT == G_N_ELEMENTS (atom_names));
-diff --git a/src/display.h b/src/display.h
-index 8797237..a297cf2 100644
---- a/src/display.h
-+++ b/src/display.h
-@@ -265,6 +265,7 @@ enum
- XFWM4_TIMESTAMP_PROP,
- XROOTPMAP,
- XSETROOT,
-+ _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED,
- ATOM_COUNT
- };
-
-diff --git a/src/events.c b/src/events.c
-index 4b49171..044cd11 100644
---- a/src/events.c
-+++ b/src/events.c
-@@ -1921,6 +1921,11 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev)
- TRACE ("Window 0x%lx has NET_WM_SYNC_REQUEST_COUNTER set to 0x%lx", c->window, c->xsync_counter);
- }
- #endif /* HAVE_XSYNC */
-+ else if (ev->atom == display_info->atoms[_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED])
-+ {
-+ TRACE ("Client \"%s\" Window 0x%lx has received GTK CRAP\n", c->name, c->window);
-+ clientUpdateExtra (c);
-+ }
-
- return status;
- }
-diff --git a/src/frame.c b/src/frame.c
-index 7f4cbd3..23c01cd 100644
---- a/src/frame.c
-+++ b/src/frame.c
-@@ -39,6 +39,8 @@
- #include "frame.h"
- #include "compositor.h"
-
-+//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout);
-+
- typedef struct
- {
- xfwmPixmap pm_title;
-@@ -121,7 +123,14 @@ frameTop (Client * c)
-
- g_return_val_if_fail (c != NULL, 0);
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
-- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
-+ && !(FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
-+ || (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
-+ && (c->screen_info->params->titleless_maximize
-+ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
-+ && c->screen_info->params->borderless_maximize
-+ )
-+ )
-+ )
- {
- return c->screen_info->title[TITLE_3][ACTIVE].height;
- }
-@@ -136,8 +145,13 @@ frameBottom (Client * c)
- g_return_val_if_fail (c != NULL, 0);
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
-- && (!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
-- || !(c->screen_info->params->borderless_maximize)))
-+ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
-+ && (c->screen_info->params->borderless_maximize))
-+ && !(FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
-+ && (c->screen_info->params->borderless_maximize)
-+ && (c->screen_info->params->titleless_maximize
-+ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)))
-+ )
- {
- return c->screen_info->sides[SIDE_BOTTOM][ACTIVE].height;
- }
-@@ -203,7 +217,14 @@ frameHeight (Client * c)
- return frameTop (c) + frameBottom (c);
- }
- else if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
-- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
-+ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
-+ && !(
-+ FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
-+ && (c->screen_info->params->borderless_maximize)
-+ && (c->screen_info->params->titleless_maximize
-+ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
-+ ))
-+
- {
- return c->height + frameTop (c) + frameBottom (c);
- }
-@@ -882,6 +903,7 @@ frameDrawWin (Client * c)
- gboolean requires_clearing;
- gboolean width_changed;
- gboolean height_changed;
-+ gboolean vert_only;
-
- TRACE ("entering frameDraw");
- TRACE ("drawing frame for \"%s\" (0x%lx)", c->name, c->window);
-@@ -955,128 +977,152 @@ frameDrawWin (Client * c)
- }
-
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
-- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
-+ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
-+ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
-+ && (c->screen_info->params->borderless_maximize)
-+ && (c->screen_info->params->titleless_maximize
-+ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))
-+ ))
- {
-- /* First, hide the buttons that we don't have... */
-- for (i = 0; i < BUTTON_COUNT; i++)
-+ vert_only = FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT)
-+ && (c->screen_info->params->borderless_maximize) //only vertical decorations shown (titleless vertical maximize)
-+ && (c->screen_info->params->titleless_maximize
-+ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE));
-+
-+ if (vert_only)
- {
-- char b = getLetterFromButton (i, c);
-- if ((!b) || !strchr (screen_info->params->button_layout, b))
-+ //hide all buttons
-+ for (i = 0; i < BUTTON_COUNT; i++)
- {
- xfwmWindowHide (&c->buttons[i]);
- }
-+ xfwmWindowHide (&c->title);
-+ xfwmWindowHide (&c->sides[SIDE_BOTTOM]);
-+ xfwmWindowHide (&c->sides[SIDE_TOP]);
-+ xfwmWindowHide (&c->corners[CORNER_TOP_LEFT]);
-+ xfwmWindowHide (&c->corners[CORNER_TOP_RIGHT]);
-+ xfwmWindowHide (&c->corners[CORNER_BOTTOM_LEFT]);
-+ xfwmWindowHide (&c->corners[CORNER_BOTTOM_RIGHT]);
- }
--
-- /* Then, show the ones that we do have on left... */
-- x = frameLeft (c) + frameButtonOffset (c);
-- if (x < 0)
-- {
-- x = 0;
-- }
-- right = frameWidth (c) - frameRight (c) - frameButtonOffset (c);
-- for (i = 0; i < strlen (screen_info->params->button_layout); i++)
-+ else
- {
-- button = getButtonFromLetter (screen_info->params->button_layout[i], c);
-- if (button == TITLE_SEPARATOR)
-+ /* First, hide the buttons that we don't have... */
-+ for (i = 0; i < BUTTON_COUNT; i++)
- {
-- break;
-- }
-- else if (button >= 0)
-- {
-- if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right)
-- {
-- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
-- if (!xfwmPixmapNone(my_pixmap))
-- {
-- xfwmWindowSetBG (&c->buttons[button], my_pixmap);
-- }
-- xfwmWindowShow (&c->buttons[button], x,
-- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
-- screen_info->buttons[button][state].width,
-- screen_info->buttons[button][state].height, TRUE);
-- button_x[button] = x;
-- x = x + screen_info->buttons[button][state].width +
-- screen_info->params->button_spacing;
-- }
-- else
-+ char b = getLetterFromButton (i, c);
-+ if ((!b) || !strchr (screen_info->params->button_layout, b))
- {
-- xfwmWindowHide (&c->buttons[button]);
-+ xfwmWindowHide (&c->buttons[i]);
- }
- }
-- }
-- left = x + screen_info->params->button_spacing;
-
-- /* and those that we do have on right... */
-- x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing -
-- frameButtonOffset (c);
-- for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--)
-- {
-- button = getButtonFromLetter (screen_info->params->button_layout[j], c);
-- if (button == TITLE_SEPARATOR)
-+ /* Then, show the ones that we do have on left... */
-+ x = frameLeft (c) + frameButtonOffset (c);
-+ if (x < 0)
- {
-- break;
-+ x = 0;
- }
-- else if (button >= 0)
-+ right = frameWidth (c) - frameRight (c) - frameButtonOffset (c);
-+ for (i = 0; i < strlen (screen_info->params->button_layout); i++)
- {
-- if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left)
-+ button = getButtonFromLetter (screen_info->params->button_layout[i], c);
-+ if (button == TITLE_SEPARATOR)
- {
-- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
-- if (!xfwmPixmapNone(my_pixmap))
-+ break;
-+ }
-+ else if (button >= 0)
-+ {
-+ if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right)
-+ {
-+ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
-+ if (!xfwmPixmapNone(my_pixmap))
-+ {
-+ xfwmWindowSetBG (&c->buttons[button], my_pixmap);
-+ }
-+ xfwmWindowShow (&c->buttons[button], x,
-+ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
-+ screen_info->buttons[button][state].width,
-+ screen_info->buttons[button][state].height, TRUE);
-+ button_x[button] = x;
-+ x = x + screen_info->buttons[button][state].width +
-+ screen_info->params->button_spacing;
-+ }
-+ else
- {
-- xfwmWindowSetBG (&c->buttons[button], my_pixmap);
-+ xfwmWindowHide (&c->buttons[button]);
- }
-- x = x - screen_info->buttons[button][state].width -
-- screen_info->params->button_spacing;
-- xfwmWindowShow (&c->buttons[button], x,
-- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
-- screen_info->buttons[button][state].width,
-- screen_info->buttons[button][state].height, TRUE);
-- button_x[button] = x;
- }
-- else
-+ }
-+ left = x + screen_info->params->button_spacing;
-+
-+ /* and those that we do have on right... */
-+ x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing -
-+ frameButtonOffset (c);
-+ for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--)
-+ {
-+ button = getButtonFromLetter (screen_info->params->button_layout[j], c);
-+ if (button == TITLE_SEPARATOR)
- {
-- xfwmWindowHide (&c->buttons[button]);
-+ break;
-+ }
-+ else if (button >= 0)
-+ {
-+ if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left)
-+ {
-+ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state));
-+ if (!xfwmPixmapNone(my_pixmap))
-+ {
-+ xfwmWindowSetBG (&c->buttons[button], my_pixmap);
-+ }
-+ x = x - screen_info->buttons[button][state].width -
-+ screen_info->params->button_spacing;
-+ xfwmWindowShow (&c->buttons[button], x,
-+ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2,
-+ screen_info->buttons[button][state].width,
-+ screen_info->buttons[button][state].height, TRUE);
-+ button_x[button] = x;
-+ }
-+ else
-+ {
-+ xfwmWindowHide (&c->buttons[button]);
-+ }
- }
- }
-+ left = left - 2 * screen_info->params->button_spacing;
-+ right = x;
-+ xfwmPixmapInit (screen_info, &frame_pix.pm_title);
-+ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]);
-+ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]);
-+
-+ top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state);
-+ bottom_width = frameWidth (c) -
-+ screen_info->corners[CORNER_BOTTOM_LEFT][state].width -
-+ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width;
-+
-+ /* The title is almost always visible */
-+ frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]);
-+ xfwmWindowSetBG (&c->title, &frame_pix.pm_title);
-+ xfwmWindowShow (&c->title,
-+ frameTopLeftWidth (c, state), 0, top_width,
-+ frameTop (c), (requires_clearing | width_changed));
-+
-+ /* Corners are never resized, we need to update them separately */
-+ if (requires_clearing)
-+ {
-+ xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT],
-+ &screen_info->corners[CORNER_TOP_LEFT][state]);
-+ xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT],
-+ &screen_info->corners[CORNER_TOP_RIGHT][state]);
-+ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT],
-+ &screen_info->corners[CORNER_BOTTOM_LEFT][state]);
-+ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT],
-+ &screen_info->corners[CORNER_BOTTOM_RIGHT][state]);
-+ }
- }
-- left = left - 2 * screen_info->params->button_spacing;
-- right = x;
--
-- top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state);
-- bottom_width = frameWidth (c) -
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].width -
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width;
-- left_height = frameHeight (c) - frameTop (c) -
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].height;
-- right_height = frameHeight (c) - frameTop (c) -
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height;
--
-- xfwmPixmapInit (screen_info, &frame_pix.pm_title);
-- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]);
-- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]);
-+
- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_LEFT]);
- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_RIGHT]);
-
-- /* The title is always visible */
-- frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]);
-- xfwmWindowSetBG (&c->title, &frame_pix.pm_title);
-- xfwmWindowShow (&c->title,
-- frameTopLeftWidth (c, state), 0, top_width,
-- frameTop (c), (requires_clearing | width_changed));
--
-- /* Corners are never resized, we need to update them separately */
-- if (requires_clearing)
-- {
-- xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT],
-- &screen_info->corners[CORNER_TOP_LEFT][state]);
-- xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT],
-- &screen_info->corners[CORNER_TOP_RIGHT][state]);
-- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT],
-- &screen_info->corners[CORNER_BOTTOM_LEFT][state]);
-- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT],
-- &screen_info->corners[CORNER_BOTTOM_RIGHT][state]);
-- }
--
- if (FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
- && (c->screen_info->params->borderless_maximize))
- {
-@@ -1091,6 +1137,18 @@ frameDrawWin (Client * c)
- }
- else
- {
-+ if (vert_only)
-+ {
-+ left_height = right_height = c->height;
-+ }
-+ else
-+ {
-+ left_height = frameHeight (c) - frameTop (c)
-+ - screen_info->corners[CORNER_BOTTOM_LEFT][state].height;
-+ right_height = frameHeight (c) - frameTop (c)
-+ - screen_info->corners[CORNER_BOTTOM_RIGHT][state].height;
-+ }
-+
- if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED))
- {
- xfwmWindowHide (&c->sides[SIDE_LEFT]);
-@@ -1120,63 +1178,69 @@ frameDrawWin (Client * c)
- right_height, (requires_clearing | height_changed));
- }
-
-- xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM],
-- bottom_width, frameBottom (c));
-- xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state],
-- &frame_pix.pm_sides[SIDE_BOTTOM],
-- 0, 0, bottom_width, frameBottom (c));
-- xfwmWindowSetBG (&c->sides[SIDE_BOTTOM],
-- &frame_pix.pm_sides[SIDE_BOTTOM]);
-- xfwmWindowShow (&c->sides[SIDE_BOTTOM],
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
-- frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c),
-- (requires_clearing | width_changed));
--
-- if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP]))
-+ if (!vert_only)
- {
-- xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]);
-- xfwmWindowShow (&c->sides[SIDE_TOP],
-- screen_info->corners[CORNER_TOP_LEFT][state].width,
-- 0, top_width, frame_pix.pm_sides[SIDE_TOP].height,
-+ xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM],
-+ bottom_width, frameBottom (c));
-+ xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state],
-+ &frame_pix.pm_sides[SIDE_BOTTOM],
-+ 0, 0, bottom_width, frameBottom (c));
-+ xfwmWindowSetBG (&c->sides[SIDE_BOTTOM],
-+ &frame_pix.pm_sides[SIDE_BOTTOM]);
-+ xfwmWindowShow (&c->sides[SIDE_BOTTOM],
-+ screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
-+ frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c),
- (requires_clearing | width_changed));
-- }
-- else
-- {
-- xfwmWindowHide (&c->sides[SIDE_TOP]);
-- }
-
-- xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0,
-- frameTopLeftWidth (c, state),
-- screen_info->corners[CORNER_TOP_LEFT][state].height,
-- requires_clearing);
--
-- xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT],
-- frameWidth (c) - frameTopRightWidth (c, state),
-- 0, frameTopRightWidth (c, state),
-- screen_info->corners[CORNER_TOP_RIGHT][state].height,
-- requires_clearing);
--
-- xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0,
-- frameHeight (c) -
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
-- screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
-- requires_clearing);
--
-- xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT],
-- frameWidth (c) -
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
-- frameHeight (c) -
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
-- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
-- requires_clearing);
-+ if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP]))
-+ {
-+ xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]);
-+ xfwmWindowShow (&c->sides[SIDE_TOP],
-+ screen_info->corners[CORNER_TOP_LEFT][state].width,
-+ 0, top_width, frame_pix.pm_sides[SIDE_TOP].height,
-+ (requires_clearing | width_changed));
-+ }
-+ else
-+ {
-+ xfwmWindowHide (&c->sides[SIDE_TOP]);
-+ }
-+
-+ xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0,
-+ frameTopLeftWidth (c, state),
-+ screen_info->corners[CORNER_TOP_LEFT][state].height,
-+ requires_clearing);
-+
-+ xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT],
-+ frameWidth (c) - frameTopRightWidth (c, state),
-+ 0, frameTopRightWidth (c, state),
-+ screen_info->corners[CORNER_TOP_RIGHT][state].height,
-+ requires_clearing);
-+
-+ xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0,
-+ frameHeight (c) -
-+ screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
-+ screen_info->corners[CORNER_BOTTOM_LEFT][state].width,
-+ screen_info->corners[CORNER_BOTTOM_LEFT][state].height,
-+ requires_clearing);
-+
-+ xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT],
-+ frameWidth (c) -
-+ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
-+ frameHeight (c) -
-+ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
-+ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width,
-+ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height,
-+ requires_clearing);
-+ }
- }
- frameSetShape (c, state, &frame_pix, button_x);
-
-- xfwmPixmapFree (&frame_pix.pm_title);
-- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]);
-- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]);
-+ if (!vert_only)
-+ {
-+ xfwmPixmapFree (&frame_pix.pm_title);
-+ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]);
-+ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]);
-+ }
- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_LEFT]);
- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_RIGHT]);
- }
-diff --git a/src/netwm.c b/src/netwm.c
-index 1352f08..9e3647c 100644
---- a/src/netwm.c
-+++ b/src/netwm.c
-@@ -136,6 +136,44 @@ clientSetNetState (Client * c)
- }
-
- void
-+clientGetExtra (Client *c)
-+{
-+ long val;
-+ DisplayInfo *display_info;
-+
-+ display_info = c->screen_info->display_info;
-+
-+ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val);
-+ if (val)
-+ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
-+}
-+
-+void
-+clientUpdateExtra (Client *c)
-+{
-+ long val;
-+ unsigned long maximization_flags = 0L;
-+ DisplayInfo *display_info;
-+
-+ display_info = c->screen_info->display_info;
-+
-+ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val);
-+ if (val)
-+ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
-+ else
-+ FLAG_UNSET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE);
-+
-+ if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
-+ {
-+ maximization_flags = c->flags & CLIENT_FLAG_MAXIMIZED;
-+
-+ /* Force an update by clearing the internal flags */
-+ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
-+ clientToggleMaximized (c, maximization_flags, TRUE);
-+ }
-+}
-+
-+void
- clientGetNetState (Client * c)
- {
- ScreenInfo *screen_info;
-diff --git a/src/placement.c b/src/placement.c
-index 01f2590..64719a7 100644
---- a/src/placement.c
-+++ b/src/placement.c
-@@ -38,7 +38,6 @@
- #include "frame.h"
- #include "netwm.h"
-
--
- /* Compute rectangle overlap area */
-
- static inline unsigned long
-@@ -108,6 +107,8 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h)
- g_return_if_fail (w != NULL);
- g_return_if_fail (h != NULL);
-
-+ TRACE ("entering clientMaxSpace");
-+
- screen_width = 0;
- screen_height = 0;
- delta = 0;
-@@ -157,6 +158,7 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h)
- }
- }
- }
-+ TRACE ("clientMaxSpace result %d %d %d %d", *x, *y, *w, *h);
- }
-
- gboolean
-diff --git a/src/settings.c b/src/settings.c
-index 607bb7b..37b6c2a 100644
---- a/src/settings.c
-+++ b/src/settings.c
-@@ -667,6 +667,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},
-@@ -753,6 +754,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 =
-@@ -1261,6 +1264,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 be01b6b..ea8b79b 100644
---- a/src/settings.h
-+++ b/src/settings.h
-@@ -197,6 +197,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;
---
-1.8.4
-