diff --git a/ChangeLog b/ChangeLog index e5b62a566..c7764c061 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2003-05-29 Ray Strode + + Get and use double-click speed from GtkSettings (Bug #103218). + + * src/ui.c, src/ui.h: + add function meta_ui_get_double_click_timeout for looking up + the global double-click speed. + + * src/display.c, src/display.h: remove double_click_time + field from MetaDisplay and use meta_ui_get_double_click_timeout + instead. + 2003-05-29 Rob Adams * src/main.c (main): chdir to the user's home directory on diff --git a/src/display.c b/src/display.c index eceaa0427..523fa1c66 100644 --- a/src/display.c +++ b/src/display.c @@ -459,7 +459,6 @@ meta_display_open (const char *name) display->window_ids = g_hash_table_new (meta_unsigned_long_hash, meta_unsigned_long_equal); - display->double_click_time = 250; display->last_button_time = 0; display->last_button_xwindow = None; display->last_button_num = 0; @@ -1152,7 +1151,7 @@ event_callback (XEvent *event, /* mark double click events, kind of a hack, oh well. */ if (((int)event->xbutton.button) == display->last_button_num && event->xbutton.window == display->last_button_xwindow && - event->xbutton.time < (display->last_button_time + display->double_click_time)) + event->xbutton.time < (display->last_button_time + meta_ui_get_double_click_timeout ())) { display->is_double_click = TRUE; meta_topic (META_DEBUG_EVENTS, diff --git a/src/display.h b/src/display.h index c73c61593..009566515 100644 --- a/src/display.h +++ b/src/display.h @@ -205,7 +205,6 @@ struct _MetaDisplay Window no_focus_window; /* for double click */ - int double_click_time; Time last_button_time; Window last_button_xwindow; int last_button_num; diff --git a/src/ui.c b/src/ui.c index f140f3508..1a668dde9 100644 --- a/src/ui.c +++ b/src/ui.c @@ -765,3 +765,23 @@ meta_stock_icons_init (void) g_object_unref (G_OBJECT (factory)); } + +int +meta_ui_get_double_click_timeout (void) +{ + GtkSettings *settings; + GObjectClass *klass; + int timeout = 0; + + settings = gtk_settings_get_default (); + + klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings)); + if (g_object_class_find_property (klass, "gtk-double-click-time") == NULL) + { + return 250; + } + + g_object_get (G_OBJECT (settings), "gtk-double-click-time", &timeout, NULL); + + return timeout; +} diff --git a/src/ui.h b/src/ui.h index 5415beddb..171c342d1 100644 --- a/src/ui.h +++ b/src/ui.h @@ -165,7 +165,8 @@ gboolean meta_ui_parse_modifier (const char *accel, gboolean meta_ui_window_is_widget (MetaUI *ui, Window xwindow); +int meta_ui_get_double_click_timeout (void); + #include "tabpopup.h" #endif -