diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-04-02 23:33:47 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-04-02 23:33:47 +0000 |
commit | b52b326d5f34b09af70e9f277a43b48c5bf3be2d (patch) | |
tree | 2593b2dffad11ac442a89514a39988d75e53701d /gdk/gdkevents.c | |
parent | 0aef43bcbcb208d7419711ffd48dd7942d538952 (diff) | |
download | gtk+-b52b326d5f34b09af70e9f277a43b48c5bf3be2d.tar.gz |
Add GdkEventSetting event for notification of changes to system settings,
Mon Apr 2 18:18:07 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkevents.h: Add GdkEventSetting event for notification
of changes to system settings, gdk_setting_get() to retrieve
a single system setting.
* gdk/x11/gdkevents-x11.c: Bridge gdk_setting_get() and GdkEventSetting
to the draft XSETTINGS mechanism.
* gdk/x11/xsettings-{common,client}.[ch]: Sample-implementation of
XSETTINGS.
* gtk/gtkmain.c gtk/gtksettings.[ch]: Propagate notification
of GDK settings changes to the GtkSettings object.
* gdk/gdkevents.[ch] gdk/gtk/gtksettings.c: Hook up the
double-click-timeout property to GDK.
* gdk/gdkcolor.[ch] gdk/gdkvisual.h gdk/gdkevent.[ch] gdk/gdkfont.[ch]:
Define GDK boxed types here.
* gdk/Makefile.am gdk/makeenums.pl: Generate source files
gdk/gdkenumtypes.[ch] for enum definitions.
* gtk/gtkcompat.h: Add defines for GTK_TYPE_GDK_*
* gtk/gtk-boxed.defs: Comment out GDK types
* gtk/gtktypeutils.h: Remove GDK types
* gtk/Makefile.am: No longer scan GDK headers for enumerataions
Diffstat (limited to 'gdk/gdkevents.c')
-rw-r--r-- | gdk/gdkevents.c | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index 92972578c7..2f86c5aa15 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -30,11 +30,6 @@ typedef struct _GdkIOClosure GdkIOClosure; typedef struct _GdkEventPrivate GdkEventPrivate; -#define DOUBLE_CLICK_TIME 250 -#define TRIPLE_CLICK_TIME 500 -#define DOUBLE_CLICK_DIST 5 -#define TRIPLE_CLICK_DIST 5 - typedef enum { /* Following flag is set for events on the event queue during @@ -84,6 +79,11 @@ GDestroyNotify gdk_event_notify = NULL; GPollFD event_poll_fd; +static guint double_click_time = 250; +#define TRIPLE_CLICK_TIME (2*double_click_time) +#define DOUBLE_CLICK_DIST 5 +#define TRIPLE_CLICK_DIST 5 + /********************************************* * Functions for maintaining the event queue * *********************************************/ @@ -326,7 +326,12 @@ gdk_event_copy (GdkEvent *event) if (event->expose.region) new_event->expose.region = gdk_region_copy (event->expose.region); break; - default: + + case GDK_SETTING: + new_event->setting.name = g_strdup (new_event->setting.name); + break; + + default: break; } @@ -399,6 +404,10 @@ gdk_event_free (GdkEvent *event) g_free (event->motion.axes); break; + case GDK_SETTING: + g_free (event->setting.name); + break; + default: break; } @@ -464,6 +473,7 @@ gdk_event_get_time (GdkEvent *event) case GDK_MAP: case GDK_UNMAP: case GDK_WINDOW_STATE: + case GDK_SETTING: /* return current time */ break; } @@ -540,6 +550,7 @@ gdk_event_get_state (GdkEvent *event, case GDK_MAP: case GDK_UNMAP: case GDK_WINDOW_STATE: + case GDK_SETTING: /* no state field */ break; } @@ -791,7 +802,7 @@ gdk_event_button_generate (GdkEvent *event) button_number[1] = -1; button_number[0] = -1; } - else if ((event->button.time < (button_click_time[0] + DOUBLE_CLICK_TIME)) && + else if ((event->button.time < (button_click_time[0] + double_click_time)) && (event->button.window == button_window[0]) && (event->button.button == button_number[0])) { @@ -867,3 +878,22 @@ gdk_synthesize_window_state (GdkWindow *window, } } +void +gdk_set_double_click_time (guint msec) +{ + double_click_time = msec; +} + +GType +gdk_event_get_type (void) +{ + static GType our_type = 0; + + if (our_type == 0) + our_type = g_boxed_type_register_static ("GdkEvent", + NULL, + (GBoxedCopyFunc)gdk_event_copy, + (GBoxedFreeFunc)gdk_event_free, + FALSE); + return our_type; +} |