Merge lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad

Proposed by Merlijn Sebrechts
Status: Merged
Merged at revision: 713
Proposed branch: lp:~merlijn-sebrechts/xpad/better_menus
Merge into: lp:xpad
Diff against target: 494 lines (+171/-137)
3 files modified
README (+3/-2)
src/xpad-pad.c (+14/-126)
src/xpad-preferences.c (+154/-9)
To merge this branch: bzr merge lp:~merlijn-sebrechts/xpad/better_menus
Reviewer Review Type Date Requested Status
Arthur Borsboom Pending
Review via email: mp+244712@code.launchpad.net

Description of the change

Implemented changes in menu as per blueprint https://blueprints.launchpad.net/xpad/+spec/xpad-menu-organization

To post a comment you must log in.
Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :
Download full text (25.2 KiB)

Haha... dit dus :)

On 15 December 2014 at 12:45, Merlijn Sebrechts <<email address hidden>
> wrote:
>
> Merlijn Sebrechts has proposed merging
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>
> Requested reviews:
> Arthur Borsboom (arthurborsboom)
> Related bugs:
> Bug #1395889 in Xpad: "Better defaults and simpler menus"
> https://bugs.launchpad.net/xpad/+bug/1395889
>
> For more details, see:
>
> https://code.launchpad.net/~merlijn-sebrechts/xpad/better_menus/+merge/244712
>
> Implemented changes in menu as per blueprint
> https://blueprints.launchpad.net/xpad/+spec/xpad-menu-organization
> --
> You are requested to review the proposed merge of
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>
> === modified file 'src/xpad-pad.c'
> --- src/xpad-pad.c 2014-11-22 12:14:17 +0000
> +++ src/xpad-pad.c 2014-12-15 11:45:07 +0000
> @@ -506,10 +506,6 @@
> gboolean decorations;
> g_object_get (pad->priv->settings, "has-decorations",
> &decorations, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-decorations");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> decorations);
> -
> /*
> * There are two modes of operation: a normal mode and a
> 'stealth' mode.
> * If decorations are disabled, we also don't show up in the
> taskbar or pager.
> @@ -535,12 +531,6 @@
> gboolean has_toolbar, autohide_toolbar;
> g_object_get (pad->priv->settings, "has-toolbar", &has_toolbar,
> "autohide-toolbar", &autohide_toolbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-toolbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> has_toolbar);
> - menu_item = g_object_get_data (G_OBJECT (pad->priv->menu),
> "has-autohide-toolbar");
> - gtk_widget_set_sensitive (menu_item, has_toolbar);
> -
> if (has_toolbar && !autohide_toolbar)
> xpad_pad_show_toolbar (pad);
> else
> @@ -553,10 +543,6 @@
> gboolean autohide_toolbar;
> g_object_get (pad->priv->settings, "autohide-toolbar",
> &autohide_toolbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-autohide-toolbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> autohide_toolbar);
> -
> if (autohide_toolbar)
> {
> /* Likely not to be in pad when turning setting on */
> @@ -579,10 +565,6 @@
> gboolean has_scrollbar;
> g_object_get (pad->priv->settings, "has-scrollbar",
> &has_scrollbar, NULL);
>
> - /* Update pad menu with the new status */
> - GtkWidget *menu_item = g_object_get_data (G_OBJECT
> (pad->priv->menu), "has-scrollbar");
> - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item),
> has_scrollbar);
> -
> if (has_scrollbar)
> gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
> (pad-...

Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :

Hi Merlijn,

The new menus look fine and are according to specification.
I have one request for a change.

The Edit and Close items look a bit out of order.
Would you mind to switch the Edit and Close menu items and ask for another merge?

| New
| Delete
| Close
+ Edit
   | Undo
   | Redo
   ---------
   | Paste
   -----------
   | Layout

718. By Merlijn Sebrechts

Switched edit and close

719. By Merlijn Sebrechts

fixed bug in README

README didn't mention autogen.sh and didn't mention make install should be run as root. Fixed this

Revision history for this message
Merlijn Sebrechts (merlijn-sebrechts) wrote :

I switched edit and close. I also found a bug in the README. It didn't mention autogen.sh, and it didn't mention make install should be run as root.

Revision history for this message
Arthur Borsboom (arthurborsboom) wrote :

Hi Merlijn, Thans for making the change. I will redo the merge and test.

For the README I believe you are partially correct.

Developers have to run the autogen.sh, that is true.
However, the 'ready' packages which users can download at the launchpad
website (https://launchpad.net/xpad) are already prepared. In fact, I do
run the autogen.sh for them when creating this package.

For the make install, I believe you are right. I will add the fact that you
have to run the 'make install' as root. Good point.
Thank you for your help.

Stay tuned. :)

On 21 December 2014 at 12:31, Merlijn Sebrechts <<email address hidden>
> wrote:

> I switched edit and close. I also found a bug in the README. It didn't
> mention autogen.sh, and it didn't mention make install should be run as
> root.
> --
>
> https://code.launchpad.net/~merlijn-sebrechts/xpad/better_menus/+merge/244712
> You are requested to review the proposed merge of
> lp:~merlijn-sebrechts/xpad/better_menus into lp:xpad.
>

--
Arthur Borsboom
Lieven de Keystraat 77
3067 KG, Rotterdam
The Netherlands
Mob: +31629089953
Email: <email address hidden>
Skype: Arthur Borsboom, The Hague, The Netherlands

[image: View Arthur's LinkedIn profile]
<http://uk.linkedin.com/in/arthurborsboom>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'README'
2--- README 2014-11-22 15:21:30 +0000
3+++ README 2014-12-21 11:27:28 +0000
4@@ -7,8 +7,9 @@
5 --------------------------------------------------------------------------
6 INSTALLATION NOTES
7 --------------------------------------------------------------------------
8- To compile, just type "./configure", "make", and "make install".
9- Type "xpad" now to run.
10+ To compile, run "./autogen.sh", which will give you all files to
11+ compile and make the package. Then type "./configure" and "make".
12+ Finally, run "make install" as root. Type "xpad" now to run.
13
14 Read the INSTALL file for more information.
15
16
17=== modified file 'src/xpad-pad.c'
18--- src/xpad-pad.c 2014-11-22 12:14:17 +0000
19+++ src/xpad-pad.c 2014-12-21 11:27:28 +0000
20@@ -506,10 +506,6 @@
21 gboolean decorations;
22 g_object_get (pad->priv->settings, "has-decorations", &decorations, NULL);
23
24- /* Update pad menu with the new status */
25- GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-decorations");
26- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), decorations);
27-
28 /*
29 * There are two modes of operation: a normal mode and a 'stealth' mode.
30 * If decorations are disabled, we also don't show up in the taskbar or pager.
31@@ -535,12 +531,6 @@
32 gboolean has_toolbar, autohide_toolbar;
33 g_object_get (pad->priv->settings, "has-toolbar", &has_toolbar, "autohide-toolbar", &autohide_toolbar, NULL);
34
35- /* Update pad menu with the new status */
36- GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-toolbar");
37- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), has_toolbar);
38- menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-autohide-toolbar");
39- gtk_widget_set_sensitive (menu_item, has_toolbar);
40-
41 if (has_toolbar && !autohide_toolbar)
42 xpad_pad_show_toolbar (pad);
43 else
44@@ -553,10 +543,6 @@
45 gboolean autohide_toolbar;
46 g_object_get (pad->priv->settings, "autohide-toolbar", &autohide_toolbar, NULL);
47
48- /* Update pad menu with the new status */
49- GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-autohide-toolbar");
50- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), autohide_toolbar);
51-
52 if (autohide_toolbar)
53 {
54 /* Likely not to be in pad when turning setting on */
55@@ -579,10 +565,6 @@
56 gboolean has_scrollbar;
57 g_object_get (pad->priv->settings, "has-scrollbar", &has_scrollbar, NULL);
58
59- /* Update pad menu with the new status */
60- GtkWidget *menu_item = g_object_get_data (G_OBJECT (pad->priv->menu), "has-scrollbar");
61- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), has_scrollbar);
62-
63 if (has_scrollbar)
64 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pad->priv->scrollbar),
65 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
66@@ -892,7 +874,7 @@
67 if (!pad->priv->properties)
68 return;
69
70- title = g_strdup_printf (_("'%s' Properties"), gtk_window_get_title (GTK_WINDOW (pad)));
71+ title = g_strdup_printf (_("'%s' Layout"), gtk_window_get_title (GTK_WINDOW (pad)));
72 gtk_window_set_title (GTK_WINDOW (pad->priv->properties), title);
73 g_free (title);
74 }
75@@ -1304,38 +1286,6 @@
76 gtk_widget_override_background_color (pad->priv->textview, GTK_STATE_FLAG_SELECTED, &text_color);
77 }
78
79- /*
80- * Find the sticky notes menu setting for this pad (which is on the global default),
81- * and change its setting to the setting from the info file (pad specific default).
82- */
83- if (GTK_IS_CONTAINER (pad->priv->menu)) {
84- GObject *obj;
85- GList *elem, *children;
86- children = gtk_container_get_children (GTK_CONTAINER (pad->priv->menu));
87-
88- for (elem = children; elem; elem = elem->next) {
89- obj = (GObject *) elem->data;
90-
91- if (GTK_IS_BIN (obj) && GTK_IS_MENU_ITEM (obj)) {
92- GList *elem2, *children2;
93- children2 = gtk_container_get_children (GTK_CONTAINER (gtk_menu_item_get_submenu (GTK_MENU_ITEM(obj))));
94- for(elem2 = children2; elem2; elem2 = elem2->next) {
95- obj = (GObject *) elem2->data;
96- if (GTK_IS_CHECK_MENU_ITEM (obj)) {
97- if (!g_strcmp0(gtk_menu_item_get_label (GTK_MENU_ITEM (obj)), "Show on _All Workspaces")) {
98- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (obj), pad->priv->sticky);
99- break;
100- }
101- }
102- }
103- g_list_free(elem2);
104- }
105- }
106- g_list_free(elem);
107- }
108- else
109- g_warning("For some reason the variable pad->priv->menu is not a container. This results in not having a unique sticky setting for this pad. Falling back to the global sticky setting. Please send a bugreport.");
110-
111 if (pad->priv->sticky)
112 gtk_window_stick (GTK_WINDOW (pad));
113 else
114@@ -1537,45 +1487,6 @@
115 menu_toggle_tag (pad, "strikethrough");
116 }
117
118-/*
119- * Make the pad visually stick to the workspace and save this setting to the individual pad info file,
120- * because this function has been probably been called, because of a menu toggle.
121- */
122-static void
123-menu_sticky (GtkCheckMenuItem *check, XpadPad *pad)
124-{
125- pad->priv->sticky = gtk_check_menu_item_get_active (check);
126- if (pad->priv->sticky)
127- gtk_window_stick (GTK_WINDOW (pad));
128- else
129- gtk_window_unstick (GTK_WINDOW (pad));
130- xpad_pad_save_info_delayed (pad);
131-}
132-
133-static void
134-menu_toolbar (GtkCheckMenuItem *check, XpadPad *pad)
135-{
136- g_object_set (pad->priv->settings, "has-toolbar", gtk_check_menu_item_get_active (check), NULL);
137-}
138-
139-static void
140-menu_scrollbar (GtkCheckMenuItem *check, XpadPad *pad)
141-{
142- g_object_set (pad->priv->settings, "has-scrollbar", gtk_check_menu_item_get_active (check), NULL);
143-}
144-
145-static void
146-menu_autohide (GtkCheckMenuItem *check, XpadPad *pad)
147-{
148- g_object_set (pad->priv->settings, "autohide-toolbar", gtk_check_menu_item_get_active (check), NULL);
149-}
150-
151-static void
152-menu_decorated (GtkCheckMenuItem *check, XpadPad *pad)
153-{
154- g_object_set (pad->priv->settings, "has-decorations", gtk_check_menu_item_get_active (check), NULL);
155-}
156-
157 static gint
158 menu_title_compare (GtkWindow *a, GtkWindow *b)
159 {
160@@ -1625,30 +1536,14 @@
161 menu_get_popup_no_highlight (XpadPad *pad, GtkAccelGroup *accel_group)
162 {
163 GtkWidget *uppermenu, *menu, *item;
164- gboolean has_toolbar, autohide_toolbar, has_scrollbar, decorations;
165-
166- g_object_get (pad->priv->settings,
167- "has-toolbar", &has_toolbar,
168- "autohide-toolbar", &autohide_toolbar,
169- "has-decorations", &decorations,
170- "has-scrollbar", &has_scrollbar, NULL);
171-
172+
173+ /* Upper menu */
174 uppermenu = gtk_menu_new ();
175 gtk_menu_set_accel_group (GTK_MENU (uppermenu), accel_group);
176-
177- /* Pad submenu */
178- item = gtk_menu_item_new_with_mnemonic (_("_Pad"));
179- gtk_container_add (GTK_CONTAINER (uppermenu), item);
180- menu = gtk_menu_new ();
181- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
182+ menu = uppermenu;
183 MENU_ADD (_("_New"), "document-new", GDK_KEY_N, GDK_CONTROL_MASK, xpad_pad_spawn);
184- MENU_ADD_SEP ();
185- MENU_ADD_CHECK (_("Show on _All Workspaces"), pad->priv->sticky, menu_sticky);
186- g_object_set_data (G_OBJECT (uppermenu), "sticky", item);
187- MENU_ADD (_("_Properties"), "document-properties", 0, 0, xpad_pad_open_properties);
188- MENU_ADD_SEP ();
189+ MENU_ADD (_("_Delete"), "edit-delete", GDK_KEY_Delete, GDK_SHIFT_MASK, xpad_pad_delete);
190 MENU_ADD (_("_Close"), "window-close", 0, 0, xpad_pad_close);
191- MENU_ADD (_("_Delete"), "edit-delete", GDK_KEY_Delete, GDK_SHIFT_MASK, xpad_pad_delete);
192
193 /* Edit submenu */
194 item = gtk_menu_item_new_with_mnemonic (_("_Edit"));
195@@ -1662,23 +1557,11 @@
196 MENU_ADD_SEP();
197 MENU_ADD (_("_Paste"), "edit-paste", 0, 0, xpad_pad_paste);
198 g_object_set_data (G_OBJECT (uppermenu), "paste", item);
199- MENU_ADD_SEP ();
200- MENU_ADD (_("_Preferences"), "preferences-system", 0, 0, xpad_pad_open_preferences);
201+ MENU_ADD_SEP();
202+ MENU_ADD (_("_Layout"), "document-properties", 0, 0, xpad_pad_open_properties);
203
204- /* View submenu */
205- item = gtk_menu_item_new_with_mnemonic (_("_View"));
206- gtk_container_add (GTK_CONTAINER (uppermenu), item);
207- menu = gtk_menu_new ();
208- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);
209- MENU_ADD_CHECK (_("_Toolbar"), has_toolbar, menu_toolbar);
210- g_object_set_data (G_OBJECT (uppermenu), "has-toolbar", item);
211- MENU_ADD_CHECK (_("_Autohide Toolbar"), autohide_toolbar, menu_autohide);
212- g_object_set_data (G_OBJECT (uppermenu), "has-autohide-toolbar", item);
213- gtk_widget_set_sensitive (item, has_toolbar);
214- MENU_ADD_CHECK (_("_Scrollbar"), has_scrollbar, menu_scrollbar);
215- g_object_set_data (G_OBJECT (uppermenu), "has-scrollbar", item);
216- MENU_ADD_CHECK (_("_Window Decorations"), decorations, menu_decorated);
217- g_object_set_data (G_OBJECT (uppermenu), "has-decorations", item);
218+ menu = uppermenu;
219+ MENU_ADD_SEP();
220
221 /* Notes submenu - The list of notes will get added in the prep function below */
222 item = gtk_menu_item_new_with_mnemonic (_("_Notes"));
223@@ -1697,6 +1580,11 @@
224 MENU_ADD (_("_Help"), "help-browser", GDK_KEY_F1, 0, show_help);
225 MENU_ADD (_("_About"), "help-about", 0, 0, menu_about);
226
227+ /* Upper menu */
228+ menu = uppermenu;
229+ MENU_ADD_SEP ();
230+ MENU_ADD (_("_Preferences"), "preferences-system", 0, 0, xpad_pad_open_preferences);
231+
232 gtk_widget_show_all (uppermenu);
233
234 return uppermenu;
235
236=== modified file 'src/xpad-preferences.c'
237--- src/xpad-preferences.c 2014-10-02 22:45:34 +0000
238+++ src/xpad-preferences.c 2014-12-21 11:27:28 +0000
239@@ -49,6 +49,10 @@
240 GtkWidget *tray_click_configuration;
241 GtkWidget *editcheck;
242 GtkWidget *confirmcheck;
243+ GtkWidget *has_decorations;
244+ GtkWidget *has_toolbar;
245+ GtkWidget *autohide_toolbar;
246+ GtkWidget *has_scrollbar;
247
248 gulong fontcheck_handler;
249 gulong font_handler;
250@@ -65,6 +69,10 @@
251 gulong tray_click_handler;
252 gulong editcheck_handler;
253 gulong confirmcheck_handler;
254+ gulong has_decorations_handler;
255+ gulong has_toolbar_handler;
256+ gulong autohide_toolbar_handler;
257+ gulong has_scrollbar_handler;
258
259 gulong notify_font_handler;
260 gulong notify_text_handler;
261@@ -79,6 +87,10 @@
262 gulong notify_tray_click_handler;
263 gulong notify_edit_handler;
264 gulong notify_confirm_handler;
265+ gulong notify_has_decorations_handler;
266+ gulong notify_has_toolbar_handler;
267+ gulong notify_autohide_toolbar_handler;
268+ gulong notify_has_scrollbar_handler;
269 };
270
271 G_DEFINE_TYPE_WITH_PRIVATE (XpadPreferences, xpad_preferences, GTK_TYPE_DIALOG)
272@@ -104,6 +116,10 @@
273 static void change_tray_click (GtkComboBox *box, XpadPreferences *pref);
274 static void change_edit_check (GtkToggleButton *button, XpadPreferences *pref);
275 static void change_confirm_check (GtkToggleButton *button, XpadPreferences *pref);
276+static void change_has_decorations (GtkToggleButton *button, XpadPreferences *pref);
277+static void change_has_toolbar (GtkToggleButton *button, XpadPreferences *pref);
278+static void change_autohide_toolbar (GtkToggleButton *button, XpadPreferences *pref);
279+static void change_has_scrollbar (GtkToggleButton *button, XpadPreferences *pref);
280
281 static void notify_fontname (XpadPreferences *pref);
282 static void notify_text_color (XpadPreferences *pref);
283@@ -118,6 +134,10 @@
284 static void notify_tray_click (XpadPreferences *pref);
285 static void notify_edit (XpadPreferences *pref);
286 static void notify_confirm (XpadPreferences *pref);
287+static void notify_has_decorations(XpadPreferences *pref);
288+static void notify_has_toolbar(XpadPreferences *pref);
289+static void notify_autohide_toolbar(XpadPreferences *pref);
290+static void notify_has_scrollbar(XpadPreferences *pref);
291
292 static GtkWidget * create_label (const gchar *label_text);
293
294@@ -169,8 +189,8 @@
295 {
296 XpadPreferences *pref = XPAD_PREFERENCES (object);
297
298- GtkWidget *appearance_frame, *start_frame, *tray_frame, *other_frame, *label, *alignment;
299- GtkBox *font_hbox, *vbox, *hbox, *appearance_vbox, *autostart_vbox, *tray_vbox, *other_vbox;
300+ GtkWidget *view_frame, *appearance_frame, *start_frame, *tray_frame, *other_frame, *label, *alignment;
301+ GtkBox *font_hbox, *vbox, *hbox, *view_vbox, *appearance_vbox, *autostart_vbox, *tray_vbox, *other_vbox;
302 const GdkRGBA *text_color, *back_color;
303 const gchar *fontname;
304 GtkStyleContext *style;
305@@ -178,7 +198,7 @@
306 GtkRequisition req;
307 GdkRGBA theme_text_color = {0, 0, 0, 0}, theme_background_color = {0, 0, 0, 0};
308 guint tray_click_configuration, autostart_delay, autostart_display_pads;
309- gboolean confirm_destroy, edit_lock, autostart_xpad, autostart_wait_systray, autostart_new_pad, autostart_sticky;
310+ gboolean confirm_destroy, edit_lock, autostart_xpad, autostart_wait_systray, autostart_new_pad, autostart_sticky, has_decorations, has_toolbar, autohide_toolbar, has_scrollbar;
311
312 g_object_get (pref->priv->settings,
313 "fontname", &fontname,
314@@ -193,13 +213,61 @@
315 "autostart-sticky", &autostart_sticky,
316 "autostart-delay", &autostart_delay,
317 "autostart-display-pads", &autostart_display_pads,
318+ "has-decorations", &has_decorations,
319+ "has-toolbar", &has_toolbar,
320+ "autohide-toolbar", &autohide_toolbar,
321+ "has-scrollbar", &has_scrollbar,
322 NULL);
323
324 /* create notebook to add pages */
325 pref->priv->notebook = gtk_notebook_new ();
326
327- /* Appearance options */
328- label = create_label (_("Appearance"));
329+ /* View options */
330+ label = create_label (_("View"));
331+
332+ view_vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 20));
333+ gtk_box_set_homogeneous (view_vbox, FALSE);
334+
335+ alignment = gtk_alignment_new (1, 1, 1, 1);
336+ g_object_set (G_OBJECT (alignment),
337+ "left-padding", 12,
338+ "top-padding", 12,
339+ "child", view_vbox,
340+ NULL);
341+ view_frame = GTK_WIDGET (g_object_new (GTK_TYPE_FRAME,
342+ "label-widget", NULL,
343+ "shadow-type", GTK_SHADOW_NONE,
344+ "child", alignment,
345+ NULL));
346+
347+ gtk_notebook_append_page (GTK_NOTEBOOK (pref->priv->notebook), GTK_WIDGET (view_frame), label);
348+
349+ pref->priv->has_toolbar = gtk_check_button_new_with_mnemonic (_("_Show toolbar"));
350+ gtk_box_pack_start (view_vbox, pref->priv->has_toolbar, FALSE, FALSE, 0);
351+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_toolbar), has_toolbar);
352+
353+ pref->priv->autohide_toolbar = gtk_check_button_new_with_mnemonic (_("_Autohide toolbar"));
354+ hbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20));
355+ gtk_box_pack_start (hbox, gtk_alignment_new (1, 1, 1, 1), FALSE, FALSE, 0);
356+ gtk_box_pack_start (hbox, pref->priv->autohide_toolbar, FALSE, FALSE, 0);
357+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autohide_toolbar), autohide_toolbar);
358+ gtk_widget_set_sensitive (pref->priv->autohide_toolbar, has_toolbar);
359+ gtk_box_pack_start (view_vbox, GTK_WIDGET (hbox), FALSE, FALSE, 0);
360+
361+ pref->priv->has_scrollbar = gtk_check_button_new_with_mnemonic (_("_Show scrollbar"));
362+ gtk_box_pack_start (view_vbox, pref->priv->has_scrollbar, FALSE, FALSE, 0);
363+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_scrollbar), has_scrollbar);
364+
365+ pref->priv->autostart_sticky = gtk_check_button_new_with_mnemonic (_("_Show notes on all workspaces"));
366+ gtk_box_pack_start (view_vbox, pref->priv->autostart_sticky, FALSE, FALSE, 0);
367+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_sticky), autostart_sticky);
368+
369+ pref->priv->has_decorations = gtk_check_button_new_with_mnemonic (_("_Show window decorations"));
370+ gtk_box_pack_start (view_vbox, pref->priv->has_decorations, FALSE, FALSE, 0);
371+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_decorations), has_decorations);
372+
373+ /* Layout options */
374+ label = create_label (_("Layout"));
375
376 appearance_vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 20));
377 gtk_box_set_homogeneous (appearance_vbox, FALSE);
378@@ -353,10 +421,6 @@
379 gtk_box_pack_start (autostart_vbox, pref->priv->autostart_new_pad, FALSE, FALSE, 0);
380 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_new_pad), autostart_new_pad);
381
382- pref->priv->autostart_sticky = gtk_check_button_new_with_mnemonic (_("_Pads start on all workspaces"));
383- gtk_box_pack_start (autostart_vbox, pref->priv->autostart_sticky, FALSE, FALSE, 0);
384- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autostart_sticky), autostart_sticky);
385-
386 label = gtk_label_new (_("Delay in seconds"));
387 pref->priv->autostart_delay = gtk_combo_box_text_new();
388 guint i;
389@@ -450,6 +514,11 @@
390 gtk_window_set_title (GTK_WINDOW (pref), _("Xpad Preferences"));
391
392 /* Activate all handlers */
393+ pref->priv->has_decorations_handler = g_signal_connect (pref->priv->has_decorations, "toggled", G_CALLBACK (change_has_decorations), pref);
394+ pref->priv->has_toolbar_handler = g_signal_connect (pref->priv->has_toolbar, "toggled", G_CALLBACK (change_has_toolbar), pref);
395+ pref->priv->autohide_toolbar_handler = g_signal_connect (pref->priv->autohide_toolbar, "toggled", G_CALLBACK (change_autohide_toolbar), pref);
396+ pref->priv->has_scrollbar_handler = g_signal_connect (pref->priv->has_scrollbar, "toggled", G_CALLBACK (change_has_scrollbar), pref);
397+
398 pref->priv->fontcheck_handler = g_signal_connect (pref->priv->fontcheck, "toggled", G_CALLBACK (change_font_check), pref);
399 pref->priv->font_handler = g_signal_connect (pref->priv->fontbutton, "font-set", G_CALLBACK (change_font_face), pref);
400 pref->priv->colorcheck_handler = g_signal_connect (pref->priv->colorcheck, "toggled", G_CALLBACK (change_color_check), pref);
401@@ -468,6 +537,11 @@
402 pref->priv->editcheck_handler = g_signal_connect (pref->priv->editcheck, "toggled", G_CALLBACK (change_edit_check), pref);
403 pref->priv->confirmcheck_handler = g_signal_connect (pref->priv->confirmcheck, "toggled", G_CALLBACK (change_confirm_check), pref);
404
405+ pref->priv->notify_has_decorations_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-decorations", G_CALLBACK (notify_has_decorations), pref);
406+ pref->priv->notify_has_toolbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-toolbar", G_CALLBACK (notify_has_toolbar), pref);
407+ pref->priv->notify_autohide_toolbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::autohide-toolbar", G_CALLBACK (notify_autohide_toolbar), pref);
408+ pref->priv->notify_has_scrollbar_handler = g_signal_connect_swapped (pref->priv->settings, "notify::has-scrollbar", G_CALLBACK (notify_has_scrollbar), pref);
409+
410 pref->priv->notify_font_handler = g_signal_connect_swapped (pref->priv->settings, "notify::fontname", G_CALLBACK (notify_fontname), pref);
411 pref->priv->notify_text_handler = g_signal_connect_swapped (pref->priv->settings, "notify::text-color", G_CALLBACK (notify_text_color), pref);
412 pref->priv->notify_back_handler = g_signal_connect_swapped (pref->priv->settings, "notify::back-color", G_CALLBACK (notify_back_color), pref);
413@@ -737,6 +811,36 @@
414 }
415
416 static void
417+change_has_decorations (GtkToggleButton *button, XpadPreferences *pref)
418+{
419+ g_signal_handler_block (pref->priv->settings, pref->priv->notify_has_decorations_handler);
420+ g_object_set (pref->priv->settings, "has-decorations", gtk_toggle_button_get_active (button), NULL);
421+ g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_has_decorations_handler);
422+}
423+
424+static void
425+change_has_toolbar (GtkToggleButton *button, XpadPreferences *pref)
426+{
427+ g_object_set (pref->priv->settings, "has-toolbar", gtk_toggle_button_get_active (button), NULL);
428+}
429+
430+static void
431+change_autohide_toolbar (GtkToggleButton *button, XpadPreferences *pref)
432+{
433+ g_signal_handler_block (pref->priv->settings, pref->priv->notify_autohide_toolbar_handler);
434+ g_object_set (pref->priv->settings, "autohide-toolbar", gtk_toggle_button_get_active (button), NULL);
435+ g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_autohide_toolbar_handler);
436+}
437+
438+static void
439+change_has_scrollbar (GtkToggleButton *button, XpadPreferences *pref)
440+{
441+ g_signal_handler_block (pref->priv->settings, pref->priv->notify_has_scrollbar_handler);
442+ g_object_set (pref->priv->settings, "has-scrollbar", gtk_toggle_button_get_active (button), NULL);
443+ g_signal_handler_unblock (pref->priv->settings, pref->priv->notify_has_scrollbar_handler);
444+}
445+
446+static void
447 notify_fontname (XpadPreferences *pref)
448 {
449 const gchar *fontname;
450@@ -918,3 +1022,44 @@
451 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->confirmcheck), value);
452 g_signal_handler_unblock (pref->priv->confirmcheck, pref->priv->confirmcheck_handler);
453 }
454+
455+static void
456+notify_has_decorations (XpadPreferences *pref)
457+{
458+ gboolean value;
459+ g_object_get (pref->priv->settings, "has-decorations", &value, NULL);
460+ g_signal_handler_block (pref->priv->has_decorations, pref->priv->has_decorations_handler);
461+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_decorations), value);
462+ g_signal_handler_unblock (pref->priv->has_decorations, pref->priv->has_decorations_handler);
463+}
464+
465+static void
466+notify_has_toolbar (XpadPreferences *pref)
467+{
468+ gboolean value;
469+ g_object_get (pref->priv->settings, "has-toolbar", &value, NULL);
470+ g_signal_handler_block (pref->priv->has_toolbar, pref->priv->has_toolbar_handler);
471+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_toolbar), value);
472+ gtk_widget_set_sensitive (pref->priv->autohide_toolbar, value);
473+ g_signal_handler_unblock (pref->priv->has_toolbar, pref->priv->has_toolbar_handler);
474+}
475+
476+static void
477+notify_autohide_toolbar (XpadPreferences *pref)
478+{
479+ gboolean value;
480+ g_object_get (pref->priv->settings, "autohide-toolbar", &value, NULL);
481+ g_signal_handler_block (pref->priv->autohide_toolbar, pref->priv->autohide_toolbar_handler);
482+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->autohide_toolbar), value);
483+ g_signal_handler_unblock (pref->priv->autohide_toolbar, pref->priv->autohide_toolbar_handler);
484+}
485+
486+static void
487+notify_has_scrollbar (XpadPreferences *pref)
488+{
489+ gboolean value;
490+ g_object_get (pref->priv->settings, "has-scrollbar", &value, NULL);
491+ g_signal_handler_block (pref->priv->has_scrollbar, pref->priv->has_scrollbar_handler);
492+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pref->priv->has_scrollbar), value);
493+ g_signal_handler_unblock (pref->priv->has_scrollbar, pref->priv->has_scrollbar_handler);
494+}

Subscribers

People subscribed via source and target branches