chiark
/
gitweb
/
~mdw
/
disorder
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
487f69b
)
Set edit menu sensitivity when it is shown rather than when we change tab.
author
Richard Kettlewell
<rjk@greenend.org.uk>
Thu, 12 Jun 2008 10:57:34 +0000
(11:57 +0100)
committer
Richard Kettlewell
<rjk@greenend.org.uk>
Thu, 12 Jun 2008 10:57:34 +0000
(11:57 +0100)
disobedience/client.c
patch
|
blob
|
blame
|
history
disobedience/disobedience.c
patch
|
blob
|
blame
|
history
disobedience/disobedience.h
patch
|
blob
|
blame
|
history
disobedience/menu.c
patch
|
blob
|
blame
|
history
disobedience/queue-generic.c
patch
|
blob
|
blame
|
history
diff --git
a/disobedience/client.c
b/disobedience/client.c
index 283ce8a90176da277153219febdec5987a57b6ff..d81aac2f34c90287204c27a71b13a4c8e859139c 100644
(file)
--- a/
disobedience/client.c
+++ b/
disobedience/client.c
@@
-120,7
+120,6
@@
static void gtkclient_poll(void *u,
static void gtkclient_comms_error(void attribute((unused)) *u,
const char *msg) {
D(("gtkclient_comms_error %s", msg));
static void gtkclient_comms_error(void attribute((unused)) *u,
const char *msg) {
D(("gtkclient_comms_error %s", msg));
- menu_update(-1);
gtk_label_set_text(GTK_LABEL(report_label), msg);
}
gtk_label_set_text(GTK_LABEL(report_label), msg);
}
@@
-148,7
+147,6
@@
static void gtkclient_report(void attribute((unused)) *u,
if(!msg)
/* We're idle - clear the report line */
gtk_label_set_text(GTK_LABEL(report_label), "");
if(!msg)
/* We're idle - clear the report line */
gtk_label_set_text(GTK_LABEL(report_label), "");
- menu_update(-1);
}
/** @brief Repoort an unhandled protocol-level error to the user */
}
/** @brief Repoort an unhandled protocol-level error to the user */
diff --git
a/disobedience/disobedience.c
b/disobedience/disobedience.c
index 818128d84fcafd052c444dd074932d2bca2f494f..80fd389299f26fff9e15535c3ab7b3fb24b270df 100644
(file)
--- a/
disobedience/disobedience.c
+++ b/
disobedience/disobedience.c
@@
-122,7
+122,6
@@
static void tab_switched(GtkNotebook *notebook,
GtkNotebookPage attribute((unused)) *page,
guint page_num,
gpointer attribute((unused)) user_data) {
GtkNotebookPage attribute((unused)) *page,
guint page_num,
gpointer attribute((unused)) user_data) {
- menu_update(page_num);
GtkWidget *const tab = gtk_notebook_get_nth_page(notebook, page_num);
const struct tabtype *const t = g_object_get_data(G_OBJECT(tab), "type");
assert(t != 0);
GtkWidget *const tab = gtk_notebook_get_nth_page(notebook, page_num);
const struct tabtype *const t = g_object_get_data(G_OBJECT(tab), "type");
assert(t != 0);
diff --git
a/disobedience/disobedience.h
b/disobedience/disobedience.h
index e18c0823f8f1262fc61b4905128c1a78e759b9c5..faf7597c3d30bdb128db17527e369b8710f55f67 100644
(file)
--- a/
disobedience/disobedience.h
+++ b/
disobedience/disobedience.h
@@
-180,10
+180,6
@@
void all_update(void);
GtkWidget *menubar(GtkWidget *w);
/* Create the menu bar */
GtkWidget *menubar(GtkWidget *w);
/* Create the menu bar */
-
-void menu_update(int page);
-/* Called whenever the main menu might need to change. PAGE is the current
- * page if known or -1 otherwise. */
void users_set_sensitive(int sensitive);
void users_set_sensitive(int sensitive);
diff --git
a/disobedience/menu.c
b/disobedience/menu.c
index 7cf65c044453b4dc62fdfe007b321ac56ff928ae..abe7005686e6e48c326b11807d3c9b4d4abd4d04 100644
(file)
--- a/
disobedience/menu.c
+++ b/
disobedience/menu.c
@@
-115,19
+115,18
@@
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.
- *
- * TODO: base this on menu popup instead?
*/
*/
-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);
const struct tabtype *t = g_object_get_data(G_OBJECT(tab), "type");
assert(t != 0);
@@
-411,6
+410,14
@@
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");
+ fprintf(stderr, "edit is a %s\n",
+ GTK_OBJECT_TYPE_NAME(edit_widget));
+ 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,
diff --git
a/disobedience/queue-generic.c
b/disobedience/queue-generic.c
index e6971ab60d487b77c3f05d69e618b0d7af6a4691..9c9e549ff2db9f31f6489097e91d6fdd11536f83 100644
(file)
--- a/
disobedience/queue-generic.c
+++ b/
disobedience/queue-generic.c
@@
-495,8
+495,6
@@
void ql_new_queue(struct queuelike *ql,
ql->q = newq;
/* Set the rest of the columns in new rows */
ql_update_list_store(ql);
ql->q = newq;
/* Set the rest of the columns in new rows */
ql_update_list_store(ql);
- /* Update menu sensitivity */
- menu_update(-1);
--suppress_actions;
}
--suppress_actions;
}