summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx8
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h1
-rw-r--r--src/drivers/X11/Fl_X11_Window_Driver.cxx10
-rw-r--r--src/drivers/X11/Fl_X11_Window_Driver.h1
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();
};