diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-12-10 10:19:54 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-12-10 10:19:54 +0100 |
| commit | df059de37e776874cf1fbe303141764f1c8fc34e (patch) | |
| tree | e54559716865161449627732a9ca5dff43f6b36d | |
| parent | e72fa007e7468a5c4e73533a93fa929650f94013 (diff) | |
"Public members Fl::awake_ring_*_ should be private" (#559) - cont'd
| -rw-r--r-- | FL/Fl.H | 2 | ||||
| -rw-r--r-- | src/Fl_System_Driver.H | 1 | ||||
| -rw-r--r-- | src/Fl_lock.cxx | 7 | ||||
| -rw-r--r-- | src/Fl_win32.cxx | 4 |
4 files changed, 9 insertions, 5 deletions
@@ -135,6 +135,7 @@ typedef void (*Fl_Clipboard_Notify_Handler)(int source, void *data); state information and global methods for the current application. */ class FL_EXPORT Fl { + friend Fl_System_Driver; Fl() {} // no constructor! private: @@ -310,7 +311,6 @@ private: static int awake_ring_head_; static int awake_ring_tail_; public: - static bool equal_awake_ring_ends(); static const char* scheme_; static Fl_Image* scheme_bg_; diff --git a/src/Fl_System_Driver.H b/src/Fl_System_Driver.H index b1901b133..42e2a9815 100644 --- a/src/Fl_System_Driver.H +++ b/src/Fl_System_Driver.H @@ -63,6 +63,7 @@ protected: // implement once for each platform static Fl_System_Driver *newSystemDriver(); Fl_System_Driver(); + static bool awake_ring_empty(); public: virtual ~Fl_System_Driver(); static int command_key; diff --git a/src/Fl_lock.cxx b/src/Fl_lock.cxx index 3aea98d95..fdf045be9 100644 --- a/src/Fl_lock.cxx +++ b/src/Fl_lock.cxx @@ -201,8 +201,11 @@ void Fl::unlock() { #ifndef FL_DOXYGEN -bool Fl::equal_awake_ring_ends() { - return awake_ring_head_ == Fl::awake_ring_tail_; +bool Fl_System_Driver::awake_ring_empty() { + Fl::system_driver()->lock_ring(); + bool retval = (Fl::awake_ring_head_ == Fl::awake_ring_tail_); + Fl::system_driver()->unlock_ring(); + return retval; } #endif // FL_DOXYGEN diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index e613e359e..ebe5355f1 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -491,7 +491,7 @@ double Fl_WinAPI_System_Driver::wait(double time_to_wait) { DispatchMessageW(&fl_msg); } - // The following conditional test: !Fl::equal_awake_ring_ends() + // The following conditional test: !Fl_System_Driver::awake_ring_empty() // equivalent to: // (Fl::awake_ring_head_ != Fl::awake_ring_tail_) // is a workaround / fix for STR #3143. This works, but a better solution @@ -512,7 +512,7 @@ double Fl_WinAPI_System_Driver::wait(double time_to_wait) { // recover and process any pending awake callbacks. // Normally the ring buffer head and tail indices will match and this // comparison will do nothing. Addresses STR #3143 - if (!Fl::equal_awake_ring_ends()) { + if (!Fl_System_Driver::awake_ring_empty()) { process_awake_handler_requests(); } |
