diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-11-17 16:55:37 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-11-17 16:55:37 +0100 |
| commit | 44bb080c0ff81b16d48dccd8d15809f058cc68ea (patch) | |
| tree | a6bb39936839aedd6be10fd435e84ac3a479fc6b | |
| parent | a3fd63fd1d5fb0798210ff5f2d994b72ec0eb39a (diff) | |
Remove friend declaration from Fl_Window.H (see STR 3354)
Although this was not strictly necessary I decided to implement the
proposed patch, but in a slightly different way.
This adds a static public method for internal use only but it wouldn't
do any harm if a user called it.
| -rw-r--r-- | FL/Fl_Window.H | 27 | ||||
| -rw-r--r-- | src/Fl_Window.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Window_Driver.H | 4 | ||||
| -rw-r--r-- | src/Fl_Window_iconize.cxx | 4 | ||||
| -rw-r--r-- | src/Fl_arg.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_x.cxx | 4 |
6 files changed, 32 insertions, 11 deletions
diff --git a/FL/Fl_Window.H b/FL/Fl_Window.H index 0c8d11484..adf0aa44c 100644 --- a/FL/Fl_Window.H +++ b/FL/Fl_Window.H @@ -1,7 +1,7 @@ // // Window header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2022 by Bill Spitzak and others. +// Copyright 1998-2023 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -53,12 +53,11 @@ class Fl_Double_Window; flags are ignored. */ class FL_EXPORT Fl_Window : public Fl_Group { - friend int Fl::arg(int argc, char **argv, int &i); friend class Fl_X; friend class Fl_Window_Driver; private: static char *default_xclass_; - static char show_iconic_; // 1 means create next window in iconic form + static char show_next_window_iconic_; // 1 means create next window in iconic form int no_fullscreen_x; int no_fullscreen_y; @@ -602,6 +601,28 @@ public: void screen_num(int screen_num); static bool is_a_rescale(); fl_uintptr_t os_id(); + + /** + Sets a static flag whether the next window should be opened iconified. + + \note This is an <b>internal function</b>, you should not use this in user code. + + Please use Fl_Window::iconize() instead. + */ + static void show_next_window_iconic(char stat) { + show_next_window_iconic_ = stat ? 1 : 0; + } + + /** + Returns the static flag whether the next window should be opened iconified. + + \note This is an <b>internal function</b>, you should not use this in user code. + + Please use Fl_Window::iconize() to iconify a window. + */ + static char show_next_window_iconic() { + return show_next_window_iconic_; + } }; #endif diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index 6611e0261..d8b82562b 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -35,7 +35,7 @@ char *Fl_Window::default_xclass_ = 0L; -char Fl_Window::show_iconic_ = 0; +char Fl_Window::show_next_window_iconic_ = 0; Fl_Window *Fl_Window::current_; diff --git a/src/Fl_Window_Driver.H b/src/Fl_Window_Driver.H index 983dfd023..43eee2227 100644 --- a/src/Fl_Window_Driver.H +++ b/src/Fl_Window_Driver.H @@ -114,8 +114,8 @@ public: void x(int X); void y(int Y); void current(Fl_Window *c); - char show_iconic() { return Fl_Window::show_iconic_; } - void show_iconic(char c) { Fl_Window::show_iconic_ = c; } + char show_iconic() { return Fl_Window::show_next_window_iconic(); } + void show_iconic(char c) { Fl_Window::show_next_window_iconic(c); } void flx(Fl_X *x) { pWindow->flx_ = x; } Fl_Cursor cursor_default() { return pWindow->cursor_default; } void destroy_double_buffer(); diff --git a/src/Fl_Window_iconize.cxx b/src/Fl_Window_iconize.cxx index 9b7d6a270..4778546e0 100644 --- a/src/Fl_Window_iconize.cxx +++ b/src/Fl_Window_iconize.cxx @@ -1,7 +1,7 @@ // // Window minification code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2023 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -19,7 +19,7 @@ void Fl_Window::iconize() { if (!shown()) { - show_iconic_ = 1; + show_next_window_iconic(1); show(); } else { pWindowDriver->iconize(); diff --git a/src/Fl_arg.cxx b/src/Fl_arg.cxx index 08254c3e9..035d82d96 100644 --- a/src/Fl_arg.cxx +++ b/src/Fl_arg.cxx @@ -126,7 +126,7 @@ int Fl::arg(int argc, char **argv, int &i) { s++; // point after the dash if (fl_match(s, "iconic")) { - Fl_Window::show_iconic_ = 1; + Fl_Window::show_next_window_iconic(1); i++; return 1; } else if (fl_match(s, "kbd")) { diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 642650c5d..6cdf5686c 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -2619,10 +2619,10 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap) XWMHints *hints = XAllocWMHints(); hints->input = True; hints->flags = InputHint; - if (Fl_Window::show_iconic_) { + if (Fl_Window::show_next_window_iconic()) { hints->flags |= StateHint; hints->initial_state = IconicState; - Fl_Window::show_iconic_ = 0; + Fl_Window::show_next_window_iconic(0); showit = 0; } if (Fl_X11_Window_Driver::driver(win)->icon_ && |
