[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