Stop using dynamic_cast when performing text drag (Mac OS only).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10536 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
b8b89178da
commit
64ffd414d6
1
FL/mac.H
1
FL/mac.H
@ -186,6 +186,7 @@ public:
|
||||
static int insertion_point_location(int *px, int *py, int *pheight); // computes window coordinates & height of insertion point
|
||||
static const int CoreText_threshold; // Mac OS version from which the Core Text API is used to display text
|
||||
static Fl_Fontdesc* calc_fl_fonts(void); // computes the fl_fonts global variable
|
||||
static int dnd(int use_selection); // call Fl_X::dnd(1) to support text dragging
|
||||
private:
|
||||
#if FLTK_ABI_VERSION >= 10304
|
||||
CGRect* subRect_; // makes sure subwindow remains inside its parent window
|
||||
|
||||
@ -678,7 +678,12 @@ int Fl_Input::handle(int event) {
|
||||
dnd_save_mark = mark();
|
||||
dnd_save_focus = this;
|
||||
// drag the data:
|
||||
copy(0); Fl::dnd();
|
||||
copy(0);
|
||||
#ifdef __APPLE__
|
||||
Fl_X::dnd(1);
|
||||
#else
|
||||
Fl::dnd();
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3863,7 +3863,11 @@ int Fl_Text_Display::handle(int event) {
|
||||
if (dragType==DRAG_START_DND) {
|
||||
if (!Fl::event_is_click() && Fl::dnd_text_ops()) {
|
||||
const char* copy = buffer()->selection_text();
|
||||
#ifdef __APPLE__
|
||||
Fl_X::dnd(1);
|
||||
#else
|
||||
Fl::dnd();
|
||||
#endif
|
||||
free((void*)copy);
|
||||
}
|
||||
return 1;
|
||||
|
||||
@ -4001,7 +4001,12 @@ static NSImage *defaultDragImage(int *pwidth, int *pheight)
|
||||
return image;
|
||||
}
|
||||
|
||||
int Fl::dnd(void)
|
||||
int Fl::dnd()
|
||||
{
|
||||
return Fl_X::dnd(0);
|
||||
}
|
||||
|
||||
int Fl_X::dnd(int use_selection)
|
||||
{
|
||||
CFDataRef text = CFDataCreate(kCFAllocatorDefault, (UInt8*)fl_selection_buffer[0], fl_selection_length[0]);
|
||||
if (text==NULL) return false;
|
||||
@ -4018,7 +4023,7 @@ int Fl::dnd(void)
|
||||
|
||||
int width, height;
|
||||
NSImage *image;
|
||||
if ( dynamic_cast<Fl_Input_*>(w) != NULL || dynamic_cast<Fl_Text_Display*>(w) != NULL) {
|
||||
if (use_selection) {
|
||||
fl_selection_buffer[0][ fl_selection_length[0] ] = 0;
|
||||
image = imageFromText(fl_selection_buffer[0], &width, &height);
|
||||
} else {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user