Wayland: implement scale factor windows as popups - cont'd
This commit is contained in:
parent
e391dc1bf9
commit
0636c0b3e6
@ -79,8 +79,9 @@ public:
|
||||
static const int fl_YValue;
|
||||
static const int fl_XNegative;
|
||||
static const int fl_YNegative;
|
||||
// Used when transient scale windows are implemented as popups
|
||||
// Next 2 are used when transient scale windows are implemented as popups
|
||||
static Fl_Window *transient_scale_parent;
|
||||
static void del_transient_window(void *);
|
||||
// key_table and key_table_size are used in fl_shortcut to translate key names
|
||||
struct Keyname {
|
||||
unsigned int key;
|
||||
|
||||
@ -388,8 +388,8 @@ static Fl_Window *transient_scale_window = NULL;
|
||||
Fl_Window *Fl_Screen_Driver::transient_scale_parent = NULL;
|
||||
|
||||
|
||||
static void del_transient_window(void *) {
|
||||
Fl_Screen_Driver::transient_scale_parent = NULL;
|
||||
void Fl_Screen_Driver::del_transient_window(void *) {
|
||||
transient_scale_parent = NULL;
|
||||
delete (Fl_Image*)transient_scale_window->shape();
|
||||
delete transient_scale_window;
|
||||
transient_scale_window = NULL;
|
||||
|
||||
@ -435,9 +435,11 @@ static void destroy_surface_caution_pointer_focus(struct wl_surface *surface,
|
||||
|
||||
void Fl_Wayland_Window_Driver::hide() {
|
||||
if (pWindow == Fl_Screen_Driver::transient_scale_parent) {
|
||||
// Don't hide the parent of a running transient scale window
|
||||
// because the transient is a popup and MUST be deleted first.
|
||||
return;
|
||||
// Delete also the running transient scale window
|
||||
// because the transient is a popup and MUST be deleted
|
||||
// before its parent.
|
||||
Fl::remove_timeout(Fl_Screen_Driver::del_transient_window);
|
||||
Fl_Screen_Driver::del_transient_window(NULL);
|
||||
}
|
||||
Fl_X* ip = Fl_X::flx(pWindow);
|
||||
if (hide_common()) return;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user