diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 03:58:29 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 03:58:29 +0000 |
commit | 16e0efd89b890932ff32fb612228b48dea4371fa (patch) | |
tree | e8de88cf77fbc568fae0d377392ded1df0cb33f7 /chrome/common/gtk_util.cc | |
parent | 8351861274bcfad6e2c3580f7256d8d863ac4f17 (diff) | |
download | chromium_src-16e0efd89b890932ff32fb612228b48dea4371fa.zip chromium_src-16e0efd89b890932ff32fb612228b48dea4371fa.tar.gz chromium_src-16e0efd89b890932ff32fb612228b48dea4371fa.tar.bz2 |
linux: port Jankometer
Originally I had split it into multiple files, but I think it's
cleaner to just use one.
(I want to use this for measuring plugin jank.)
BUG=8077
Review URL: http://codereview.chromium.org/155194
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20130 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/gtk_util.cc')
-rw-r--r-- | chrome/common/gtk_util.cc | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/chrome/common/gtk_util.cc b/chrome/common/gtk_util.cc index c126cac..e985bf6 100644 --- a/chrome/common/gtk_util.cc +++ b/chrome/common/gtk_util.cc @@ -61,6 +61,79 @@ WindowOpenDisposition DispositionFromEventFlags(guint event_flags) { return false /*event.IsAltDown()*/ ? SAVE_TO_DISK : CURRENT_TAB; } +guint32 GetGdkEventTime(GdkEvent* event) { + // The order of these entries in the switch statement match the GDK enum. + switch (event->type) { + case GDK_NOTHING: + case GDK_DELETE: + case GDK_DESTROY: + case GDK_EXPOSE: + return 0; + + case GDK_MOTION_NOTIFY: + return reinterpret_cast<GdkEventMotion*>(event)->time; + + case GDK_BUTTON_PRESS: + case GDK_2BUTTON_PRESS: + case GDK_3BUTTON_PRESS: + case GDK_BUTTON_RELEASE: + return reinterpret_cast<GdkEventButton*>(event)->time; + + case GDK_KEY_PRESS: + case GDK_KEY_RELEASE: + return reinterpret_cast<GdkEventKey*>(event)->time; + + case GDK_ENTER_NOTIFY: + case GDK_LEAVE_NOTIFY: + return reinterpret_cast<GdkEventCrossing*>(event)->time; + + case GDK_FOCUS_CHANGE: + case GDK_CONFIGURE: + case GDK_MAP: + case GDK_UNMAP: + return 0; + + case GDK_PROPERTY_NOTIFY: + return reinterpret_cast<GdkEventProperty*>(event)->time; + + case GDK_SELECTION_CLEAR: + case GDK_SELECTION_REQUEST: + case GDK_SELECTION_NOTIFY: + return reinterpret_cast<GdkEventSelection*>(event)->time; + + case GDK_PROXIMITY_IN: + case GDK_PROXIMITY_OUT: + return reinterpret_cast<GdkEventProximity*>(event)->time; + + case GDK_DRAG_ENTER: + case GDK_DRAG_LEAVE: + case GDK_DRAG_MOTION: + case GDK_DRAG_STATUS: + case GDK_DROP_START: + case GDK_DROP_FINISHED: + return reinterpret_cast<GdkEventDND*>(event)->time; + + case GDK_CLIENT_EVENT: + case GDK_VISIBILITY_NOTIFY: + case GDK_NO_EXPOSE: + return 0; + + case GDK_SCROLL: + return reinterpret_cast<GdkEventScroll*>(event)->time; + + case GDK_WINDOW_STATE: + case GDK_SETTING: + return 0; + + case GDK_OWNER_CHANGE: + return reinterpret_cast<GdkEventOwnerChange*>(event)->time; + + case GDK_GRAB_BROKEN: + default: + return 0; + } +} + } // namespace event_utils namespace gtk_util { |