[SCM] Audacity debian packaging branch, master, updated. debian/1.3.9-7-8-geb67440
bdrung-guest at users.alioth.debian.org
bdrung-guest at users.alioth.debian.org
Tue Dec 1 22:34:09 UTC 2009
The following commit has been merged in the master branch:
commit 3241d3d5bb74ba5b27ae36c3c2868ba1950c0a12
Author: Benjamin Drung <bdrung at gmail.com>
Date: Tue Dec 1 23:30:45 2009 +0100
Drop backported labeltrack-crash.patch.
diff --git a/debian/patches/labeltrack-crash.patch b/debian/patches/labeltrack-crash.patch
deleted file mode 100644
index 76430b6..0000000
--- a/debian/patches/labeltrack-crash.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Description: Cherry-pick bug from upstream CVS that fixes crashes when
-undoing labeltrack changes.
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/385538
-Forwarded: not-needed
-Origin: upstream, http://audacity.cvs.sourceforge.net/viewvc/audacity/audacity-src/src/LabelTrack.cpp?r1=1.116&r2=1.117
-diff -Nur -x '*.orig' -x '*~' audacity-1.3.9/src/LabelTrack.cpp audacity-1.3.9.new/src/LabelTrack.cpp
---- audacity-1.3.9/src/LabelTrack.cpp 2009-08-31 12:45:38.000000000 +0200
-+++ audacity-1.3.9.new/src/LabelTrack.cpp 2009-10-17 05:02:14.976218354 +0200
-@@ -57,6 +57,97 @@
- #include "Project.h"
- #include "commands/CommandManager.h"
-
-+#if defined(__WXGTK__)
-+// As of wxGTK 2.8.9, there is a problem in the wxClipboard class that
-+// allows recursive event processing. This problem has been corrected
-+// by wxWidgets 2.9+. However, this han't made it into a release yet,
-+// so we have to work around it.
-+//
-+// This is done by pulling/merging in some code from wx29 and creating
-+// the following class to capture events while accessing the clipboard
-+// to prevent the asynchronous clipboard access from causing recursive
-+// event processing.
-+
-+#include <wx/app.h>
-+#include <wx/dynarray.h>
-+
-+#include <gtk/gtk.h>
-+
-+extern GtkWidget *wxGetRootWindow();
-+
-+static void main_do_event(GdkEvent *event, wxArrayPtrVoid *queue)
-+{
-+ switch (event->type)
-+ {
-+ case GDK_NOTHING:
-+ // Ignore it
-+ break;
-+
-+ case GDK_SELECTION_REQUEST:
-+ case GDK_SELECTION_NOTIFY:
-+ case GDK_SELECTION_CLEAR:
-+#if GTK_CHECK_VERSION(2,6,0)
-+ case GDK_OWNER_CHANGE:
-+#endif
-+ // process it now
-+ gtk_main_do_event(event);
-+ break;
-+
-+ default:
-+ // process it later (but make a copy; the caller will free the event pointer)
-+ queue->Add(gdk_event_copy(event));
-+ break;
-+ }
-+
-+ // don't allow idle callbacks while we're active
-+ wxTheApp->SuspendIdleCallback();
-+
-+ return;
-+}
-+
-+class CaptureEvents
-+{
-+ public:
-+ CaptureEvents()
-+ {
-+#if wxUSE_LOG
-+ // disable log flushing from here because a call to wxYield() shouldn't
-+ // normally result in message boxes popping up &c
-+ wxLog::Suspend();
-+#endif
-+
-+ // temporarily replace the global GDK event handler with our function
-+ gdk_event_handler_set((GdkEventFunc)main_do_event, &queue, NULL);
-+
-+ // temporarily suspend idle callbacks
-+ wxTheApp->SuspendIdleCallback();
-+ }
-+
-+ virtual ~CaptureEvents()
-+ {
-+ gdk_event_handler_set((GdkEventFunc)gtk_main_do_event, NULL, NULL);
-+
-+ // put all unprocessed GDK events back in the queue
-+ GdkDisplay* disp = gtk_widget_get_display(wxGetRootWindow());
-+ size_t cnt = queue.GetCount();
-+ for (size_t i = 0; i < cnt; i++) {
-+ GdkEvent* event = (GdkEvent*)queue[i];
-+ // NOTE: gdk_display_put_event makes a copy of the event passed to it
-+ gdk_display_put_event(disp, event);
-+ gdk_event_free(event);
-+ }
-+
-+#if wxUSE_LOG
-+ // let the logs be flashed again
-+ wxLog::Resume();
-+#endif
-+ }
-+
-+ private:
-+ wxArrayPtrVoid queue;
-+};
-+#endif
-+
- wxFont LabelTrack::msFont;
-
- // static member variables.
-@@ -74,13 +165,11 @@
-
- int LabelTrack::mFontHeight=-1;
-
--
- LabelTrack *TrackFactory::NewLabelTrack()
- {
- return new LabelTrack(mDirManager);
- }
-
--
- LabelTrack::LabelTrack(DirManager * projDirManager):
- Track(projDirManager),
- mbHitCenter(false),
-@@ -969,6 +1058,9 @@
-
- // copy data onto clipboard
- if (wxTheClipboard->Open()) {
-+#if defined(__WXGTK__)
-+ CaptureEvents capture;
-+#endif
- wxTheClipboard->SetData(new wxTextDataObject(data));
- wxTheClipboard->Close();
- }
-@@ -1001,6 +1093,9 @@
-
- // copy the data on clipboard
- if (wxTheClipboard->Open()) {
-+#if defined(__WXGTK__)
-+ CaptureEvents capture;
-+#endif
- wxTheClipboard->SetData(new wxTextDataObject(data));
- wxTheClipboard->Close();
- }
-@@ -1021,10 +1116,13 @@
- wxString right=wxT("");
-
- // if text data is available
-- if (wxTheClipboard->IsSupported(wxDF_TEXT)) {
-+ if (IsTextClipSupported()) {
- if (wxTheClipboard->Open()) {
-+#if defined(__WXGTK__)
-+ CaptureEvents capture;
-+#endif
- wxTextDataObject data;
-- wxTheClipboard->GetData( data );
-+ wxTheClipboard->GetData(data);
- wxTheClipboard->Close();
- text = data.GetText();
- }
-@@ -1077,6 +1175,10 @@
- /// @return true if the text data is available in the clipboard, false otherwise
- bool LabelTrack::IsTextClipSupported()
- {
-+#if defined(__WXGTK__)
-+ CaptureEvents capture;
-+#endif
-+
- return wxTheClipboard->IsSupported(wxDF_TEXT);
- }
-
-diff -Nur -x '*.orig' -x '*~' audacity-1.3.9/src/LabelTrack.h audacity-1.3.9.new/src/LabelTrack.h
---- audacity-1.3.9/src/LabelTrack.h 2009-08-31 12:45:38.000000000 +0200
-+++ audacity-1.3.9.new/src/LabelTrack.h 2009-10-17 05:04:33.743726402 +0200
-@@ -129,7 +129,7 @@
- bool CutSelectedText();
- bool CopySelectedText();
- bool PasteSelectedText(double sel0, double sel1);
-- bool IsTextClipSupported();
-+ static bool IsTextClipSupported();
-
- // methods to set flags
- void SetDragXPos(const int d) { mDragXPos = d; };
--
Audacity debian packaging
More information about the pkg-multimedia-commits
mailing list