diff options
author | Viktor Odintsev <zakhams@gmail.com> | 2017-06-28 22:55:55 +0300 |
---|---|---|
committer | Viktor Odintsev <ninetls@xfce.org> | 2017-06-28 22:55:55 +0300 |
commit | 4c101f9b807fbd5e1067ca7254740a4ef1744e68 (patch) | |
tree | 595ad83445ab23eef71a2fc0b04d720e023f3128 /settings-dialogs | |
parent | 047fbb30681f3679b5e92ebd44fef204386456c9 (diff) | |
download | xfwm4-4c101f9b807fbd5e1067ca7254740a4ef1744e68.tar.gz |
Port most of GUI stuff to GTK3
Diffstat (limited to 'settings-dialogs')
-rw-r--r-- | settings-dialogs/Makefile.am | 12 | ||||
-rw-r--r-- | settings-dialogs/common.c | 46 | ||||
-rw-r--r-- | settings-dialogs/common.h | 29 | ||||
-rw-r--r-- | settings-dialogs/tweaks-settings.c | 11 | ||||
-rw-r--r-- | settings-dialogs/workspace-settings.c | 13 | ||||
-rw-r--r-- | settings-dialogs/xfwm4-dialog.glade | 102 | ||||
-rw-r--r-- | settings-dialogs/xfwm4-settings.c | 153 | ||||
-rw-r--r-- | settings-dialogs/xfwm4-tweaks-dialog.glade | 87 | ||||
-rw-r--r-- | settings-dialogs/xfwm4-workspace-dialog.glade | 24 |
9 files changed, 324 insertions, 153 deletions
diff --git a/settings-dialogs/Makefile.am b/settings-dialogs/Makefile.am index 424c482b8..4d96f2c3e 100644 --- a/settings-dialogs/Makefile.am +++ b/settings-dialogs/Makefile.am @@ -6,7 +6,9 @@ bin_PROGRAMS = \ xfwm4_workspace_settings_SOURCES = \ workspace-settings.c \ xfwm4-workspace-dialog_ui.h \ - monitor-icon.h + monitor-icon.h \ + common.c \ + common.h xfwm4_workspace_settings_CFLAGS = \ $(GTK_CFLAGS) \ @@ -33,7 +35,9 @@ xfwm4_workspace_settings_LDADD = \ xfwm4_settings_SOURCES = \ xfwm4-settings.c \ xfwm4-settings.h \ - xfwm4-dialog_ui.h + xfwm4-dialog_ui.h \ + common.c \ + common.h xfwm4_settings_CFLAGS = \ $(GTK_CFLAGS) \ @@ -56,7 +60,9 @@ xfwm4_settings_LDADD = \ xfwm4_tweaks_settings_SOURCES = \ tweaks-settings.c \ - xfwm4-tweaks-dialog_ui.h + xfwm4-tweaks-dialog_ui.h \ + common.c \ + common.h xfwm4_tweaks_settings_CFLAGS = \ $(GTK_CFLAGS) \ diff --git a/settings-dialogs/common.c b/settings-dialogs/common.c new file mode 100644 index 000000000..2868108a5 --- /dev/null +++ b/settings-dialogs/common.c @@ -0,0 +1,46 @@ +/* vi:set sw=2 sts=2 ts=2 et ai tw=100: */ +/*- + * Copyright (c) 2017 Viktor Odintsev <zakhams@gmail.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include <gtk/gtk.h> + + + +void +xfwm_widget_reparent (GtkWidget *widget, + GtkWidget *new_parent) +{ + GtkWidget *old_parent; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + g_return_if_fail (GTK_IS_CONTAINER (new_parent)); + + old_parent = gtk_widget_get_parent (widget); + + g_return_if_fail (old_parent != NULL); + + if (old_parent != new_parent) + { + g_object_ref (widget); + gtk_container_remove (GTK_CONTAINER (old_parent), widget); + gtk_container_add (GTK_CONTAINER (new_parent), widget); + g_object_unref (widget); + } +} + diff --git a/settings-dialogs/common.h b/settings-dialogs/common.h new file mode 100644 index 000000000..ea8e59faf --- /dev/null +++ b/settings-dialogs/common.h @@ -0,0 +1,29 @@ +/* vi:set sw=2 sts=2 ts=2 et ai tw=100: */ +/*- + * Copyright (c) 2017 Viktor Odintsev <zakhams@gmail.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#ifndef __COMMON_H__ +#define __COMMON_H__ + +#include <gtk/gtk.h> + +void xfwm_widget_reparent (GtkWidget *widget, + GtkWidget *new_parent); + +#endif /* !__COMMON_H__ */ diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c index 95755ac5d..d3b45c5dd 100644 --- a/settings-dialogs/tweaks-settings.c +++ b/settings-dialogs/tweaks-settings.c @@ -38,12 +38,15 @@ #include <gdk/gdk.h> #include <gdk/gdkx.h> #include <gtk/gtk.h> +#include <gtk/gtkx.h> #include <libxfce4ui/libxfce4ui.h> #include <xfconf/xfconf.h> + #include "xfwm4-tweaks-dialog_ui.h" +#include "common.h" -static GdkNativeWindow opt_socket_id = 0; +static Window opt_socket_id = 0; static gboolean opt_version = FALSE; static const gchar *const modifier_list[] = { @@ -521,7 +524,7 @@ main (int argc, gchar **argv) g_signal_connect (dialog, "response", G_CALLBACK (wm_tweaks_dialog_response), NULL); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); gtk_main (); @@ -536,11 +539,11 @@ main (int argc, gchar **argv) /* Get plug child widget */ plug_child = GTK_WIDGET (gtk_builder_get_object (builder, "plug-child")); - gtk_widget_reparent (plug_child, plug); + xfwm_widget_reparent (plug_child, plug); gtk_widget_show (plug_child); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); /* Stop startup notification */ gdk_notify_startup_complete (); diff --git a/settings-dialogs/workspace-settings.c b/settings-dialogs/workspace-settings.c index 5b1ca4de1..2e93967b9 100644 --- a/settings-dialogs/workspace-settings.c +++ b/settings-dialogs/workspace-settings.c @@ -26,22 +26,27 @@ #include <string.h> #include <glib.h> +#include <gdk/gdkx.h> #include <gtk/gtk.h> +#include <gtk/gtkx.h> + #include <dbus/dbus-glib.h> #include <libwnck/libwnck.h> #include <libxfce4util/libxfce4util.h> #include <libxfce4ui/libxfce4ui.h> #include <xfconf/xfconf.h> + #include "xfwm4-workspace-dialog_ui.h" #include "monitor-icon.h" +#include "common.h" #define WORKSPACES_CHANNEL "xfwm4" #define WORKSPACE_NAMES_PROP "/general/workspace_names" #define WORKSPACE_COUNT_PROP "/general/workspace_count" -static GdkNativeWindow opt_socket_id = 0; +static Window opt_socket_id = 0; static gboolean opt_version = FALSE; @@ -435,7 +440,7 @@ main(int argc, gchar **argv) g_signal_connect (dialog, "response", G_CALLBACK (workspace_dialog_response), NULL); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); gtk_main (); @@ -448,11 +453,11 @@ main(int argc, gchar **argv) /* Get plug child widget */ plug_child = GTK_WIDGET (gtk_builder_get_object (builder, "plug-child")); - gtk_widget_reparent (plug_child, plug); + xfwm_widget_reparent (plug_child, plug); gtk_widget_show (plug_child); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); /* Stop startup notification */ gdk_notify_startup_complete (); diff --git a/settings-dialogs/xfwm4-dialog.glade b/settings-dialogs/xfwm4-dialog.glade index f06460bcb..c848b2878 100644 --- a/settings-dialogs/xfwm4-dialog.glade +++ b/settings-dialogs/xfwm4-dialog.glade @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> - <requires lib="gtk+" version="2.24"/> - <!-- interface-requires libxfce4ui 4.5 --> + <requires lib="gtk+" version="3.20"/> + <!-- interface-requires libxfce4ui-2 4.5 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="lower">5</property> @@ -39,13 +39,15 @@ <property name="type_hint">dialog</property> <property name="subtitle" translatable="yes">Configure window behavior and shortcuts</property> <child internal-child="vbox"> - <object class="GtkVBox" id="main-vbox"> + <object class="GtkBox" id="main-vbox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area1"> + <object class="GtkButtonBox" id="dialog-action_area1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="help_button"> @@ -92,9 +94,10 @@ <property name="can_focus">True</property> <property name="border_width">6</property> <child> - <object class="GtkHBox" id="hbox7"> + <object class="GtkBox" id="hbox7"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="border_width">12</property> <property name="spacing">12</property> <child> @@ -145,9 +148,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox12"> + <object class="GtkBox" id="vbox12"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkFrame" id="frame10"> @@ -240,9 +244,10 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox13"> + <object class="GtkBox" id="vbox13"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">6</property> <property name="spacing">6</property> <child> @@ -269,9 +274,11 @@ <property name="can_focus">False</property> <property name="border_width">6</property> <child> - <object class="GtkHBox" id="active-box"> + <object class="GtkBox" id="active-box"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> <child> <object class="GtkButton" id="button-layout-|"> <property name="label" translatable="yes">Title</property> @@ -317,9 +324,10 @@ <property name="can_focus">False</property> <property name="border_width">6</property> <child> - <object class="GtkHBox" id="hidden-box"> + <object class="GtkBox" id="hidden-box"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="button-layout-O"> @@ -506,9 +514,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox10"> + <object class="GtkBox" id="vbox10"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -527,9 +536,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox11"> + <object class="GtkBox" id="vbox11"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkScrolledWindow" id="scrolledwindow2"> @@ -568,9 +578,10 @@ <property name="yalign">0</property> <property name="xscale">0</property> <child> - <object class="GtkHBox" id="hbox5"> + <object class="GtkBox" id="hbox5"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="shortcuts_edit_button"> @@ -646,9 +657,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox7"> + <object class="GtkBox" id="vbox7"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -665,14 +677,16 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox14"> + <object class="GtkBox" id="vbox14"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox3"> + <object class="GtkBox" id="hbox3"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <property name="homogeneous">True</property> <child> @@ -737,9 +751,10 @@ <property name="can_focus">False</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="focus_delay_hbox"> + <object class="GtkBox" id="focus_delay_hbox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label30"> @@ -755,10 +770,10 @@ </packing> </child> <child> - <object class="GtkHScale" id="focus_delay_scale"> + <object class="GtkScale" id="focus_delay_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment1</property> <property name="draw_value">False</property> </object> @@ -864,9 +879,10 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox8"> + <object class="GtkBox" id="vbox8"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkCheckButton" id="raise_on_focus_check"> @@ -885,9 +901,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox9"> + <object class="GtkBox" id="vbox9"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label19"> @@ -910,9 +927,10 @@ <property name="can_focus">False</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox4"> + <object class="GtkBox" id="hbox4"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label20"> @@ -928,10 +946,10 @@ </packing> </child> <child> - <object class="GtkHScale" id="focus_raise_delay_scale"> + <object class="GtkScale" id="focus_raise_delay_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment2</property> <property name="draw_value">False</property> </object> @@ -1048,9 +1066,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox1"> + <object class="GtkBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -1067,14 +1086,16 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox2"> + <object class="GtkBox" id="vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox8"> + <object class="GtkBox" id="hbox8"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkCheckButton" id="snap_to_border_check"> <property name="label" translatable="yes">To screen _borders</property> @@ -1115,9 +1136,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox5"> + <object class="GtkBox" id="vbox5"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label9"> @@ -1140,9 +1162,10 @@ <property name="can_focus">False</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox1"> + <object class="GtkBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label11"> @@ -1158,10 +1181,10 @@ </packing> </child> <child> - <object class="GtkHScale" id="snap_width_scale"> + <object class="GtkScale" id="snap_width_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment3</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1234,14 +1257,16 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox4"> + <object class="GtkBox" id="vbox4"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox9"> + <object class="GtkBox" id="hbox9"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkCheckButton" id="wrap_workspaces_check"> <property name="label" translatable="yes">With the mouse _pointer</property> @@ -1282,9 +1307,10 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox6"> + <object class="GtkBox" id="vbox6"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label10"> @@ -1308,9 +1334,10 @@ <property name="can_focus">False</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox2"> + <object class="GtkBox" id="hbox2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label13"> @@ -1326,10 +1353,10 @@ </packing> </child> <child> - <object class="GtkHScale" id="wrap_resistance_scale"> + <object class="GtkScale" id="wrap_resistance_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment4</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1402,9 +1429,10 @@ <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox6"> + <object class="GtkBox" id="hbox6"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkCheckButton" id="box_move_check"> <property name="label" translatable="yes">When _moving</property> diff --git a/settings-dialogs/xfwm4-settings.c b/settings-dialogs/xfwm4-settings.c index aeee96262..45daa35c1 100644 --- a/settings-dialogs/xfwm4-settings.c +++ b/settings-dialogs/xfwm4-settings.c @@ -37,6 +37,7 @@ #include <gdk/gdk.h> #include <gdk/gdkx.h> #include <gtk/gtk.h> +#include <gtk/gtkx.h> #include <libxfce4util/libxfce4util.h> #include <libxfce4ui/libxfce4ui.h> @@ -47,6 +48,7 @@ #include "xfwm4-dialog_ui.h" #include "xfwm4-settings.h" +#include "common.h" @@ -132,6 +134,7 @@ static void xfwm_settings_create_indicator (GtkWidget gint y, gint width, gint height); +static gboolean xfwm_settings_title_button_press_event (GtkWidget *widget); static void xfwm_settings_title_button_drag_data (GtkWidget *widget, GdkDragContext *drag_context, GtkSelectionData *data, @@ -235,7 +238,7 @@ static const MenuTemplate title_align_values[] = { static gboolean opt_version = FALSE; -static GdkNativeWindow opt_socket_id = 0; +static Window opt_socket_id = 0; static GOptionEntry opt_entries[] = { { "socket-id", 's', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_INT, &opt_socket_id, N_("Settings manager socket"), N_("SOCKET ID") }, @@ -467,7 +470,7 @@ xfwm_settings_constructed (GObject *object) g_signal_connect (button, "drag_end", G_CALLBACK (xfwm_settings_title_button_drag_end), NULL); g_signal_connect (button, "button_press_event", - G_CALLBACK (xfwm_settings_signal_blocker), NULL); + G_CALLBACK (xfwm_settings_title_button_press_event), NULL); g_signal_connect (button, "enter_notify_event", G_CALLBACK (xfwm_settings_signal_blocker), NULL); g_signal_connect (button, "focus", G_CALLBACK (xfwm_settings_signal_blocker), NULL); @@ -490,7 +493,7 @@ xfwm_settings_constructed (GObject *object) g_signal_connect (button, "drag_end", G_CALLBACK (xfwm_settings_title_button_drag_end), NULL); g_signal_connect (button, "button_press_event", - G_CALLBACK (xfwm_settings_signal_blocker), NULL); + G_CALLBACK (xfwm_settings_title_button_press_event), NULL); g_signal_connect (button, "enter_notify_event", G_CALLBACK (xfwm_settings_signal_blocker), NULL); g_signal_connect (button, "focus", G_CALLBACK (xfwm_settings_signal_blocker), NULL); @@ -514,8 +517,8 @@ xfwm_settings_constructed (GObject *object) /* Set reset button icon */ gtk_button_set_image (GTK_BUTTON (shortcuts_reset_button), - gtk_image_new_from_stock (GTK_STOCK_REVERT_TO_SAVED, - GTK_ICON_SIZE_BUTTON)); + gtk_image_new_from_icon_name ("document-revert", + GTK_ICON_SIZE_BUTTON)); /* Keyboard tab: Shortcuts tree view */ { @@ -842,7 +845,7 @@ xfwm_settings_create_dialog (XfwmSettings *settings) static GtkWidget * xfwm_settings_create_plug (XfwmSettings *settings, - GdkNativeWindow socket_id) + Window socket_id) { GtkWidget *plug; GtkWidget *child; @@ -853,7 +856,7 @@ xfwm_settings_create_plug (XfwmSettings *settings, gtk_widget_show (plug); child = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "plug-child")); - gtk_widget_reparent (child, plug); + xfwm_widget_reparent (child, plug); gtk_widget_show (child); return plug; @@ -944,7 +947,7 @@ main (int argc, g_signal_connect (dialog, "response", G_CALLBACK (xfwm_settings_response), NULL); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); gtk_main (); @@ -956,7 +959,7 @@ main (int argc, g_signal_connect (plug, "delete-event", G_CALLBACK (gtk_main_quit), NULL); /* To prevent the settings dialog to be saved in the session */ - gdk_set_sm_client_id ("FAKE ID"); + gdk_x11_set_sm_client_id ("FAKE ID"); /* Stop startup notification */ gdk_notify_startup_complete (); @@ -1049,13 +1052,14 @@ xfwm_settings_active_frame_drag_data (GtkWidget *widget, guint timestamp, XfwmSettings *settings) { - GtkWidget *source; - GtkWidget *parent; - GtkWidget *active_box; - GList *children; - GList *iter; - gint xoffset; - gint i; + GtkWidget *source; + GtkWidget *parent; + GtkWidget *active_box; + GList *children; + GList *iter; + GtkAllocation allocation; + gint xoffset; + gint i; g_return_if_fail (XFWM_IS_SETTINGS (settings)); @@ -1070,17 +1074,20 @@ xfwm_settings_active_frame_drag_data (GtkWidget *widget, gtk_box_pack_start (GTK_BOX (active_box), source, info == 3, info == 3, 0); g_object_unref (source); - xoffset = widget->allocation.x; + gtk_widget_get_allocation (widget, &allocation); + + xoffset = allocation.x; children = gtk_container_get_children (GTK_CONTAINER (active_box)); for (i = 0, iter = children; iter != NULL; ++i, iter = g_list_next (iter)) - if (GTK_WIDGET_VISIBLE (iter->data)) - if (x < (GTK_WIDGET (iter->data)->allocation.width / 2 + - GTK_WIDGET (iter->data)->allocation.x - xoffset)) - { + if (gtk_widget_get_visible (GTK_WIDGET (iter->data))) + { + gtk_widget_get_allocation (GTK_WIDGET (iter->data), &allocation); + + if (x < allocation.width / 2 + allocation.x - xoffset) break; - } + } g_list_free (children); @@ -1099,17 +1106,22 @@ xfwm_settings_active_frame_drag_motion (GtkWidget *widget, guint timestamp, XfwmSettings *settings) { - GtkWidget *active_box; - GdkWindow *indicator; - GList *children; - GList *iter; - gint xoffset = widget->allocation.x; - gint height; - gint ix; - gint iy; + GtkWidget *active_box; + GdkWindow *indicator; + GList *children; + GList *iter; + GtkAllocation allocation; + gint xoffset; + gint height; + gint ix; + gint iy; g_return_val_if_fail (XFWM_IS_SETTINGS (settings), FALSE); + gtk_widget_get_allocation (widget, &allocation); + + xoffset = allocation.x; + active_box = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "active-box")); children = gtk_container_get_children (GTK_CONTAINER (active_box)); @@ -1117,30 +1129,33 @@ xfwm_settings_active_frame_drag_motion (GtkWidget *widget, ix = INDICATOR_SIZE; for (iter = children; iter != NULL; iter = g_list_next (iter)) { - if (GTK_WIDGET_VISIBLE (iter->data)) + if (gtk_widget_get_visible (GTK_WIDGET (iter->data))) { - if (x < (GTK_WIDGET (iter->data)->allocation.width / 2 + - GTK_WIDGET (iter->data)->allocation.x - xoffset)) + gtk_widget_get_allocation (GTK_WIDGET (iter->data), &allocation); + + if (x < (allocation.width / 2 + allocation.x - xoffset)) { - ix = GTK_WIDGET (iter->data)->allocation.x; + ix = allocation.x; break; } - ix = GTK_WIDGET (iter->data)->allocation.x + GTK_WIDGET (iter->data)->allocation.width; + ix = allocation.x + allocation.width; } } g_list_free (children); + gtk_widget_get_allocation (active_box, &allocation); + ix -= INDICATOR_SIZE / 2 + 1; - iy = active_box->allocation.y - INDICATOR_SIZE / 2 + + iy = allocation.y - INDICATOR_SIZE / 2 + gtk_container_get_border_width (GTK_CONTAINER (active_box)); indicator = g_object_get_data (G_OBJECT (active_box), "indicator_window"); if (G_UNLIKELY (indicator == NULL)) { - height = active_box->allocation.height + INDICATOR_SIZE - + height = allocation.height + INDICATOR_SIZE - gtk_container_get_border_width (GTK_CONTAINER (active_box)) * 2; xfwm_settings_create_indicator (active_box, ix, iy, INDICATOR_SIZE, height); } @@ -1209,11 +1224,11 @@ xfwm_settings_create_indicator (GtkWidget *widget, gint width, gint height) { - GdkWindowAttr attributes; - GdkWindow *indicator; - GdkRegion *shape; - GdkPoint points[9]; - gint attr_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_COLORMAP | GDK_WA_VISUAL; + GdkWindowAttr attributes; + GdkWindow *indicator; + cairo_region_t *shape; + GdkPoint points[9]; + gint attr_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; g_return_if_fail (GTK_IS_WIDGET (widget)); @@ -1225,18 +1240,20 @@ xfwm_settings_create_indicator (GtkWidget *widget, attributes.height = height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); attributes.window_type = GDK_WINDOW_CHILD; attributes.cursor = NULL; attributes.wmclass_name = NULL; attributes.wmclass_class = NULL; attributes.override_redirect = FALSE; + attributes.type_hint = GDK_WINDOW_TYPE_HINT_NORMAL; + + /* TODO implement a new method of displaying DND */ indicator = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attr_mask); gdk_window_set_user_data (indicator, widget); g_object_set_data (G_OBJECT (widget), "indicator_window", indicator); - points[0].x = 0; + /* points[0].x = 0; points[0].y = 0; points[1].x = width; points[1].y = 0; @@ -1256,7 +1273,7 @@ xfwm_settings_create_indicator (GtkWidget *widget, points[8].y = 0; shape = gdk_region_polygon (points, 9, GDK_WINDING_RULE); - gdk_window_shape_combine_region (indicator, shape, 0, 0); + gdk_window_shape_combine_region (indicator, shape, 0, 0);*/ gdk_window_show (indicator); gdk_window_raise (indicator); @@ -1282,6 +1299,23 @@ xfwm_settings_delete_indicator (GtkWidget *widget) +static gboolean +xfwm_settings_title_button_press_event (GtkWidget *widget) +{ + GdkPixbuf *pixbuf; + + g_return_if_fail (GTK_IS_WIDGET (widget)); + + /* set pixbuf before drag begin cause it can be not displayed */ + pixbuf = xfwm_settings_create_icon_from_widget (widget); + gtk_drag_source_set_icon_pixbuf (widget, pixbuf); + g_object_unref (pixbuf); + + return TRUE; +} + + + static void xfwm_settings_title_button_drag_data (GtkWidget *widget, GdkDragContext *drag_context, @@ -1304,14 +1338,8 @@ static void xfwm_settings_title_button_drag_begin (GtkWidget *widget, GdkDragContext *drag_context) { - GdkPixbuf *pixbuf; - g_return_if_fail (GTK_IS_WIDGET (widget)); - pixbuf = xfwm_settings_create_icon_from_widget (widget); - gtk_drag_source_set_icon_pixbuf (widget, pixbuf); - g_object_unref (pixbuf); - gtk_widget_hide (widget); } @@ -1337,14 +1365,16 @@ xfwm_settings_signal_blocker (GtkWidget *widget) static GdkPixbuf * xfwm_settings_create_icon_from_widget (GtkWidget *widget) { - GdkWindow *drawable; + GdkWindow *window; + GtkAllocation allocation; g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); - drawable = GDK_DRAWABLE (gtk_widget_get_parent_window (widget)); - return gdk_pixbuf_get_from_drawable (NULL, drawable, NULL, - widget->allocation.x, widget->allocation.y, 0, 0, - widget->allocation.width, widget->allocation.height); + gtk_widget_get_allocation (widget, &allocation); + window = gtk_widget_get_parent_window (widget); + return gdk_pixbuf_get_from_window (window, + allocation.x, allocation.y, + allocation.width, allocation.height); } @@ -1893,20 +1923,17 @@ static void xfwm_settings_shortcut_reset_clicked (GtkButton *button, XfwmSettings *settings) { - gint response; + gint confirm; g_return_if_fail (XFWM_IS_SETTINGS (settings)); g_return_if_fail (XFCE_IS_SHORTCUTS_PROVIDER (settings->priv->provider)); - response = xfce_message_dialog (NULL, _("Reset to Defaults"), GTK_STOCK_DIALOG_QUESTION, - _("Reset to Defaults"), + confirm = xfce_dialog_confirm (NULL, "gtk-yes", NULL, _("This will reset all shortcuts to their default " "values. Do you really want to do this?"), - GTK_STOCK_NO, GTK_RESPONSE_NO, - GTK_STOCK_YES, GTK_RESPONSE_YES, - NULL); + _("Reset to Defaults")); - if (G_LIKELY (response == GTK_RESPONSE_YES)) + if (confirm) xfce_shortcuts_provider_reset_to_defaults (settings->priv->provider); } diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade index abc351972..af8c37389 100644 --- a/settings-dialogs/xfwm4-tweaks-dialog.glade +++ b/settings-dialogs/xfwm4-tweaks-dialog.glade @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> - <!-- interface-requires gtk+ 2.12 --> - <!-- interface-requires libxfce4ui 4.5 --> + <!-- interface-requires gtk+ 3.20 --> + <!-- interface-requires libxfce4ui-2 4.12 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="upper">100</property> @@ -48,13 +48,15 @@ <property name="type_hint">dialog</property> <property name="subtitle" translatable="yes">Fine-tune window behaviour and effects</property> <child internal-child="vbox"> - <object class="GtkVBox" id="main-vbox"> + <object class="GtkBox" id="main-vbox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area1"> + <object class="GtkButtonBox" id="dialog-action_area1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="button2"> @@ -101,9 +103,10 @@ <property name="can_focus">True</property> <property name="border_width">6</property> <child> - <object class="GtkVBox" id="vbox1"> + <object class="GtkBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -201,9 +204,10 @@ or "skip taskbar" properties set</property> </packing> </child> <child> - <object class="GtkVBox" id="vbox3"> + <object class="GtkBox" id="vbox3"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -239,9 +243,10 @@ or "skip taskbar" properties set</property> </packing> </child> <child> - <object class="GtkVBox" id="prevent_focus_stealing_box"> + <object class="GtkBox" id="prevent_focus_stealing_box"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label11"> @@ -263,9 +268,10 @@ or "skip taskbar" properties set</property> <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox14"> + <object class="GtkBox" id="vbox14"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">6</property> <property name="spacing">6</property> <child> @@ -355,15 +361,17 @@ or "skip taskbar" properties set</property> </packing> </child> <child> - <object class="GtkVBox" id="vbox4"> + <object class="GtkBox" id="vbox4"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox1"> + <object class="GtkBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label7"> @@ -543,9 +551,10 @@ or "skip taskbar" properties set</property> </packing> </child> <child> - <object class="GtkVBox" id="vbox5"> + <object class="GtkBox" id="vbox5"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -631,9 +640,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkVBox" id="vbox6"> + <object class="GtkBox" id="vbox6"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -658,9 +668,10 @@ when switching via keyboard shortcuts</property> <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox2"> + <object class="GtkBox" id="hbox2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label9"> @@ -676,9 +687,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="placement_ratio_scale"> + <object class="GtkScale" id="placement_ratio_scale"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment1</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -712,9 +724,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkVBox" id="default_placement_box"> + <object class="GtkBox" id="default_placement_box"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label27"> @@ -736,9 +749,10 @@ when switching via keyboard shortcuts</property> <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox18"> + <object class="GtkBox" id="vbox18"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">6</property> <property name="spacing">6</property> <child> @@ -809,9 +823,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkVBox" id="vbox7"> + <object class="GtkBox" id="vbox7"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">12</property> <property name="spacing">6</property> <child> @@ -850,9 +865,10 @@ when switching via keyboard shortcuts</property> <property name="bottom_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkVBox" id="vbox8"> + <object class="GtkBox" id="vbox8"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkCheckButton" id="unredirect_overlays_check"> @@ -956,9 +972,10 @@ when switching via keyboard shortcuts</property> <property name="top_padding">2</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox3"> + <object class="GtkBox" id="hbox3"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkLabel" id="label17"> <property name="visible">True</property> @@ -973,10 +990,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="frame_opacity_scale"> + <object class="GtkScale" id="frame_opacity_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment2</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1031,9 +1048,10 @@ when switching via keyboard shortcuts</property> <property name="top_padding">2</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox4"> + <object class="GtkBox" id="hbox4"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkLabel" id="label19"> <property name="visible">True</property> @@ -1048,10 +1066,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="inactive_opacity_scale"> + <object class="GtkScale" id="inactive_opacity_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment3</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1106,9 +1124,10 @@ when switching via keyboard shortcuts</property> <property name="top_padding">2</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox5"> + <object class="GtkBox" id="hbox5"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkLabel" id="label21"> <property name="visible">True</property> @@ -1123,10 +1142,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="move_opacity_scale"> + <object class="GtkScale" id="move_opacity_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment4</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1181,9 +1200,10 @@ when switching via keyboard shortcuts</property> <property name="top_padding">2</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox6"> + <object class="GtkBox" id="hbox6"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkLabel" id="label23"> <property name="visible">True</property> @@ -1198,10 +1218,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="resize_opacity_scale"> + <object class="GtkScale" id="resize_opacity_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment5</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> @@ -1256,9 +1276,10 @@ when switching via keyboard shortcuts</property> <property name="top_padding">2</property> <property name="left_padding">12</property> <child> - <object class="GtkHBox" id="hbox7"> + <object class="GtkBox" id="hbox7"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <child> <object class="GtkLabel" id="label25"> <property name="visible">True</property> @@ -1273,10 +1294,10 @@ when switching via keyboard shortcuts</property> </packing> </child> <child> - <object class="GtkHScale" id="popup_opacity_scale"> + <object class="GtkScale" id="popup_opacity_scale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> + <property name="orientation">horizontal</property> <property name="adjustment">adjustment6</property> <property name="restrict_to_fill_level">False</property> <property name="draw_value">False</property> diff --git a/settings-dialogs/xfwm4-workspace-dialog.glade b/settings-dialogs/xfwm4-workspace-dialog.glade index 7b52d0a30..50852b39d 100644 --- a/settings-dialogs/xfwm4-workspace-dialog.glade +++ b/settings-dialogs/xfwm4-workspace-dialog.glade @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> - <requires lib="gtk+" version="2.20"/> - <!-- interface-requires libxfce4ui 4.5 --> + <requires lib="gtk+" version="3.20"/> + <!-- interface-requires libxfce4ui-2 4.12 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="lower">1</property> @@ -37,9 +37,10 @@ <property name="type_hint">dialog</property> <property name="subtitle" translatable="yes">Configure layout, names and margins</property> <child internal-child="vbox"> - <object class="GtkVBox" id="main-vbox"> + <object class="GtkBox" id="main-vbox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="spacing">2</property> <child> <object class="GtkNotebook" id="plug-child"> @@ -47,9 +48,10 @@ <property name="can_focus">True</property> <property name="border_width">6</property> <child> - <object class="GtkVBox" id="vbox1"> + <object class="GtkBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">6</property> <property name="spacing">6</property> <child> @@ -66,9 +68,10 @@ <property name="bottom_padding">6</property> <property name="left_padding">16</property> <child> - <object class="GtkHBox" id="hbox3"> + <object class="GtkBox" id="hbox3"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label3"> @@ -89,7 +92,7 @@ <object class="GtkSpinButton" id="workspace_count_spinbutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="editable">False</property> + <property name="editable">True</property> <property name="invisible_char">•</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> @@ -187,15 +190,17 @@ </packing> </child> <child> - <object class="GtkVBox" id="vbox2"> + <object class="GtkBox" id="vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">vertical</property> <property name="border_width">6</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox1"> + <object class="GtkBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="spacing">12</property> <child> <object class="GtkImage" id="image1"> @@ -391,9 +396,10 @@ </packing> </child> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area1"> + <object class="GtkButtonBox" id="dialog-action_area1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="orientation">horizontal</property> <property name="layout_style">end</property> <child> <object class="GtkButton" id="button2"> |