chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make next/prev search result buttons work.
[disorder]
/
disobedience
/
menu.c
diff --git
a/disobedience/menu.c
b/disobedience/menu.c
index b2106ef367ed0ce90d2e4cd5edad942bbe2971b7..73f09091fe4b3f1d231b24c022ae0e4f58590672 100644
(file)
--- a/
disobedience/menu.c
+++ b/
disobedience/menu.c
@@
-58,7
+58,8
@@
static void select_all(gpointer attribute((unused)) callback_data,
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
- t->selectall_activate(tab);
+ if(t->selectall_activate)
+ t->selectall_activate(NULL, t->extra);
}
/** @brief Called when the select none option is activated
}
/** @brief Called when the select none option is activated
@@
-72,7
+73,8
@@
static void select_none(gpointer attribute((unused)) callback_data,
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
- t->selectnone_activate(tab);
+ if(t->selectnone_activate)
+ t->selectnone_activate(NULL, t->extra);
}
/** @brief Called when the track properties option is activated
}
/** @brief Called when the track properties option is activated
@@
-86,7
+88,8
@@
static void properties_item(gpointer attribute((unused)) callback_data,
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
(GTK_NOTEBOOK(tabs), gtk_notebook_current_page(GTK_NOTEBOOK(tabs)));
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
- t->properties_activate(tab);
+ if(t->properties_activate)
+ t->properties_activate(NULL, t->extra);
}
/** @brief Called when the login option is activated */
}
/** @brief Called when the login option is activated */
@@
-112,27
+115,31
@@
static void settings(gpointer attribute((unused)) callback_data,
}
#endif
}
#endif
-/** @brief
Update menu state
+/** @brief
Called when edit menu is shown
*
* Determines option sensitivity according to the current tab and adjusts the
* widgets accordingly. Knows about @ref DISORDER_CONNECTED so the callbacks
* need not.
*/
*
* Determines option sensitivity according to the current tab and adjusts the
* widgets accordingly. Knows about @ref DISORDER_CONNECTED so the callbacks
* need not.
*/
-void menu_update(int page) {
+static void edit_menu_show(GtkWidget attribute((unused)) *widget,
+ gpointer attribute((unused)) user_data) {
if(tabs) {
GtkWidget *tab = gtk_notebook_get_nth_page
(GTK_NOTEBOOK(tabs),
if(tabs) {
GtkWidget *tab = gtk_notebook_get_nth_page
(GTK_NOTEBOOK(tabs),
-
page < 0 ? gtk_notebook_current_page(GTK_NOTEBOOK(tabs)) : page
);
+
gtk_notebook_current_page(GTK_NOTEBOOK(tabs))
);
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
assert(t != 0);
gtk_widget_set_sensitive(properties_widget,
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
assert(t != 0);
gtk_widget_set_sensitive(properties_widget,
- (t->properties_sensitive(tab)
+ (t->properties_sensitive
+ && t->properties_sensitive(t->extra)
&& (disorder_eclient_state(client) & DISORDER_CONNECTED)));
gtk_widget_set_sensitive(selectall_widget,
&& (disorder_eclient_state(client) & DISORDER_CONNECTED)));
gtk_widget_set_sensitive(selectall_widget,
- t->selectall_sensitive(tab));
+ t->selectall_sensitive
+ && t->selectall_sensitive(t->extra));
gtk_widget_set_sensitive(selectnone_widget,
gtk_widget_set_sensitive(selectnone_widget,
- t->selectnone_sensitive(tab));
+ t->selectnone_sensitive
+ && t->selectnone_sensitive(t->extra));
}
}
}
}
@@
-403,6
+410,12
@@
GtkWidget *menubar(GtkWidget *w) {
assert(selectall_widget != 0);
assert(selectnone_widget != 0);
assert(properties_widget != 0);
assert(selectall_widget != 0);
assert(selectnone_widget != 0);
assert(properties_widget != 0);
+
+
+ GtkWidget *edit_widget = gtk_item_factory_get_widget(mainmenufactory,
+ "<GdisorderMain>/Edit");
+ g_signal_connect(edit_widget, "show", G_CALLBACK(edit_menu_show), 0);
+
event_register("rights-changed", menu_rights_changed, 0);
users_set_sensitive(0);
m = gtk_item_factory_get_widget(mainmenufactory,
event_register("rights-changed", menu_rights_changed, 0);
users_set_sensitive(0);
m = gtk_item_factory_get_widget(mainmenufactory,