[Pkg-wmaker-commits] [wmshutdown] 143/173: wmshutdown.c: Restore original g_signal_connect() code for dialog buttons; new gtk_dialog_run() code was buggy.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Tue Aug 25 02:46:49 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch master
in repository wmshutdown.
commit 6bc466c83e14ea630b370ec57abab242d6f811f7
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date: Mon Oct 27 19:18:54 2014 -0500
wmshutdown.c: Restore original g_signal_connect() code for dialog buttons; new
gtk_dialog_run() code was buggy.
In particular, if a dbus error occurred, further clicks would do nothing.
---
wmshutdown.c | 47 +++++++++++++++++++++++++++++------------------
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/wmshutdown.c b/wmshutdown.c
index 8e45e0a..0d4cd43 100644
--- a/wmshutdown.c
+++ b/wmshutdown.c
@@ -99,11 +99,13 @@ void fecha(void) {
dialog = NULL;
}
-void handle_click(GtkWidget *widget, char *method) {
+void handle_click(GtkWidget *widget, gpointer data) {
GDBusConnection *connection;
GDBusMessage *message, *reply;
GError *error = NULL;
+ gchar *method = (gchar *)data;
+
connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
message = g_dbus_message_new_method_call(
NULL,
@@ -141,7 +143,9 @@ void handle_click(GtkWidget *widget, char *method) {
void button_press(GtkWidget *widget, GdkEvent *event) {
GtkWidget *label;
- gint result;
+ GtkWidget *halt_button;
+ GtkWidget *reboot_button;
+ GtkWidget *cancel_button;
GdkEventButton *bevent = (GdkEventButton *)event;
switch (bevent->button) {
@@ -153,28 +157,35 @@ void button_press(GtkWidget *widget, GdkEvent *event) {
gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(
GTK_DIALOG(dialog))),
label);
- gtk_widget_show(label);
+
gtk_dialog_add_buttons(GTK_DIALOG(dialog),
"Halt", GTK_RESPONSE_HALT,
"Reboot", GTK_RESPONSE_REBOOT,
"Cancel", GTK_RESPONSE_CANCEL, NULL);
+ halt_button = gtk_dialog_get_widget_for_response(
+ GTK_DIALOG(dialog),
+ GTK_RESPONSE_HALT);
+ reboot_button = gtk_dialog_get_widget_for_response(
+ GTK_DIALOG(dialog),
+ GTK_RESPONSE_REBOOT);
+ cancel_button = gtk_dialog_get_widget_for_response(
+ GTK_DIALOG(dialog),
+ GTK_RESPONSE_CANCEL);
g_signal_connect(dialog, "destroy", G_CALLBACK(fecha), NULL);
-
- result = gtk_dialog_run(GTK_DIALOG (dialog));
- switch (result) {
- case GTK_RESPONSE_HALT:
- handle_click(dialog, HALT_METHOD);
- break;
- case GTK_RESPONSE_REBOOT:
- handle_click(dialog, REBOOT_METHOD);
- break;
- case GTK_RESPONSE_CANCEL:
- fecha();
- break;
- default:
- break;
- }
+ g_signal_connect(cancel_button,
+ "clicked",
+ G_CALLBACK(fecha),
+ (gpointer) dialog);
+ g_signal_connect(halt_button,
+ "clicked",
+ G_CALLBACK(handle_click),
+ HALT_METHOD);
+ g_signal_connect(reboot_button,
+ "clicked",
+ G_CALLBACK(handle_click),
+ REBOOT_METHOD);
+ gtk_widget_show_all(dialog);
default:
break;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmshutdown.git
More information about the Pkg-wmaker-commits
mailing list