FLTK logo

[master] b75d752 - Simplify Fl_Window_Driver::screen_num() member functions.

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] b75d752 - Simplify Fl_Window_Driver::screen_num() member functions. "ManoloFLTK" Sep 01, 2022  
 
commit b75d7526fde03a9a831fd21afa38efeaa5d55a24
Author:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Thu Sep 1 11:55:41 2022 +0200
Commit:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Thu Sep 1 11:55:41 2022 +0200

    Simplify Fl_Window_Driver::screen_num() member functions.

 src/Fl_Window_Driver.H                           |  7 ++++---
 src/Fl_Window_Driver.cxx                         |  7 +++++--
 src/Fl_x.cxx                                     |  2 ++
 src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H       |  3 ---
 src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx     |  9 ---------
 src/drivers/Wayland/Fl_Wayland_Window_Driver.H   |  3 ---
 src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx |  8 --------
 src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H     |  3 ---
 src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx   | 11 -----------
 src/drivers/X11/Fl_X11_Window_Driver.H           |  3 ---
 src/drivers/X11/Fl_X11_Window_Driver.cxx         |  8 --------
 11 files changed, 11 insertions(+), 53 deletions(-)

diff --git src/Fl_Window_Driver.H src/Fl_Window_Driver.H
index 03333c9..ddc2100 100644
--- src/Fl_Window_Driver.H
+++ src/Fl_Window_Driver.H
@@ -43,7 +43,7 @@ class Fl_RGB_Image;
 
  This class is only for internal use by the FLTK library.
 
- When porting FLTK to a new platform, many mothods in this class provide
+ When porting FLTK to a new platform, many methods in this class provide
  a minimal default implementation. Some methods must be overridden to make
  sure that the Graphics Driver will draw into the bitmap associated with
  this window.
@@ -56,6 +56,7 @@ private:
 
 protected:
   Fl_Window *pWindow;
+  int screen_num_; // number of screen where window is mapped
   void flush_Fl_Window(); // accessor to protected Fl_Window::flush()
 public:
   Fl_Window_Driver(Fl_Window *);
@@ -65,8 +66,8 @@ public:
   static Fl_Window *find(fl_uintptr_t xid);
   int wait_for_expose_value;
   Fl_Offscreen other_xid; // offscreen bitmap (overlay and double-buffered windows)
-  virtual int screen_num();
-  virtual void screen_num(int) {}
+  int screen_num();
+  void screen_num(int n) { screen_num_ = n; }
 
 
   // --- frequently used accessors to public window data
diff --git src/Fl_Window_Driver.cxx src/Fl_Window_Driver.cxx
index a9faa32..dbd9c4d 100644
--- src/Fl_Window_Driver.cxx
+++ src/Fl_Window_Driver.cxx
@@ -41,6 +41,7 @@ Fl_Window_Driver::Fl_Window_Driver(Fl_Window *win)
   : pWindow(win) {
   wait_for_expose_value = 0;
   other_xid = 0;
+  screen_num_ = 0;
 }
 
 
@@ -219,8 +220,10 @@ void Fl_Window_Driver::wait_for_expose() {
 }
 
 int Fl_Window_Driver::screen_num() {
-  if (pWindow->parent()) return Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
-  return Fl::screen_num(x(), y(), w(), h());
+  if (pWindow->parent()) {
+    screen_num_ = Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
+  }
+  return screen_num_ >= 0 ? screen_num_ : 0;
 }
 
 bool Fl_Window_Driver::is_a_rescale_ = false;
diff --git src/Fl_x.cxx src/Fl_x.cxx
index 8b839c6..bc2a534 100644
--- src/Fl_x.cxx
+++ src/Fl_x.cxx
@@ -2047,6 +2047,8 @@ int fl_handle(const XEvent& thisevent)
       }
       wd->screen_num(num);
     }
+#else // ! USE_XFT
+    Fl_Window_Driver::driver(window)->screen_num( Fl::screen_num(X, Y, W, H) );
 #endif // USE_XFT
 
     // tell Fl_Window about it and set flag to prevent echoing:
diff --git src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H
index 63b26ed..ce3b156 100644
--- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H
+++ src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H
@@ -85,7 +85,6 @@ private:
   // stores 3 binary flags: whether window is mapped to retina display; whether resolution just changed;
   // whether window's view received the [FLView view_did_resize] message
   unsigned window_flags_;
-  int screen_num_; // number of screen where window is mapped
 public:
   Fl_Cocoa_Window_Driver(Fl_Window*);
   ~Fl_Cocoa_Window_Driver();
@@ -134,8 +133,6 @@ public:
   virtual void size_range();
   virtual void iconize();
   virtual void decoration_sizes(int *top, int *left,  int *right, int *bottom);
-  virtual int screen_num();
-  virtual void screen_num(int n);
   // --- window cursor stuff
   virtual int set_cursor(Fl_Cursor);
   virtual int set_cursor(const Fl_RGB_Image*, int, int);
diff --git src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
index 019e2b7..2acde86 100644
--- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
+++ src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
@@ -330,15 +330,6 @@ void Fl_Cocoa_Window_Driver::capture_titlebar_and_borders(Fl_RGB_Image*& top, Fl
   CGContextRelease(auxgc);
 }
 
-void Fl_Cocoa_Window_Driver::screen_num(int n) {
-  screen_num_ = n;
-}
-
-int Fl_Cocoa_Window_Driver::screen_num() {
-  if (pWindow->parent()) return pWindow->top_window()->screen_num();
-  else return screen_num_;
-}
-
 
 FLWindow *fl_mac_xid(const Fl_Window *win) {
   return (FLWindow*)Fl_Window_Driver::xid(win);
diff --git src/drivers/Wayland/Fl_Wayland_Window_Driver.H src/drivers/Wayland/Fl_Wayland_Window_Driver.H
index a419fa5..5bd73ab 100644
--- src/drivers/Wayland/Fl_Wayland_Window_Driver.H
+++ src/drivers/Wayland/Fl_Wayland_Window_Driver.H
@@ -74,8 +74,6 @@ public:
     bool busy;
   };
   static type_for_resize_window_between_screens data_for_resize_window_between_screens_;
-  int screen_num_;
-  void screen_num(int n) { screen_num_ = n; }
   void decorated_win_size(int &w, int &h);
   void shape_bitmap_(Fl_Image* b);
   void shape_alpha_(Fl_Image* img, int offset);
@@ -88,7 +86,6 @@ public:
   static void redraw(struct wld_window *window);
 
   static inline Fl_Wayland_Window_Driver* driver(const Fl_Window *w) {return (Fl_Wayland_Window_Driver*)Fl_Window_Driver::driver(w);}
-  virtual int screen_num();
   static void resize_after_screen_change(void *data);
 
   // --- window data
diff --git src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index 96985c1..4f3c3cd 100644
--- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -1123,14 +1123,6 @@ void Fl_Wayland_Window_Driver::resize_after_screen_change(void *data) {
 }
 
 
-int Fl_Wayland_Window_Driver::screen_num() {
-  if (pWindow->parent()) {
-    screen_num_ = Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
-  }
-  return screen_num_ >= 0 ? screen_num_ : 0;
-}
-
-
 int Fl_Wayland_Window_Driver::set_cursor(Fl_Cursor c) {
   Fl_Wayland_Screen_Driver *scr_driver = (Fl_Wayland_Screen_Driver*)Fl::screen_driver();
 
diff --git src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H
index 2e69464..afc8cc3 100644
--- src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H
+++ src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H
@@ -58,7 +58,6 @@ class Fl_WinAPI_Window_Driver : public Fl_Window_Driver
     Fl_Image* shape_; ///<  shape image
     Fl_Bitmap *effective_bitmap_; ///<  auxiliary bitmap image
   } *shape_data_;
-  int screen_num_;
 private:
   void shape_bitmap_(Fl_Image* b);
   void shape_alpha_(Fl_Image* img, int offset);
@@ -68,8 +67,6 @@ public:
   static inline Fl_WinAPI_Window_Driver* driver(const Fl_Window *w) {return (Fl_WinAPI_Window_Driver*)Fl_Window_Driver::driver(w);}
   HDC private_dc; // used for OpenGL
   RECT border_width_title_bar_height(int &bx, int &by, int &bt);
-  virtual void screen_num(int n);
-  virtual int screen_num();
 
   struct icon_data *icon_;
   HCURSOR cursor;
diff --git src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
index 5f8c40d..45e5cb3 100644
--- src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
+++ src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
@@ -55,20 +55,9 @@ Fl_WinAPI_Window_Driver::~Fl_WinAPI_Window_Driver()
   delete icon_;
 }
 
-int Fl_WinAPI_Window_Driver::screen_num() {
-  if (pWindow->parent()) {
-    screen_num_ = Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
-  }
-  return screen_num_ >= 0 ? screen_num_ : 0;
-}
 
 //FILE*LOG=fopen("log.log","w");
 
-void Fl_WinAPI_Window_Driver::screen_num(int n) {
-//fprintf(LOG, "screen_num setter old=%d new=%d\n",screen_num_, n);fflush(LOG);
-  screen_num_ = n;
-}
-
 
 RECT // frame of the decorated window in screen coordinates
   Fl_WinAPI_Window_Driver::border_width_title_bar_height(
diff --git src/drivers/X11/Fl_X11_Window_Driver.H src/drivers/X11/Fl_X11_Window_Driver.H
index 13c1cf9..a2a19d1 100644
--- src/drivers/X11/Fl_X11_Window_Driver.H
+++ src/drivers/X11/Fl_X11_Window_Driver.H
@@ -73,8 +73,6 @@ private:
     bool busy;
   };
   static type_for_resize_window_between_screens data_for_resize_window_between_screens_;
-  int screen_num_;
-  void screen_num(int n) { screen_num_ = n; }
 #endif // USE_XFT
 #if FLTK_USE_CAIRO
   cairo_t *cairo_;
@@ -92,7 +90,6 @@ public:
   virtual ~Fl_X11_Window_Driver();
   static inline Fl_X11_Window_Driver* driver(const Fl_Window *w) {return (Fl_X11_Window_Driver*)Fl_Window_Driver::driver(w);}
 #if  USE_XFT
-  virtual int screen_num();
   static void resize_after_screen_change(void *data);
 #endif // USE_XFT
 
diff --git src/drivers/X11/Fl_X11_Window_Driver.cxx src/drivers/X11/Fl_X11_Window_Driver.cxx
index a530290..3fb10cb 100644
--- src/drivers/X11/Fl_X11_Window_Driver.cxx
+++ src/drivers/X11/Fl_X11_Window_Driver.cxx
@@ -572,14 +572,6 @@ void Fl_X11_Window_Driver::resize_after_screen_change(void *data) {
   data_for_resize_window_between_screens_.busy = false;
 }
 
-
-int Fl_X11_Window_Driver::screen_num() {
-  if (pWindow->parent()) {
-    screen_num_ = Fl_Window_Driver::driver(pWindow->top_window())->screen_num();
-  }
-  return screen_num_ >= 0 ? screen_num_ : 0;
-}
-
 #endif // USE_XFT
 
 fl_uintptr_t Fl_X11_Window_Driver::os_id() {
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.