diff options
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx | 8 | ||||
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 10 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.h | 1 |
4 files changed, 20 insertions, 0 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx index 06ab4f79d..4a665a871 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx @@ -33,6 +33,14 @@ Fl_Cocoa_Window_Driver::Fl_Cocoa_Window_Driver(Fl_Window *win) } +extern Fl_Window *fl_xfocus; + + +void Fl_Cocoa_Window_Driver::take_focus() +{ + set_key_window(); +} + // // End of "$Id$". diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h index b507e2ec4..b0c756aa1 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h @@ -46,6 +46,7 @@ class FL_EXPORT Fl_Cocoa_Window_Driver : public Fl_Window_Driver { public: Fl_Cocoa_Window_Driver(Fl_Window*); + virtual void take_focus(); }; diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index ccdcfcb5f..f6e748ca8 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -33,6 +33,16 @@ Fl_X11_Window_Driver::Fl_X11_Window_Driver(Fl_Window *win) } +void Fl_X11_Window_Driver::take_focus() +{ + if (!Fl_X::ewmh_supported()) + win->show(); // Old WMs, XMapRaised + else if (x) // New WMs use the NETWM attribute: + Fl_X::activate_window(x->xid); + } +} + + // // End of "$Id$". // diff --git a/src/drivers/X11/Fl_X11_Window_Driver.h b/src/drivers/X11/Fl_X11_Window_Driver.h index b391ab5a1..d6500c5a4 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.h +++ b/src/drivers/X11/Fl_X11_Window_Driver.h @@ -46,6 +46,7 @@ class FL_EXPORT Fl_X11_Window_Driver : public Fl_Window_Driver { public: Fl_X11_Window_Driver(Fl_Window*); + virtual void take_focus(); }; |
