ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/clip_macosx.cpp
(Generate patch)

Comparing BasiliskII/src/MacOSX/clip_macosx.cpp (file contents):
Revision 1.6 by asvitkine, 2007-02-18T21:11:41Z vs.
Revision 1.9 by asvitkine, 2010-07-28T21:59:02Z

# Line 1 | Line 1
1   /*
2   *  clip_macosx.cpp - Clipboard handling, MacOS X (Carbon) implementation
3   *
4 < *  Basilisk II (C) 1997-2005 Christian Bauer
4 > *  Basilisk II (C) 1997-2008 Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 19 | Line 19
19   */
20  
21   #include "sysdeps.h"
22 + #define _UINT64
23   #include <Carbon/Carbon.h>
24  
25   #include "clip.h"
# Line 97 | Line 98 | void ClipExit(void)
98  
99   void GetScrap(void **handle, uint32 type, int32 offset)
100   {
101 + #if defined(MAC_OS_X_VERSION_10_6)
102 +        D(bug("GetScrap handle %p, type %08x, offset %d\n", handle, type, offset));
103 +        #warning Carbon scrapbook function have been removed from Mac OS X 10.6+
104 + #else
105          D(bug("GetScrap handle %p, type %08x, offset %d\n", handle, type, offset));
106          ScrapRef theScrap;
107  
# Line 151 | Line 156 | void GetScrap(void **handle, uint32 type
156                          Execute68kTrap(0xa01f, &r);                     // DisposePtr
157                  }
158          }
159 + #endif
160   }
161  
162  
# Line 160 | Line 166 | void GetScrap(void **handle, uint32 type
166  
167   void PutScrap(uint32 type, void *scrap, int32 length)
168   {
169 <        D(bug("PutScrap type %08lx, data %08lx, length %ld\n", type, scrap, length));
169 > #if defined(MAC_OS_X_VERSION_10_6)
170 > #warning Carbon scrapbook function have been removed from Mac OS X 10.6+
171 >        D(bug("PutScrap type %4.4s, data %08lx, length %ld\n", &type, scrap, length));
172 > #else
173 >        static bool clear = true;
174 >        D(bug("PutScrap type %4.4s, data %08lx, length %ld\n", &type, scrap, length));
175          ScrapRef theScrap;
176  
177          if (we_put_this_data) {
178                  we_put_this_data = false;
179 +                clear = true;
180                  return;
181          }
182          if (length <= 0)
183                  return;
184  
185 <        ClearCurrentScrap();
185 >        if (clear) {
186 >                D(bug(" calling ClearCurrentScrap\n"));
187 >                ClearCurrentScrap();
188 >        }
189          if (GetCurrentScrap(&theScrap) != noErr) {
190                  D(bug(" could not open scrap\n"));
191                  return;
# Line 179 | Line 194 | void PutScrap(uint32 type, void *scrap,
194          SwapScrapData(type, scrap, length, TRUE);
195          if (PutScrapFlavor(theScrap, type, kScrapFlavorMaskNone, length, scrap) != noErr) {
196                  D(bug(" could not put to scrap\n"));
197 <                return;
197 >                //return;
198          }
199 +        SwapScrapData(type, scrap, length, FALSE); // swap it back
200 + #endif
201   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines