diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2010-12-18 06:03:56 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2010-12-18 06:03:56 +0000 |
| commit | 9568768f68b4d97b37fc3da92d5c2f92628e0512 (patch) | |
| tree | 565f7044566ab5cc8466a2302414a65a9ae61ddd /src/widgets/desktop-widget.cpp | |
| parent | Simple first pass for rough timing (diff) | |
| parent | Simple tracking of time to display dialogs and main window. (diff) | |
| download | inkscape-9568768f68b4d97b37fc3da92d5c2f92628e0512.tar.gz inkscape-9568768f68b4d97b37fc3da92d5c2f92628e0512.zip | |
Merge from trunk.
(bzr r9955.1.2)
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
| -rw-r--r-- | src/widgets/desktop-widget.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 57e58cd5e..4620b1532 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -56,6 +56,7 @@ #include "ui/widget/layer-selector.h" #include "ui/widget/selected-style.h" #include "ui/uxmanager.h" +#include "util/ege-appear-time-tracker.h" // We're in the "widgets" directory, so no need to explicitly prefix these: #include "button.h" @@ -73,6 +74,7 @@ using Inkscape::round; using Inkscape::UnitTracker; using Inkscape::UI::UXManager; using Inkscape::UI::ToolboxFactory; +using ege::AppearTimeTracker; #ifdef WITH_INKBOARD #endif @@ -267,6 +269,8 @@ SPDesktopWidget::window_get_pointer() return Geom::Point(x,y); } +static GTimer *overallTimer = 0; + /** * Registers SPDesktopWidget class and returns its type number. */ @@ -288,6 +292,8 @@ GType SPDesktopWidget::getType(void) 0 // value_table }; type = g_type_register_static(SP_TYPE_VIEW_WIDGET, "SPDesktopWidget", &info, static_cast<GTypeFlags>(0)); + // Begin a timer to watch for the first desktop to appear on-screen + overallTimer = g_timer_new(); } return type; } @@ -592,29 +598,19 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_widget_grab_focus (GTK_WIDGET(dtw->canvas)); - { - g_message("FIRE UP"); - - gtk_widget_add_events( eventbox, GDK_STRUCTURE_MASK ); - - gboolean fooMap(GtkWidget *widget, GdkEvent *event, gpointer userData); - g_signal_connect( G_OBJECT(eventbox), "map-event", G_CALLBACK(fooMap), dtw ); - - void fooReal(GtkWidget *widget, gpointer userData); - g_signal_connect( G_OBJECT(eventbox), "map-event", G_CALLBACK(fooReal), dtw ); + // If this is the first desktop created, report the time it takes to show up + if ( overallTimer ) { + if ( prefs->getBool("/dialogs/debug/trackAppear", false) ) { + // Time tracker takes ownership of the timer. + AppearTimeTracker *tracker = new AppearTimeTracker(overallTimer, GTK_WIDGET(dtw), "first SPDesktopWidget"); + tracker->setAutodelete(true); + } else { + g_timer_destroy(overallTimer); + } + overallTimer = 0; } } -gboolean fooMap(GtkWidget *widget, GdkEvent *event, gpointer userData) { - checkTime( "MAP"); - return FALSE; -} - -void fooReal(GtkWidget *widget, gpointer userData) -{ - checkTime("REALIZE"); -} - /** * Called before SPDesktopWidget destruction. */ |
