From 366f4bfbc9e6d71e7b5fccf6d666d5dd3cab600c Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Tue, 19 Apr 2016 06:34:40 +0000 Subject: [PATCH] Move the set_key_window() member function from class Fl_X to class Fl_Cocoa_Window_Driver. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11655 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/mac.H | 2 -- src/Fl_cocoa.mm | 8 ++++---- src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx | 3 ++- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 1 + src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx | 3 +-- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/FL/mac.H b/FL/mac.H index 95a20f767..f23bbf8b7 100644 --- a/FL/mac.H +++ b/FL/mac.H @@ -129,7 +129,6 @@ public: Fl_X *next; // chain of mapped windows static Fl_X* first; static Fl_X* i(const Fl_Window* w) {return (Fl_X*)w->i;} - static int fake_X_wm(const Fl_Window*,int&,int&,int&,int&,int&); static void make(Fl_Window*); static void set_high_resolution(bool); CGRect* subRect() { return subRect_; } // getter @@ -149,7 +148,6 @@ public: static void GLcontext_makecurrent(NSOpenGLContext*); static void GL_cleardrawable(void); void destroy(void); - void set_key_window(void); static CGImageRef CGImage_from_window_rect(Fl_Window *win, int x, int y, int w, int h); static unsigned char *bitmap_from_window_rect(Fl_Window *win, int x, int y, int w, int h, int *bytesPerPixel); private: diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 51d1efaaa..36cdba14d 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1945,11 +1945,11 @@ static void handleUpdateEvent( Fl_Window *window ) } -int Fl_X::fake_X_wm(const Fl_Window* w,int &X,int &Y, int &bt,int &bx, int &by) { +static int fake_X_wm(Fl_Window* w,int &X,int &Y, int &bt,int &bx, int &by) { int W, H, xoff, yoff, dx, dy; int ret = bx = by = bt = 0; if (w->border() && !w->parent()) { - if (w->maxw != w->minw || w->maxh != w->minh) { + if (w->driver()->maxw() != w->driver()->minw() || w->driver()->maxh() != w->driver()->minh()) { ret = 2; } else { ret = 1; @@ -3823,9 +3823,9 @@ static void createAppleMenu(void) } -void Fl_X::set_key_window() +void Fl_Cocoa_Window_Driver::set_key_window() { - [xid makeKeyWindow]; + [fl_xid(pWindow) makeKeyWindow]; } static NSImage *imageFromText(const char *text, int *pwidth, int *pheight) diff --git a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx index 8c3f47d47..d4054affc 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx @@ -19,6 +19,7 @@ #include "../../config_lib.h" #include "Fl_Cocoa_Screen_Driver.H" +#include "Fl_Cocoa_Window_Driver.H" #include "../Quartz/Fl_Font.H" #include #include @@ -167,7 +168,7 @@ void Fl_Cocoa_Screen_Driver::grab(Fl_Window* win) if (win) { if (!Fl::grab_) { fl_capture = Fl_X::i(Fl::first_window())->xid; - Fl_X::i(Fl::first_window())->set_key_window(); + ((Fl_Cocoa_Window_Driver*)Fl::first_window()->driver())->set_key_window(); } Fl::grab_ = win; } else { diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H index 5b0bba2f9..caf705cbe 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H @@ -73,6 +73,7 @@ public: CGContextRef gc; // graphics context NSCursor *cursor; static void q_release_context(Fl_Cocoa_Window_Driver *x = 0); // free all resources associated with gc + void set_key_window(); // --- window data virtual int decorated_w(); diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx index 68389bae9..df1bb114e 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx @@ -53,8 +53,7 @@ Fl_Cocoa_Window_Driver::~Fl_Cocoa_Window_Driver() void Fl_Cocoa_Window_Driver::take_focus() { - Fl_X *x = Fl_X::i(pWindow); - if (x) x->set_key_window(); + set_key_window(); }