summaryrefslogtreecommitdiff
path: root/gui/gdmconfig.c
diff options
context:
space:
mode:
authorGeorge Lebl <jirka@5z.com>2001-05-14 09:14:36 +0000
committerGeorge Lebl <jirka@src.gnome.org>2001-05-14 09:14:36 +0000
commited0f1ebeefe5af52a4d325e8099e6640a4a86c28 (patch)
tree348a72895a70e06617da0924b2565fc334421a73 /gui/gdmconfig.c
parent019f0ac6021fbe7b28eff1a21c2eab87240a95b5 (diff)
downloadgdm-ed0f1ebeefe5af52a4d325e8099e6640a4a86c28.tar.gz
define RUNNING_UNDER_GDM for gdmlogin and gdmconfig
Mon May 14 02:15:06 2001 George Lebl <jirka@5z.com> * daemon/slave.c: define RUNNING_UNDER_GDM for gdmlogin and gdmconfig * gui/gdmlogin.c, gui/gdmconfig.c: When RUNNING_UNDER_GDM is defined we treat button click 3 like 1 since the user could be left handed but has not yet logged in.
Diffstat (limited to 'gui/gdmconfig.c')
-rw-r--r--gui/gdmconfig.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/gui/gdmconfig.c b/gui/gdmconfig.c
index fbfc2918..3c6c43da 100644
--- a/gui/gdmconfig.c
+++ b/gui/gdmconfig.c
@@ -139,6 +139,29 @@ void gdm_radio_write (gchar *radio_base_name,
}
}
+static gboolean
+gdm_event (GtkObject *object,
+ guint signal_id,
+ guint n_params,
+ GtkArg *params,
+ gpointer data)
+{
+ /* HAAAAAAAAAAAAAAAAACK */
+ /* Since the user has not logged in yet and may have left/right
+ * mouse buttons switched, we just translate every right mouse click
+ * to a left mouse click */
+ GdkEvent *event = GTK_VALUE_POINTER(params[0]);
+ if ((event->type == GDK_BUTTON_PRESS ||
+ event->type == GDK_2BUTTON_PRESS ||
+ event->type == GDK_3BUTTON_PRESS ||
+ event->type == GDK_BUTTON_RELEASE)
+ && event->button.button == 3)
+ event->button.button = 1;
+
+ return TRUE;
+}
+
+
int
main (int argc, char *argv[])
@@ -272,6 +295,16 @@ main (int argc, char *argv[])
gtk_widget_set_sensitive(GTK_WIDGET(get_widget("apply_button")), FALSE);
gtk_widget_show (GDMconfigurator);
+
+ /* If we are running under gdm and not in a normal session we want to
+ * treat the right mouse button like the first */
+ if (g_getenv ("RUNNING_UNDER_GDM") != NULL) {
+ guint sid = gtk_signal_lookup ("event",
+ GTK_TYPE_WIDGET);
+ gtk_signal_add_emission_hook (sid,
+ gdm_event,
+ NULL);
+ }
gtk_main ();
return 0;